算法层面建议:
3D Lidar + IMU方式:
Cartographer3D
Cartographer 2D在效果上更胜于 Cartographer3D,室内、室外都可以用,但建议室内应用
单目 + 3D Lidar + IMU + GPS方式:
LVI-SAM
LVI-SAM可以认为是LIO-SAM和VINS-MONO的合体,在此基础上的修改不大。出色的Demo级算法,是否适合商用有待验证
视觉(RGB-D、双目)+ 3D Lidar + IMU + GPS方式
RTAB-Map
稳定性更好,丰富的传感器组合、长期和大规模场景应用,适合商用场景
效果对比:
Cartographer3D < LVI-SAM < RTAB-Map
室内Kinect + 里程计 + Kinect 的假 2D 激光
该方式将失去检测全局闭环或使用视觉进行全局定位的能力
功能受限 室内 室外/室内(光线充足)实际使用经验汇总:
在凹凸不平的地面上建图:
1.单线激光雷达(+imu)的SLAM方法
2.多线的激光雷达支持,参照Lego-LOAM(可变地形下的轻量级和地面优化的雷达里程计与建图)的原理,并不是所以支持多线雷达的SLAM算法都支持,需要针对性选择
室外场景建图:
1.建议多线激光雷达+Imu+里程计
2.建议单目/双目视觉+imu+里程计
3.RGB-D相机不可行,其主动发射的红外光,极易受强光干扰,畸变严重
4.DOF的单线激光雷达也不建议
(Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别)
(Cartographer2D、Cartographer3D、 LeGO-LOAM 对比系列)
一、ORB_SLAM2
室内跑两圈,采集结果如下:
说明:
1、可获得point、keyframe、graph数据
2、相比于kinect相机,跑小觅相机中速运动时不易丢包;
3、重定位算法比较好,但仍有较大偏差;
4、光线强度高的地方很容易丢包;测量地点为一个闭环,测试结果却没形成闭环;图像为稀疏点云,数据大了会卡。
二、VINS MONO;mono+imu;回环
室内跑两圈,采集结果如下
说明:
1、加回环检测(红三角)能识别曾经到过的路径并修正,但延迟比较高;未加回环(绿三角)跑偏,相比于vins fusion的双目不加回环,效果较差;
2、IMU漂移比较严重
三、VINS FUSION;stereo+imu;无回环
室内跑两圈,采集结果如下:
四、RTAB
三楼阳台测试,生成点云图示意:
说明:
1、SLAM集成完整;可生成稠密地图,用于导航、避障
2、慢速下不易丢包【速度和ORB差不多】;丢包后能进行快速重定位;对光线不敏感,能适应多复杂场景
3、两种安装格式:二进制——直接应用;源码——可二次开发
4、用kinect测试,效果不错,
综上:
可参考方案有VINS FUSION和RTAB:
1)若选择VINS FUSION双目+imu,加入回环算法,效果会好很多;但后续仍需优化、稠密建图等处理
2)若选择RTAB-Map,添加小觅相机的依赖,提高识别距离,效果应该不错;选用源码安装方式,便于后期二次开发。
商业化用途的话,个人倾向于RTAB-Map
Framework
TAB-Map ROS节点的框图
所需输入是:
TF,用于定义传感器相对于机器人底座的位置; 来自任何来源的里程计(可以是3DoF或6DoF);
其中一种相机输入(一个或多个RGB-D图像,或双目立体图像),且带有相应的校准消息。
可选输入:
2D激光的雷达扫描,或3D激光的点云。然后,来自这些输入的所有消息被同步并传递给graph-SLAM算法。
输出的是:
1.Map Data,包含最新添加的节点(带有压缩传感器数据)和Graph; Map Graph,
2.没有任何数据的纯图;
3.TF,矫正过的里程计;
4.可选的OctoMap(3D占用栅格地图);
5.可选的稠密点云地图;
6.可选的2D占用栅格地图。
视觉里程计:
激光里程计
key Topic List:
ICP Odom
Wheel Odom
Vision Odom
Scan
Depth Topic
RGBD Topic
Stereo Topic
GPS
AprilTag Topic
other:
obstacles_detection(Stereo) rtabmap+find_object_2dNavigation:
(RTABMap+MoveBase)
dao
网友评论