SLAM算法复现汇总参考:
SLAM常用2D、3D算法复现以及在搭建的Gazebo环境仿真汇总-优快云博客
目录
1.录制bag
2.查看bag信息
3.播放bag
4.rosbag实践
5.SLAM离线建图
rosbag介绍:
在SLAM小车采集数据有两种方式
1.实时操作小车进行建图
2.录制数据包的方式进行(前面算法的复现采用的该方法)
在ROS中关于数据的留存以及读取实现,提供了专门的工具: rosbag,本文介绍如何使用rosbag录制数据包。录制数据包是通过订阅话题,并将订阅到的数据保存下来,在不适合在线建图的场景种能快速实现离线的数据场景的重现,rosbag本质也是节点。
一、录制
1.录制所有话题
rosbag record -a
2.如果只想录制订阅部分话题
rosbag record <话题1> <话题2> <话题N>
3.指定话题保存包bag地址
rosbag record -O <包名>
首先先用学习ROS的小乌龟为例子学习了解一下rosbag,以便后弦用于SLAM小车离线建图录制包
打开终端,分别在不同终端打开roscore,乌龟node,乌龟键盘控制(等打开rosbag再控制小乌龟移动)
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
录制rosbag,运行后控制小乌龟移动,rosbag会持续订阅并保存数据。
rosbag record -a
我录制的路线如下
可以在终端中看到输出的话题
运动完后,关闭所有话题,在home下面生成了新的带有录制时间的bag
二、查看bag信息
在终端中输入rosbag info 包名来查看录制bag的信息
#根据自己的bag名修改
rosbag info 2024-09-03-13-35-22.bag
输出改bag的相关信息
可以通过rqt_bag来对录制的包进行修改,比如删除多余的前后录的等等(具体我也没了解)
#根据自己bag名修改
rqt_bag 2024-09-03-14-14-12.bag
三、播放bag
前面已经完成了bag的录制和保存,这里对录制好的信息进行播放,在播放bag前先打开乌龟node,不要关闭roscore
rosrun turtlesim turtlesim_node
开始播放bag
rosbag play 2024-09-03-13-35-22.bag
对比一下录制和播放的乌龟运动情况
四、rosbag实践
我通过控制小车在实际环境中移动,采集数据(方法和上面一样)
我这里采集了所有发布的话题数据
rosbag record -a
得到小车运动时的数据
rosbag info 2024-09-03-19-19-52.bag
可以看出该bag中包含了小车运动时的速度,tf,imu等重要数据
打开终端,运行rviz来显示数据包,并add相关展示内容(根据实际情况添加和选择相应话题)
rviz
打开新终端,播放运行数据包
rosbag play 2024-09-03-19-19-52.bag
五、rosbag建图,持续更新中........