C++版本
1.ros::Publisher turtle_vel_pub = n.advertise<geometry_msgs::Twist>("/turtle_vel_pub",10);
advertise( ) 返回一个 Publisher 对象。 通过调用对象的 publish( )函数, 你可以在这个topic上发布 message。猜测Publisher 对象应该是从属于节点的。
10是队列长度,当publisher发布频率太快,底层以太网不能迅速响应,所以先将数据放在队列中,相当于一个缓存。如果仍然发不出去,最先进队的数据会被抛掉,就会出现掉数据的情况。
2.ROS_INFO("Publish turtle velocity command[%0.2f m/s, %0.2f rad/s]", vel_msg.linear.x, vel_msg.angular.z);
ROS_INFO类似于C语言中的printf函数,输出日志信息。
3.loop_rate.sleep();
按照循环频率延时,实现每秒发布消息的频率。
4.CMakelists文件的修改
add_executable(velocity_publisher src/velocity_publisher.cpp