1 Kaist数据集简介
选择数据集选择了好几天,最终选择了kaist数据集,这个数据集中有 轮速计,imu, gps, 16线雷达,这些传感器满足了我认为多传感器融合定位的需要。
简要介绍一下Kaist数据集
数据集是面向城市环境(例如大都市地区、复杂建筑和居住区)的。[1] 提供了上述的传感器数据
数据集网址:https://sites.google.com/view/complex-urban-dataset/download-lidar#h.sa42osfdnwst
数据集论文名称 : Complex Urban LiDAR Data Set
1.1 传感器数据
提供了
- 2个16线的veldyne的16线雷达
- 2个sick的单线雷达
- 里程计
- 1个消费级的imu
- 一个3轴的光纤陀螺仪(可以用来当做姿态的真值)
- 一个gps
- 一个vrs gps(rtk)
- 立体相机
具体的传感器配置可以参考下论文中的截图。
1.2 传感器位置
2个16线雷达在车后边,斜向下安装,能更多的看到地面。
数据里的时间戳是雷达一圈最后一个packet的时间戳。
所有传感器的位置都是相对于参考坐标系的,参考坐标系在图中为 Vehicle Center。
2 数据集下载
我把数据集的连接统一放在腾讯文档里了,腾讯文档的地址如下:
https://docs.qq.com/sheet/DVElRQVNlY0tHU01I?tab=BB08J2
现在下载需要翻墙,如果之后有需要也可以将数据上传到阿里云盘之类的。
3 数据集的使用
这个数据集提供了一个使用工具,只要将数据集的文件夹按照固定的格式设置,通过工具进行加载,就可以直接获取到ros格式的topic数据,非常方便。
这个工具是file_player,其github地址是
https://github.com/irapkaist/file_player
3.1 项目仓库
需要下载下来在自己的工作空间中进行编译,我已经将依赖和源码下载好了,放在开源项目中了,github地址是
https://github.com/xiangli0608/Learning_localization_from_scratch_ws
这个仓库已经是一个工作空间了,下载下来直接cd 进去,然后用 catkin_make 编译就可以了。
src文件夹里的 kaist_tool 文件夹里有3个文件夹,分别是
- file_player 读取数据集并将数据集通过ros格式的消息发布出来的工具
- irp_sen_msgs 一些自定义的消息类型
- kaist_description 我根据数据集提供的标定文件写的urdf
由于我暂时只下载了 Urban08 的数据集,所以现在只有一个 urban08.urdf, 不知道其他几个数据集的标定参数是否相同,如果相同那这一个urdf就可以用所有的数据了。
现在的urdf没有camera的link,等用到的时候再添加。
3.2 数据集的文件夹设置
由于 file_player 这个工具是读取文件夹的,所以对文件夹目录的摆放提出了要求,不按照指定位置设置的话是读取不了数据对。
文件夹的设置如下所示:
Urban08
- calibration
- EncoderParameter.txt
- Vehicle2BackSick.txt
- Vehicle2FOG.txt
- Vehicle2GPS.txt
- Vehicle2IMU.txt
- Vehicle2LeftVLP.txt
- Vehicle2MiddleSick.txt
- Vehicle2RightVLP.txt
- Vehicle2VRS.txt
- sensor_data
- VLP_left 文件夹
- VLP_right 文件夹
- SICK_back 文件夹
- SICK_middle 文件夹
- 其他传感器数据的csv文件
当你用官方的链接下载时,需要将Urban08文件夹进行合并,最终合并成上述所示的文件夹。
3.3 启动 file_player
编译好代码之后,先source,再rospack prodfile,然后执行
roslaunch file_player file_player.launch
会弹出如下所示界面
点击 Load 按钮,选中刚才设置好的 Urban08 文件夹,之后会在终端中打印
Stamp data are loaded
Altimeter data are loaded
Encoder calibrated parameter
Encoder resolution: 4096
Encoder left wheel diameter: 0.623803
Encoder right wheel diameter: 0.623095
Encoder wheel base: 1.52683
Encoder data are loaded
Fog data are loaded
Gps data are loaded
Vrs gps data are loaded
IMU data are loaded
scandir: No such file or directory
[ INFO] [1658414406.186192494]: camera calibration URL: file:///media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/left.yaml
[ INFO] [1658414406.187175921]: Unable to open camera calibration file [/media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/left.yaml]
[ WARN] [1658414406.187216202]: Camera calibration file /media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/left.yaml not found.
[ INFO] [1658414406.187247816]: camera calibration URL: file:///media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/right.yaml
[ INFO] [1658414406.187349750]: Unable to open camera calibration file [/media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/right.yaml]
[ WARN] [1658414406.187373500]: Camera calibration file /media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/right.yaml not found.
表示数据加载成功,如果没提示表示没加载成功。然后按 Play 按钮即可将数据通过ROS发布出来。
3.3 传感器数据话题
会有很多个topic发布出来,有些是ros的标准格式,有些是irp_sen_msgs格式的数据
其中ros标准格式的数据如下:
- /imu/data_raw 110hz
- /odom 100hz
- /gps/fix 5hz
- /ns1/velodyne_points 10hz
- /ns2/velodyne_points 10hz
其中
- /vrs_gps_data 是rtk的gps,可以当做位置的真值,是irp_sen_msgs/vrs格式的
- /xsens_imu_data 是光纤陀螺仪,可以用来当做姿态的真值,是irp_sen_msgs/imu格式的
还有非常多视觉的topic,等用到视觉的时候再说吧
3.4 点云可视化
通过执行 roslaunch kaist_description kaist_description.launch
可以进行点云的可视化
坐标系间的可视化如下
点云的可视化如下
4 总结
现在数据集选定了,数据也可以通过ROS发布出来了,接下来先是进行建图,然后再开始搞多传感器融合定位。
REFERENCES
[1] KAIST URBAN DATA SET/Complex Urban LiDAR Data Set数据集参数
https://blog.csdn.net/Iqun_LAN/article/details/106445884
[2] Kaist数据集的使用
https://blog.csdn.net/weixin_43846627/article/details/113510014