ros中bag的录制和使用bag进行建图

1,591 阅读2分钟

\

录制bag

在建图时候,除了正常的建图和底盘控制脚本外,加入录制bag的脚本

rosbag record -a

但是录制所有的话题,bag文件会比较大,可以只录制需要的话题

rosbag record /imu /tf /scan /odom /tf_static

只需要录制imu 里程计,激光雷达和tf数据即可

 关于/tf、/tf_static

/tf:动态的位置关系将会发布到此topic,这里的动态指的是机器人描述文件中活动joint

/tf_static:固定的位置关系会发布到此topic,即机器人描述文件中joint定义为“fixed"

 

使用bag建图

如果使用录制好的bag进行建图,运行正常的建图脚本即可

注意要把雷达运行和底盘运行的节点屏蔽

 

  <!--

   

  -->

 

 

 

    <arg name="simulation"            value="$(arg simulation)"/>

 

 

  <!--

   

        <arg name="planner"            value="$(arg planner)"/>

   

  -->

 

然后把bag文件运行起来,就可以建图了

Bag的运行

 

建图完毕,保存地图

 

roscd robot_navigation/maps

rosrun map_server map_saver -f nancarto0927

 

附:

注意,bag录制的话题,要和建图的时候使用的话题一致,才能使用;

rosbag play –clock bag文件路径/bag文件名称

 

 

如果想让bag播放的速度放慢,可以

rosbag play -r 0.1 –clock bag文件路径/bag文件名称

 

 

rosbag info指令可以显示数据包中的信息:

rosbag info filename.bag

显示类似下面的信息

rosbag info 2021-09-27-14-32-53.bag

path:        2021-09-27-14-32-53.bag

version:     2.0

duration:    30:47s (1847s)

start:       Sep 27 2021 14:32:53.89 (1632724373.89)

end:         Sep 27 2021 15:03:41.78 (1632726221.78)

size:        368.7 MB

messages:    348197

compression: none [485/485 chunks]

types:       nav_msgs/Odometry     [cd5e73d190d741a2f92e81eda573aca7]

             sensor_msgs/LaserScan [90c7ef2dc6895d81024acba2ac42f369]

             tf2_msgs/TFMessage    [94810edda583a504dfda3829e70d7eec]

topics:      /odom    92394 msgs    : nav_msgs/Odometry   

             /scan    23836 msgs    : sensor_msgs/LaserScan

             /tf     231967 msgs    : tf2_msgs/TFMessage    (3 connections)