SLAM介绍

SLAM是什么

SLAM(Simultaneous Localization and Mapping)指的是同时进行实时定位和地图构建的任务。在实际应用中,SLAM通常涉及到多种传感器和算法。

SLAM包括以下几个方面:

1. 传感器:激光雷达、摄像头、惯性测量单元(IMU)、里程计等。这些传感器可以提供机器人在运动过程中所需要的信息,如距离、角度、速度、方向等。

2. 机器人运动模型:机器人的运动模型用于估计机器人的位姿,例如里程计模型、速度模型、加速度模型等。

3. 视觉算法:视觉算法主要用于机器人在环境中的感知和定位,如特征提取、特征匹配、图像配准等。

4. 滤波算法:滤波算法用于估计机器人的位姿和地图中不同位置的概率分布,如卡尔曼滤波器、粒子滤波器等。

5. 优化算法:优化算法用于优化机器人的位姿和地图,如扩展信息滤波器、位姿图优化等。

6. 地图表示:地图表示方式可以有多种,如栅格地图、拓扑地图、点云地图等。

综上所述,SLAM涉及到多个方面的知识,包括传感器、机器人运动模型、视觉算法、滤波算法、优化算法和地图表示等。


Filter-based SLAM

(基于滤波器的SLAM)

像这种SLAM的代表是:gmapping。

1.状态预测就是根据odom所传递的信息预测机器人的大致位置。2.测量预测是对当前时刻的位置进行预测3.基于前两点的数据就可以进行具体的测量。4.将雷达的激光数据,odom数据进行结合5.基于以上的信息对状态和地图进行更新

首先,我们要想进行SLAM就要有传感器。那么传感器是啥啊?

传感器

传感器是用于感知环境中信息的设备,主要用于获取物理量和环境特征等信息。在SLAM中,传感器是非常重要的组成部分,可以提供机器人在运动过程中所需要的信息,如距离、角度、速度、方向等。

常用的SLAM传感器包括:

1. 激光雷达:激光雷达是一种通过发射激光束来探测目标并测量距离的传感器。它可以提供高精度、高分辨率的距离和角度信息,被广泛应用于SLAM中。

2. 摄像头:摄像头可以通过拍摄环境中的图像来获取场景的信息,如特征点、轮廓等。在SLAM中,摄像头可以用于实现视觉SLAM或者辅助其他传感器进行定位。

3. 惯性测量单元(IMU):IMU可以测量机器人的加速度和角速度等信息,通过积分可以得到机器人的位姿信息。IMU通常与其他传感器结合使用,用于实现多传感器融合。

4. 里程计:里程计是一种通过测量轮子旋转的信息来推算机器人位移的传感器。虽然里程计的精度较低,但在SLAM中仍然是一个非常重要的传感器。

此外,还有其他一些传感器,如GPS、磁力计等,可以用于SLAM中。不同的传感器有不同的特点和适用场景,根据具体的应用需求选择合适的传感器非常重要。

  要知道当我们只使用其中的一种也是能进行SLAM的,但误差会相对较大。通常来说会用雷达,里程计与IMU。


   又有一个问题了,当SLAM的时候又要如何显示地图呢?

   常用的二种地图类型为覆盖栅格地图(Occupany Grid Map),点云地图。经常用的是第一个。

覆盖栅格地图(Occupany Grid Map)

覆盖栅格地图(Occupancy Grid Map)是一种常见的地图表示方式,主要用于描述环境中每个位置的占据状态。在覆盖栅格地图中,环境被分成一个个网格单元,每个网格单元表示一个位置,并记录该位置的占据状态,一般用二进制值表示,例如0表示空闲,1表示占据。

覆盖栅格地图可以通过激光雷达等传感器获得环境中障碍物的位置信息,将障碍物所在的网格单元标记为占据状态。同时,通过机器人的位姿信息,可以将机器人所在的网格单元标记为占据状态,并在地图中绘制出机器人的轨迹。

覆盖栅格地图的优点在于简单、易于实现和可视化,可以用于快速构建地图和进行导航。但是,由于覆盖栅格地图要求环境被划分为网格单元,因此地图的精度和分辨率可能会受到限制。同时,覆盖栅格地图还需要消耗大量的存储空间和计算资源,因为需要维护大量的网格单元。

需要注意的是,覆盖栅格地图只记录了占据状态,并没有记录障碍物的形状和大小等信息。如果需要更精确的地图表示方式,可以使用其他地图表示方法,如点云地图、边缘地图等。

如图示,白色是可以移动的的区域,黑色是障碍物。

点云地图

点云地图(Point Cloud Map)是一种地图表示方式,主要用于描述环境中物体的三维形状和位置信息。在点云地图中,环境被表示为一组三维点云,每个点表示一个位置,并记录该位置的属性信息,如颜色、法向量、反射率等。

点云地图可以通过激光雷达、摄像头等传感器获得环境中物体的位置和形状信息,通过点云配准和滤波等算法,可以将多个点云融合成一个完整的地图,用于机器人的定位、导航和避障等任务。

相对于覆盖栅格地图等二维地图表示方式,点云地图的优点在于可以提供更加真实的环境信息,可以描述物体的三维形状和位置信息,同时也可以用于识别和分类物体。但是,点云地图的缺点在于数据量较大,需要消耗大量的存储空间和计算资源,同时对点云数据的处理和配准等算法也比较复杂。

需要注意的是,点云地图的精度和分辨率取决于传感器的精度和采样率等因素,而点云地图的质量对机器人的定位和导航等任务影响很大,因此需要对点云地图进行精细的处理和优化。(没整过三维的就不讲了)


 那么我们在得到了传感器数据又要怎样构建地图呢?

这就要用算法来完成了。

SLAM要用帧间匹配算法与回环检测来完成。

帧间匹配算法:ICP(Iterative Closest Point),PI-ICP(Ponit-to-line Closest Point),NDT(Normal Distribution Transformation),CSM(Correlation Scan Match)

回环检测:Scan-to-Scan,Scan-to-Map,Map-To-Map。


 这只是2D的SLAM

至于原理啥的以后再说,细说的话太难了。

还有就是激光SLAM与视觉SLAM,他们在底层的数学逻辑有一些是相似的

详细学习SLAM的话,先学习一些基本的数学知识

比如:旋转矩阵,欧拉角,李群,李代数等等;像一些代码的原理是基于这些知识的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值