泡泡点云时空,带你精读点云领域顶级会议文章
标题:IMLS-SLAM: scan-to-model matching based on 3D data
作者:Jean-Emmanuel Deschaud
来源:ICRA 2018
编译:黄玉玺
审核:吕佳俊
欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权
摘要
SLAM问题在机器人领域得到了广泛地研究,尤其是对单目相机、双目相机以及深度相机 SLAM的研究。像Velodyne LiDAR这样的3D 深度传感器近10年来被证明对自动驾驶环境感知非常有用,但是,现有的方法中很少有直接使用3D数据计算里程计。我们提出了一种新的基于3D激光雷达数据的低漂移SLAM算法,该算法使用scan-to-model的匹配框架。首先,我们对激光雷达的扫描数据采用特定的采样策略。然后,将匹配对象设为先前的已定位的LiDAR数据,并使用隐式移动最小二乘(IMLS)曲面表示。我们使用Velodyne HDL32进行了实验,实验结果表明在没有闭环优化的情况下,4km的误差漂移为0.4%,即4km误差为16m。我们使用Velodyne HDL64 在KITTI数据集上进行了测试,并且以仅0.69%漂移被列为最好的方法之一(与单目、双目以及LiDAR算法对比)。(译者注:截止到2018年12月27日,IMLS-SLAM在KITTI-Odometry排名第五,它的改进版IMLS-SLAM++排名第三,仅次于loam,但是论文还没有公开)
图1 红色的轨迹是使用IMLS-SLAM运行的结果,使用的传感器是垂直放到车顶的Velodyne HDL32,场景是绕巴黎市一个两公里的闭环两圈,在图上可以看到重叠的效果还不错。黑色的轨迹是传统的"scan-to-scan"的匹配方法得到的结果。两种方法的起点均在绿色圆圈所在的位置,终点都在蓝色的圆圈所在的位置。
算法概述
1.激光点云帧内运动补偿与动态物体去除
(1)帧内运动补偿:
由于激光雷达在扫描时也是在不断运动的,所以激光雷达的运动信息会包含在所扫描到的点云中。本文中,作者假设在一帧扫描时,车辆是做匀速运动的,使用线性插值的方式计算出每个激光点所对应时刻的激光雷达的位姿。假设第k-1、k-2时刻激光雷达的位姿分为 T(k-1),T(k-2),那么假设第k-1到k时刻的速度等于第k-2到第k-1时刻的速度,即:
那么,第k时刻估计的姿态为:
(2)动态物体去除:首先,使用体素增长的方式去除地面点;然后,使用聚类的方法将剩余的非地面点云聚类(最小距离阈值为0.5m),删除X方向上长度小于14m,Y方向上小于14m,Z方向上长度小于4m的边框内的点云,这里认为移动的物体的物体边框通常较小;最后,再将地面点云添加到过滤后的非地面点云中。
2.采样策略
首先,在车体坐标系下计算点云中每个点的法向量,并且计算出对应的特征值,计算每个点如下九维特征:
具体原理可参见引用论文[12]。
前六维数据与旋转有关,后三维数据与平移有关。然后,根据每个值的大小对所有点进行降序排序,可以得到9个列表。分别挑选九个列表中前s个数据进行匹配,其中,s为人为设定的参数。
图2 本文所述的采样方法示例。红色的点代表选来做匹配的点,可以看到有一些点在远处,可以很好的约束旋转,有一些点在平面上可以用来很好的匹配
3.使用隐式移动最小二乘计算匹配
本文采用了隐式移动最小二乘(IMLS,Implicit Moving Least Square)方法,该方法由Levin在2004年提出。通过最小化点到隐式表面的距离,从而求出最优的旋转与平移变换。
点x到隐式表面的距离定义为:
其中,Wi(x)表示第i个点的权重,权重的计算公式为:
其中,h为认为设定的参数。
图3 传统的ICP方法与IMLS方法对比示例。蓝色的点是带有噪声的定位好的点Pk,红色的点是新扫描得到的点。第一行点到面的ICP中第一次与最后一次迭代匹配的示例。第二行是IMLS方法中第一次与最后一次迭代匹配的示例。虚线代表IMLS曲面,每一次迭代最小化的是点到IMLS平面的距离和。
实验结果
1.使用自己采集的数据测试
实验平台为Velodyne HDL32,测试距离为4km,距离误差为16m,漂移为0.4%
2.使用KITTI数据集测试
实验平台为Velodyne HDL64,位置漂移为0.69%,旋转误差为0.0018 deg/m
3.实时性问题
本算法无法达到实时处理,运行KITTI数据集,每帧计算大约需要花费1.25s,后续将会对实时性进行优化。
Abstract
The Simultaneous Localization And Mapping (SLAM) problem has been well studied in the robotics community, especially using mono, stereo cameras or depth sensors. 3D depth sensors, such as Velodyne LiDAR, have proved in the last 10 years to be very useful to perceive the environment in autonomous driving, but few methods exist that directly use these 3D data for odometry. We present a new low-drift SLAM algorithm based only on 3D LiDAR data. Our method relies on a scan-to-model matching framework. We first have a specific sampling strategy based on the LiDAR scans. We then define our model as the previous localized LiDAR sweeps and use the Implicit Moving Least Squares (IMLS) surface representation. We show experiments with the Velodyne HDL32 with only 0.40% drift over a 4 km acquisition without any loop closure (i.e., 16 m drift after 4 km). We tested our solution on the KITTI benchmark with a Velodyne HDL64 and ranked among the best methods (against mono, stereo and LiDAR methods) with a global drift of only 0.69%.
如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号。
欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。
有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!
泡泡网站:www.paopaorobot.org
泡泡论坛:http://paopaorobot.org/forums/
泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!
商业合作及转载请联系liufuqiang_robot@hotmail.com