大家好,又见面了,我是你们的朋友全栈君。
激光SLAM算法学习(一)
激光SLAM简介
1、SLAM是什么 SLAM是同步定位与地图构建(Simultaneous Localization And Mapping)的缩写,最早由Hugh Durrant-Whyte 和 John J.Leonard提出。SLAM主要用于解决移动机器人在未知环境中运行时定位导航与地图构建的问题。
SLAM通常包括如下几个部分,特征提取,数据关联,状态估计,状态更新以及特征更新等。对于其中每个部分,均存在多种方法。针对每个部分,我们将详细解释其中一种方法。在实际使用过程中,读者可以使用其他的方法代替本文中说明的方法。这里,我们以室内环境中运行的移动机器人为例进行说明,读者可以将本文提出的方法应用于其他的环境以及机器人中。其中包括2D-SLAM和3D-SLAM。一下大概分为三种形式: Localization:在给定地图的情况下,估计机器人的位姿。 SLAM:同时估计机器人的位姿和环境地图。 Mapping:在给定机器人位姿的情况下,估计环境地图。
2、SLAM的分类
3、SLAM的框架
Graph-based SLAM ?(? 0:? ,?|? 1:? ,? 1:? ) Node:机器人的位姿 Edge:节点之间的空间约束关系 Graph:表示SLAM的过程
激光SLAM包含图优化前与图优化后的地图。
图优化前:
图优化后:
4、激光SLAM
Filter-based SLAM: ?(? ? ,?|? 1:? ,? 1:? ) 状态更新 & 地图更新(State & Map Update) 测量预测(Measurement Prediction) 进行测量(Measurement) 数据关联(Data Association) 状态预测(State Prediction)
传感器数据包括: 惯性测量单元(IMU) 激光雷达(Lidar) 轮式里程计(Wheel Odometry)
地图类型: 覆盖栅格地图(Occupany Grid Map) 点云地图
激光SLAM帧间匹配算法: ICP(Iterative Closest Point) NDT(Normal Distribution Transfomation) PI-ICP(Point-to-Line Iterative Closest Point) CSM(Correlation Scan Match) 回环检测: Scan-to-Scan Map-to-Map Scan-to-Map
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148723.html原文链接:https://javaforall.cn