rosbag使用过程中的细节

rosbag 在回放回放过程中,启用仿真时间

rosparam set use_sim_time true

或者在launch文件中启用了仿真时间

这时若bag中 没有时钟话题/clock ,且在其它地方使用了基于ros时间的函数,如

ros::Rate loop_rate(10);
loop_rate.sleep();

ros::Time()::now()
//等等

等等,则程序中运行到此处往往会停止,或者时间一直为定值。
这时因为ROS的仿真时间需要依靠话题/clock
此时,需要在回放rosbag时,添加参数 --clock
则ros会发布话题为/clock的仿真时钟话题
如:

rosbag play scenenn_231.bag --pause -r 0.1 --clock

你可能感兴趣的:(ROS小知识,c++)