ROS rosbag 录制和回放消息实用总结
博客转载自:https://blog.csdn.net/zhanghm1995/article/details/82468754
查看topic列表
rostopic list
打印topic内容
rostopic echo /topic
将bag转为pcd
rosrun pcl_ros bag_to_pcd out.bag /velodyne_points ./pcd/
话题录制
录制所有发布出来的话题,此时默认将话题保存在一个以当时时间戳命名的文件夹中:
rosbag record -a
录制指定话题
rosbag record /topic1 /topic12 -o out.bag
话题回放
基本回放
rosbag play <your bagfile name>
等待一定时间之后发布bag文件中的内容
rosbag play <your bagfile name> -d <delay time>
按一定频率回放,-r选项用来设定消息发布速率,如下面命令则表示以3倍原始速率发布话题
rosbag play -r 3 <your bagfile name>
回放指定话题
rosbag play <your bagfile name> --topics <topics>
其他指令
显示bag文件中所包含话题的名称、类型和消息数量:
rosbag info <your bagfile name>
创建一个除了/tf消息的新包
rosbag filter file.bag file-no-tf.bag "topic != '/tf'"
查看topic发送接收图
rosrun rqt_graph rqt_graph
重映射topic信息(将out.bag中point_cloud转为velodyne_points)
rosbag play out.bag /point_cloud:=/velodyne_points
将point_cloud转为laserscan
rosrun pointcloud_to_laserscan pointcloud_to_laserscan_node cloud_in:=/your_velodyne_points
查看bag中对应topic的frame_id
rostopic echo /topic | grep frame_id
查看tf树
rosrun rqt_tf_tree rqt_tf_tree
保存地图
rosrun map_server map_saver -f my_map
将cartographer生成的pbstream导出为ros标准地图
- 首先新建offline_pbstream_to_rosmap.launch
<launch> <node name="cartographer_pbstream_to_ros_map" pkg="cartographer_ros" type="cartographer_pbstream_to_ros_map" args=" -pbstream_filename $(arg pbstream_filename) -map_filestem $(arg map_filestem) -resolution $(arg resolution)" output="screen"> </node> </launch>
再输入如下命令
roslaunch cartographer_ros offline_pbstream_to_rosmap.launch pbstream_filename:=/home/out.pbstream map_filestem:=/home/out resolution:=0.05