问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

一文学会ROS中带的rosbag来录制使用并用于SLAM离线建图

创作时间:
作者:
@小白创作中心

一文学会ROS中带的rosbag来录制使用并用于SLAM离线建图

引用
CSDN
1.
https://m.blog.csdn.net/qq_53004665/article/details/141859708

本文将详细介绍ROS中的rosbag工具的使用方法,包括录制、查看、播放bag文件,并将其应用于SLAM离线建图。通过小乌龟和实际小车运动的例子,帮助读者掌握rosbag的基本操作。

rosbag介绍

在SLAM小车数据采集过程中,主要有两种方式:

  1. 实时操作小车进行建图
  2. 录制数据包的方式进行(前面算法的复现采用的该方法)

在ROS中,为了实现数据的留存和读取,提供了一个专门的工具:rosbag。本文将介绍如何使用rosbag录制数据包。录制数据包是通过订阅话题,并将订阅到的数据保存下来,在不适合在线建图的场景中能快速实现离线的数据场景的重现,rosbag本质上也是一个ROS节点。

一、录制

  1. 录制所有话题
rosbag record -a
  1. 如果只想录制订阅部分话题
rosbag record <话题1> <话题2> <话题N>
  1. 指定话题保存包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建图,持续更新中........

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号