注意:
- 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识
ubuntu版本:20.04
webots版本:2021a
ros版本:noetic
前言
自动驾驶是我的一个非常有意思的研究方向,我会在以后的时间里更新有关自动驾驶方向的知识。而这系列教程通过ROS和KITTI数据集实现一个自动驾驶感知功能。
如果想要训练自动驾驶的感知功能,必须要有一个强大的数据集才能实现。KITTI就是这么一个在2012年发表的强大的自动驾驶资料库。
1.Kitti数据集概述
KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,还有各种程度的遮挡与截断。整个数据集由389对立体图像和光流图,39.2 km视觉测距序列以及超过200k 3D标注物体的图像组成,以10Hz的频率采样及同步。总体上看,原始数据集被分类为Road
, City
, Residential
, Campus
和 Person
。对于3D物体检测,label细分为car
,van
,truck
,pedestrian
,pedestrian(sitting)
,cyclist
,tram
以及misc
组成。
KITTI数据集官网
2.Kitti数据采集平台
KITTI数据集的数据采集平台装配有两个灰度摄像机,两个彩色摄像机,一个Velodyne 64线3D激光雷达,4个光学镜头,一个GPS导航系统和一个IMU惯性传感器。设备装配图如下所示:
1 Inertial Navigation System (GPS/IMU): OXTS RT 3003
1 Laserscanner: Velodyne HDL-64E
2 Grayscale cameras, 1.4 Megapixels: Point Grey Flea 2 (FL2-14S3M-C)
2 Color cameras, 1.4 Megapixels: Point Grey Flea 2 (FL2-14S3C-C)
4 Varifocal lenses, 4-8 mm: Edmund Optics NT59-917
传感器的配置平面图如下所示。为了生成双目立体图像,相同类型的摄像头相隔54cm安装。由于彩色摄像机的分辨率和对比度不是很好,所以还使用了两个立体灰度相机,它和彩色相机相距6cm安装。为了方便传感器数据标定,规定坐标系方向如下所示:
3.下载数据集
数据集官网下载地址
首先进入raw_data
界面,找到名为2011_09_26_drive_0005
的数据集,分别通过synced+rectified data
和calibration
下载同步和修正的数据集和传感器校准文件,文件如下所示:
下载完成后使用如下命令解压进RawData
文件夹:
$ unzip 2011_09_26_drive_0005_sync.zip
$ unzip 2011_09_26_calib.zip
可以看到会解压进同一个2011_09_26
文件夹,如下图所示:
4.转换数据集为ros bag
使用kitti2bag
插件将KITTI数据集转换为ROS可读的bag文件。
- 下载kitti2bag插件
$ pip3 install kitti2bag
- 开始转换数据
$ cd ~/kitti/RawData
$ kitti2bag -t 2011_09_26 -r 0005 raw_synced .
如果提示No module named 'tf'
这个错误使用如下命令安装依赖:
$ sudo apt install ros-noetic-tf
转换完成后会在当前目录产生一个后缀为bag的文件,转换结果如下所示:
5.在ROS中查看Kitti数据集
*博主教程中的方法貌似行不通。尝试笔者以下教程查看kitti数据集:
$ roscore
$ rosbag play -l kitti_2011_09_26_drive_0005_synced.bag
$ rqt_image_view
rosbag
的-l
参数是循环播放bag中的内容。
如果找不到rqt_image_view
工具,可以使用如下命令安装:
$ sudo apt install ros-noetic-rqt-image-view
打开成功后界面如下所示:
可以看到数据集中的彩色图像画面。选择/kitti/camera_gray_left/image
这个topic可以看到灰度图像如下所示:
这时已经完成了kitti数据的可视化操作。
Reference
https://blog.csdn.net/zchang81/article/details/73456981
参考YouTube上的博主教学:https://www.bilibili.com/video/BV1qV41167d2?p=1
结语
本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~
只要会使用这些模块就能很轻松的加入到ROS中进行机器人的语音控制。
为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
加群链接
✌Bye