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

 

posted @ 2020-04-23 10:21  采男孩的小蘑菇  阅读(8417)  评论(0编辑  收藏  举报