录制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)