基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程

序言:由于Cartographer 有很多的安装教程,所以这里就不再赘述。本人申明,本文中所用图片均为自己实验所得,仅供大家科研交流所用,不得用于其他任何商业用途!

首先展示一下在地下车库的建图效果。

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程_第1张图片 由pbstream文件转为ply和pcd点云文件时生成的平面图

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程_第2张图片 不同反射强度点云图显示

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程_第3张图片 点云侧视图显示

 下面详细说明建图和定位过程。

1、3D建图

1.1 传感器之间位姿关系确定

       建图需要准备的3个步骤,首先要确定好雷达、IMU和底盘之间的空间位姿关系(TF树来表示),这个一般用URDF这个来实现。下面给出我的URDF文件:

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程_第4张图片 URDF文件

图中3个红色框分别表示的雷达、IMU和底盘的建模过程,例如这里IMU 的实际大小就是0.06*0.04*0.02 米,雷达建模为半径为0.05m,高为0.076米的柱状体,底盘为0.627*0.249*0.248米的长方体。需要注意的是link name 是传感器启动后frame id,需要注意Cartographer不允许frame id 里出现 '/' 等,例如,我这里使用的是Xense的IMU,默认的frame id是‘/imu’,导致会找不到IMU,从而使得Cartographer建图失败!

绿色框表示传感器和底盘之间的位姿关系,这里xyz指的是传感器距离底盘中心在xyz三个方向的偏离距离,rpy表示横滚,俯仰和航向角。注意:首先要根据自己的实际产品搞清楚自己的设备的坐标系,这很关键

1.2 参数文件配置(lua文件)

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程_第5张图片 lua文件

 这一步主要的几点都用红色框重点突出,请大家根据实际情况修改。

1.3 启动文件配置

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程_第6张图片 launch文件

 URDF和lua文件根据前面的步骤已经配置好了,这里主要注意的是红色框中的话题和换成自己设备的话题。

然后根据官方Demo的启动方式启动即可建图。

鉴于时间关系,定位部分后面再抽空写一下,在实验中,我们用了莱卡测量机器人TS 60 全站仪做为真值,Cartographer 在我们的实验中平均定位精度在30cm。

你可能感兴趣的:(3d,自动驾驶,人工智能)