怎么使用spinOnce以一定频率发布消息

想使用ros以一定的频率发布消息到topic上。这样可以使用spinOnce来实现。方法如下:
int main(int argc, char **argv)
{
    ros::init(argc, argv, "node_name");
    ros::NodeHandle n;
//定义一个Publisher 
    ros::Publisher xxx_pub = n.advertise<msg_type>("topic_name", 1000);
//定义一个循环的速率,也就是发布消息的频率
    ros::Rate loop_rate(10);//这里发布的频率就是一秒10次
    //循环
    while(ros::ok())
    {
        //这里可以给要发布的消息赋给相应的值,然后就可以发布了
        xxx_pub.publish(msg);//循环一次,发布一个
        ros::spinOnce();
        loop_rate.sleep();
    }
    return 0;
}

你可能感兴趣的:(发布,ROS,spinOnce)