Advertisement

探索无人驾驶汽车:SLAM自主建图技术。

阅读量:

有一天,我会放开双手,任由汽车带着我遨游山河。

有一天,我会放松身心,透过车窗去看这美丽景色。

无 driver 自动驾驶技术随着科技进步日新月异而备受关注 它不再是遥不可及的理想 也不再局限于只能在科幻电影中见到的状态 现如今正逐步融入人们的日常生活

曾与您讨论过无人驾驶技术(驰骋于科技的海洋上,无人驾驶技术同样展现出不可阻挡的魅力。)

因此今天我决定与您分享无人驾驶的一些核心技术以便于您更加透彻地掌握这一前沿科技

ROS全开源 阿克曼转向 智能网联 无人驾驶车

我们要说的,是无人驾驶车涉及的技术之一——SLAM自主建图技术**。**

SLAM自主建图 · 技术

(对道路路面信息、障碍物进行数据建模,生成高精度地图。)

掌握SLAM自主建图技术的基础步骤, 就需要先理解, 它包含的映图种类包含若干类别.

按地图类型分类

网格图:将区域划分为m×n个栅格,每个栅格内的标记表示是否被占用。

2、Landmark-based maps: Maps constructed based on landmarks, it is known that certain markers are located at specific positions on the map.

按建图原理分类

1、占用图(occupancy maps):对于每个栅格单元,代表是否被占用。

2、反射图(reflection maps):对于每个单元,表示传感器束反射的概率。

构建 · 地图

在深入掌握了SLAM自主建图技术构建不同类型地图的知识后,我们就需要系统地学习有关该技术在地图构建方面的专业知识

建图原理

基于运动模型识别机器人在空间中的运动轨迹;利用传感器模型采集周围环境信息,并结合分析构建完整的环境感知图谱。

SLAM难点

考虑到机器人的移动轨迹与周边环境的信息均为未知状态,并且在机器人持续移动的过程中所造成的路径误差会逐步积累;当环境信息已提前被探测并整合进地图时,则可将其视为参考点用于对机器人运动轨迹进行修正工作,从而使机器人的运动轨迹误差逐渐收敛。

算法流程(基于扩展卡尔曼滤波EKF)

估算位置状态信息:基于运动模型推导机器人当前位置坐标。
估计测得值:基于第一条结果推算应获得的测得量。
获取环境数据:实时获取当前真实环境信息。
整合信息:基于EKF算法整合第二条和第三条所得的信息。
重新计算位置坐标:根据第四条结果重新计算机器人位置坐标并收敛误差。
更新地图数据:根据第四条和第五条结果生成新的地图数据集。

算法介绍

在建图初期阶段, 将机器人当前位置设定为其起始基准点, 此时构建一个长度为3的一维向量X_k以及一个大小为3×3的矩阵C_k. 其中, X_k表示已知基准点的位置信息, C_k则表示各已知基准点之间的相对关系.

伴随机器人运动状态及环境感知数据的输入,在实现定位与导航任务的过程中进行更新操作以整合至X_k和C_k变量中。

在矩阵C_k中,其对角线上的元素Cr, C_{M_1}$, C_{M_2}等分别表示不同类型的地标信息.其余的元素则表示相应行与列之间所存在的地物相互关系.例如,在这种情况下, C_{M_1 M_2} 用来表示$ C_{M_1} C_{M_2}$$ 之间的相对位置或空间关联.

在闭环路径规划中发现:每当机器人再次进入已识别区域时,在对已记录区域进行新审视后可降低对机器人位置及地标定位精度的影响。

其中一种策略是,在实际测量数据与原始数据之间的差低于预设阈值时,则判断这两点为重合点,并据此更新机器人当前位置;而当这一差值超过预设阈值时,则将其视为新的地图信息并加入地图数据库。

在上述C_k矩阵中,在机器人重新识别到m_2地标之后,则会基于新的测量数据更新C_k矩阵中的第m_2行和列的数值元素,并反映出m_2与其他所有地标的相对位置关系发生了变化

建图 · 算法

接下来要给大家介绍的,是几种SLAM自主建图的建图算法。

1. hector-slam

要求: 高更新频率、小测量噪声的激光扫描仪,不需要里程计,可手持建图。

2. gmapping-slam: tutorial

目前激光二维 simultaneous localization and mapping(2Dslam)技术是最广泛应用的方法;gMapping系统通常采用基于粒子滤波器的算法;其优点在于定位精度高;然而该方法依赖于完善的硬件支持。

3. karto_slam

karto_slam是一种基于图优化的技术框架,在解决稀疏系统解耦问题时采用了高度优化以及非迭代cholesky矩阵的方法作为解决方案。其采用基于均值的图表示法来构建地图模型,在这一过程中每个节点代表机器人轨迹上的一个具体位置点以及相应的传感器测量数据集合。连接符号的方向性特征反映了机器人轨迹中连续位置点之间的运动关系;每当新增一个节点时,在现有空间中按照约束条件重新计算更新整个系统的状态信息。

karto_slam的ROS版本中基于稀疏点调整(SPA)进行设计,该技术与扫描匹配及闭环检测紧密关联。landmark数量增加则内存占用相应提升,相比于其他方法,其在大规模环境中展现出更强的制图能力。值得注意的是,karto_slam在特定场景下表现更为突出,这是因为该算法仅涉及点云图(即robot pose),通过计算机器人位姿再生成地图以实现定位与建图相结合。

4. core_slam

core_slam旨在通过更简单的途径来实现对性能损失最小化这一概念的理解,并且是一种适用于slam领域的算法。它将算法分解为两个主要过程:距离计算与地图更新。首先,在每一次扫描处理输入数据时,采用基于简单粒子滤波算法来进行距离测量工作;其中粒子滤波匹配器负责将激光雷达信号与环境地图进行配准操作。每个滤波器粒子代表机器人可能存在的位置信息及其对应的置信度权重值,并且这些参数都是基于前一阶段的运算结果进行动态调整的。随后,在选择最优假设分布阶段(即淘汰低置信度粒子并生成新的候选位置),系统能够有效地优化定位精度。在更新阶段,则将扫描所得的数据记录到地图上;当检测到障碍物时会自动生成避障区域点云,并避免仅依赖于孤立障碍物点作为处理依据的情况。

阅读完上述关于SLAM自主建图技术的讲解后,请问您是否觉得对无人驾驶汽车的知识有了更大的深入呢?

尽管无人驾驶尚未全面覆盖我们的日常生活。然而目前无人驾驶的发展速度迅猛无阻相信在不久的将来无人驾驶技术将逐步融入人们的生活中为人们带来更多便利

想要获取更多人工智能方面的知识,请关注我们。

全部评论 (0)

还没有任何评论哟~