一.测试的slam方案
本次我共测试了github上开源的8种方案,按照特点可分为
特点 方案
纯lidar a-loam(港科大版本的loam),hdl_graph_slam,blam
lidar与imu松耦合 lego-loam,sc-lego-loam(在lego-loam上使用了一种新的回环检测方法)
lidar与imu紧耦合 lins,lio-sam,liom
说明
上述方案中除了hdl_graph_slam和blam外,其余方案都是基于loam或lego-loam
在实验中,hdl_graph_slam和blam在所有数据集上的性能均不理想,因而下面不再讨论。而sc-lego-loam的性能较之lego-loam也没有明显改善,因而下面也不再讨论。
原生demo
在第二部分的实验结果展示中,为了方便比较,不同方案得到的结果形式都进行了统一化,但实际上各种方案在执行时的视觉效果是不同的,这里展示了利用各种方案的原生配置所得到的demo,日后可根据需要配置成下面的任意一种效果:
二.实验
实验共使用了5段在伟清楼附近采集的数据:
数据段名称 采集时间 传感器配置 路程 备注
museum_out 2020.7.25 10hz lidar+ 100hz imu 639m 无
museum_in 2020.7.25 10hz lidar+ 100hz imu 226m 回环
outdoor3 2020.7.27 10hz lidar+ 400hz imu 481m 回环
outdoor4 2020.7.27 10hz lidar+ 400hz imu 562m 回环
aggresive 2020.7.27 10hz lidar+ 400hz imu 138m 回环,剧烈运动
说明
两日的数据:由于在7.25采集的两段数据中没有明显看出加入imu的优势,于是在7.27我将imu频率调高至lins,liom和lio-sam所采用的400hz后又采集了三段数据。
imu的校正:在每次采集数据前,我都将imu的z轴与重力加速度重新对齐,方法是利用手机软件(如:水平仪,aida64等)测量,寻找到一个较好的水平面,将实验设备置于其上,利用mtmanager对imu进行alignment reset,实现z轴的重置。
imu初值:imu紧耦合算法中需要提供imu的初始零偏(bias)和噪声方差,而每段数据在开始时的一段时间内实验设备都是静止的,因而我利用这段时间内(约5s)的imu测量值进行了零偏和噪声的估计。需要注意的是,由于imu是粘贴在lidar外壳上的,而lidar在扫描时会引起外壳周期性的振动,这也反映在了imu的测量值中,如下图:
x轴和y轴的加速度ax,ay和角速度wx,wy有明显的周期性,周期为雷达的扫描周期。而经过进一步的dft分析,可以发现ax,ay,wx,wy,wz在10hz和40hz的频谱分量最高,说明雷达振动的基波和4次谐波影响较大。为了去除振动影响,我暂时采取了时域拟合的方法,利用基波和4次谐波的组合来拟合测量信号,使得总误差最小,然后将拟合出的振动信号从测量信号中减去,将所得信号的均值和方差作为imu的零偏和噪声方差。
1. museum_out
采集路线:从艺术博物馆停车场出发,环绕外围一周后来到伟清楼旁空地。
定位结果:
建图结果:
结论:
从定位结果上看,各种算法在x,y的估计上比较接近,分歧主要在高度z的估计上。根据实际情况,起点和终点的高度差并不是很大,lio-sam和lego-loam在这点上性能较好,其余方案则略有不足。
从建图结果上看,各算法的建图效果相当,只是lins和lego-loam的地图稍微稀疏一些。
2. museum_in
采集路线:从艺术博物馆水池出发,在内场游走后回到原点:
定位结果:
建图结果:
结论:
从定位结果看,liom与其他方法有较大偏移,但轨迹的形状却是相似的,这是由于liom对imu和lidar外参进行了校正,使得坐标系有所偏移。aloam和liom很好地闭合了回环,但lio-sam,lins和lego-loam的性能也还不错,也接近闭合。
从建图结果上看,各算法的建图效果相当,只是lins和lego-loam的地图稍微稀疏一些。
3. outdoor3
采集路线:从伟清楼出发,环绕附近建筑一周后返回原点:
定位结果:
建图结果:
结论:
从定位结果来看,imu紧耦合且存在回环检测的lio-sam成功地闭合了回环,其他方案都发生了明显漂移,其中,lego-loam在z方向产生了相当离谱的估计,这是由于点云中地面点较少,不能很好地约束住z方向,而使用了imu紧耦合的另外两种lins,liom较之aloam漂移较少,证明高频imu起到了一定的约束作用。
从建图结果来看,lio-sam由于闭合了回环,建立了全局一致的地图。而其他方案建立的地图中则可以看出明显的漂移,例如图中左下角显示了起点处地图的侧视图,可以看到除lio-sam外,其他方案的地图都出现明显的分层现象,这就是z方向漂移的结果。
4. outdoor4
采集路线:从伟清楼出发,与outdoor3方向相反地环绕附近建筑一周后返回原点:
定位结果:
建图结果:
结论:
从定位结果来看,只有lio-sam很好地闭合了回环。lego-loam再次发生了退化,估计效果不佳,而lins和liom在z方向产生了明显漂移,aloam在y和z方向都产生了明显漂移,说明imu还是起到了一定的约束作用。
从建图结果来看,lio-sam得到了全局一致的地图,而其他方法由于漂移建图效果不太理想,例如图中的左下部分显示了起点处地图的俯视图,可以看到除lio-sam外都存在分层现象,这是z方向漂移的结果,而aloam和lego-loam还可以看出明显的平行相似结构(如柱子和右侧墙壁),这是y方向漂移的结果。
5. aggressive
采集路线:从伟清楼出发,在伟清楼,英士楼和刘卿楼围城的空地上行走,途中伴随有跑步后骤停,猛烈转弯等剧烈动作,最终回到原点:
定位结果:
建图结果:
结论:
从定位结果来看,lio-sam和liom很好地闭合了回环。lins在z方向产生了明显漂移,aloam在y和z方向都产生了明显漂移,lego-loam则索性崩溃,这说明imu还是起到了一定的约束作用。
从建图结果来看,采用了imu紧耦合的三种方案lio-sam和liom和lins得到的地图看起来都还不错,很难看出漂移或失真痕迹,而aloam和lego-loam的结果就相当糟糕了!
三.总结
各种方案的优缺点如下:
方案 优点 不足
aloam 1. 在几何特征丰富时比较稳定 1. 后期内存会出现爆炸,计算效率下降
2. 在几何特征较少时会产生明显漂移
lego-loam 1. 在地面点丰富时比较稳定
2. 轻量级 1. 在地面点缺乏时很容易崩溃
2. 得到的地图比较稀疏
lins 1. 轻量级 1. z方向漂移明显
2. 得到的地图比较稀疏
3. 目前的版本要求lidar与imu体坐标系的xy平面平行,不接受自己提供的外參
lio-sam 1. 存在回环检测,能较好地闭合回环
2. 稳定性强
3. demo看起来比较舒服 1. 在几何特征丰富的情况下可能不如aloam
liom 1. 存在重力加速度的校正和imu初始状态估计 1. 稳定性不好,有时性能好,有时又不行,可能与其初始化环节的性能有关
2. 内存占用大,时间性能较差
在进行imu校正后,融合高频imu确实能够提升slam性能,尤其是在几何特征缺乏或者剧烈运动的情况下。
lio-sam在定位和建图方面做的都不错,比较建议使用。
东旭光电打破国内石墨烯技术空白 正式涉足石墨烯传感芯片领域
全新途观L或明年1月份上市
PCB传输线参数
苹果8什么时候在中国上市?会有哪些大改变?
工程监测振弦采集仪的原理与设计
不同3D激光SLAM方案对比分析
中国联通已圆满完成了5G OSS2.0应用的线上发布
麒麟9000处理器跑分性能出炉:单核1020分,多核3710分
如何解决AGV/AMR电池续航问题?
华为新机P30额头和下巴造型奇特,可直立于桌面 国外网友:致敬诺基亚?
云存储的五个常见安全问题及解决措施
【绝对干货】高精度逐次逼近型ADC支持电路的设计和故障排除
中国移动5G创新进入“深水区”,6G研究进入“无人区”
魅族近年来不断关门 进行新一轮裁员,达30%
无线无源测温系统的有点与其它测温方式的对比
Type-C有望一统智能家居
一文教你看懂什么是PLC接线图
2016机器人市场遍地黄金 谁是年度“吸金王”?
MAX17088 Internal-Switch Boost
手机蓝牙的功能介绍