Tags: SLAM

本篇博客主要学习ROS中的rosbag工具并以视觉SLAM中常见的数据集为例进行介绍。

1.rosbag基本命令

基本命令如下表:

Available subcommands Description
check Determine whether a bag is playable in the current system, or if it can be migrated.
compress Compress one or more bag files.
decompress Decompress one or more bag files.
filter Filter the contents of the bag.
fix Repair the messages in a bag file so that it can be played in the current system.
help Get the help information.
info Summarize the contents of one or more bag files.
play Play back the contents of one or more bag files in a time-synchronized fashion.
record Record a bag file with the contents of specified topics.
reindex Reindexes one or more bag files.

这其中play最为常用,可以用于回放从网上下载下来的数据包,它也有几个使用小技巧:

  • 改变回放速率,只需要在play后增加一个-r参数,并指定速率即可,如rosbag play -r 2 <bagname>就表示以两倍速回放。
  • 增加参数-l表示循环播放,像这样rosbag play -l <bagname>
  • 如果只想回放感兴趣的Topic,像这样rosbag play <bagname> --topic /interested_topic
  • -d表示延迟指定时间回放
  • 在回放过程中按空格键可以暂停回放。

除此之外就是record命令,用于录制数据流,也有一些小技巧:

  • -a表示记录所有Topic到bag中,以当时时间的时间戳保存。
  • rosbag record /topic1 /topic2表示记录指定的topic1topic2bag文件中。
  • 按Ctrl+C退出录制。

另外还有一个很重要的命令就是info,它可以显示bag文件中保存的信息概况,十分有用。尤其是当我们对一个从网上下载下来的陌生bag文件一无所知的时候,在play前可以先info一下看看里面都保存了哪些内容。

2.SLAM常见数据集

在Github上有个相对完整的SLAM数据集整理,点击查看。本文主要选三个:KITTI、TUM、EuRoC进行介绍。

(1)KITTI

KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集,官网是这里。对于SLAM而言,主要用到的是Odometry类别下的数据,如下图所示。 其中红色框出来的是提供下载的数据。数据集一共包含22个不同的立体观测序列,所有图片都以png格式保存,00-10序列提供真值,11-21则没有真值。

(2)TUM

TUM数据集是由德国慕尼黑工业大学发布的数据集,官网是这里,提供了非常多的观测序列下载。每个序列还会有详细的介绍,如下。

(3)EuRoC

EuRoC数据集是由ETH提供的,官网是这里。相比于前两个主要是陆地数据,EuRoC数据集全部是用无人机采集的,所以也可以看作是专门的无人机SLAM数据集。数据集一共包含11个观测序列,Machine Hall和Vicon Room两个场景,难度随着序列序号的增加而增加。

3.数据集使用演示

下面以EuRoC数据为例,演示如何使用rosbag回放数据。首先在官网下载数据,下载好后打开终端,在终端中输入rosbag info MH_01_easy.bag可以查看数据的信息,如下: 可以看到一共包含三种类型的4个Topic,分别是左右相机影像、IMU数据以及观测的位置。所以我们可以输入rosbag play MH_01_easy.bag --topic /cam0/image_raw,这样只会回放一个相机的数据。回放开始后,可以通过rqt_image_view工具查看,在终端中输入rqt_image_view然后在打开的窗口中选择Topic,即可查看影像,如下。

本文作者原创,未经许可不得转载,谢谢配合

返回顶部