0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SLAM在自动驾驶的应用

汽车玩家 来源:人工智能遇见磐创 作者:人工智能遇见磐创 2020-04-20 09:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

SLAM是机器人或车辆建立当前环境的全局地图并使用该地图在任何时间点导航或推断其位置的过程。

SLAM常用于自主导航,特别是在GPS无信号或不熟悉的地区的导航。本文中我们将车辆或机器人称为“实体”。实体的传感器会实时获得周围环境的信息,并对信息进行分析然后做出决策。

1. 介绍

SLAM是一种时间模型,它的目标是从复杂的信息中计算出一系列状态,包括预期环境,距离,以及根据之前的状态和信息得出的路径 W_t 。有许多种状态,例如,Rosales和Sclaroff(1999)使用状态作为行人边界框的3D位置来跟踪他们的移动。Davison 等人(2017)使用单目相机的相机位置,相机的4D方向,速度和角速度以及一组3D点作为导航状态。

SLAM一般包含两个步骤,预测和测量。为了准确表示导航系统,SLAM需要在状态之间以及状态和测量之间进行学习。SLAM最常用的学习方法称为卡尔曼滤波。

2. 卡尔曼滤波

卡尔曼滤波是一种用于状态估计的贝叶斯滤波类型。它是一种递归算法,作为系统中不确定性的函数,使预测可以随着时间的推移进行校正。不确定性表示为当前状态估计和先前测量之间的权重,称为卡尔曼增益。该算法将实体先前的状态,观测和控制输入以及当前的观测和控制输入作为输入。过滤器包括两个步骤:预测和测量。预测过程使用运动模型,可以根据给定的先前位置和当前的输入估计当前位置。测量校正过程使用观察模型,该模型基于估计的状态,当前和历史观察以及不确定性来对当前状态进行最终估计。

SLAM在自动驾驶的应用

图1. 根据历史状态,传感输入和观测以及当前传感输入和观测来估计新状态w_{t+1}和m。

第一步涉及了时间模型,该模型基于先前的状态和一些噪声生成预测。

SLAM在自动驾驶的应用

公式1. 预测模型。μ表示状态的平均变化向量。ψ是状态数量的矩阵,将当前状态与先前的平均值相关联。ε是转换噪声,可以确定当前状态与前一个状态的紧密相关程度。

第二步是“校正”预测。传感器收集自主导航的测量值。有两类传感器:外传感器器和内传感器(proprioceptive)。外传感器从外部环境中收集信息,包括声纳,距离激光,相机和GPS。在SLAM中,这些是观察值。内传感器利用编码器,加速度计和陀螺仪等设备收集系统内部信息,如速度,位置,变化和加速度。在SLAM中,这些是单元控制,传感器结果输入到实体中进行计算。这些传感器各有利弊,但相互组合可以产生非常有效的反馈系统。

SLAM在自动驾驶的应用

公式2. μₘ表示测量平均向量。Φ是状态数量的将测量的平均值与当前状态相关联。εₘ是测量噪声,通常以协方差Σₘ分布。

卡尔曼增益增强了测量的可信性。例如,如果相机失焦,我们就不会对拍摄内容的质量报太大期望。卡尔曼增益较小意味着测量对预测的贡献很小并且不可靠,而卡尔曼增益较大则正好相反。

SLAM在自动驾驶的应用

公式3.卡尔曼增益计算,Σ₊是预测的协方差。

更新过程如下:

SLAM在自动驾驶的应用

公式4. 使用卡尔曼增益的卡尔曼滤波学习过程。图片来自Simon JD Prince(2012)。

虽然这种方法非常有用,但它还存在一些问题。卡尔曼滤波假定单模态分布可以用线性函数表示。解决线性问题的两种方法是扩展卡尔曼滤波器(EFK)和无迹卡尔曼滤波器(UFK)。EFK使用泰勒展开来逼近线性关系,而UFK使用一组质量点近似表示正态,这些质量点具有与原始分布相同的均值和协方差。一旦确定了质量点,算法就通过非线性函数传递质量点以创建一组新的样本,然后将预测分布设置为正态分布,均值和协方差等效于变换点。

由卡尔曼滤波强加的单模分布假设意味着不能表示其他状态假设。粒子滤波是解决这些问题的常用方法。

SLAM在自动驾驶的应用

图片来自Simon JD Prince(2012)

3. 粒子滤波

粒子滤波允许通过空间中的粒子来表示多个假设,高维度需要更多粒子。每个粒子都被赋予一个权重,该权重表示其所代表的状态假设中的置信度。预测从原始加权粒子的采样开始,并从该分布中采样预测状态。测量校正根据粒子与观测数据的一致程度(数据关联任务)来调整权重。最后一步是对结果权重进行归一化,使总和为1,因此它们是0到1的概率分布。

SLAM在自动驾驶的应用

图片来自Simon JD Prince(2012)。粒子滤波的步骤。

因为粒子的数量可以不断增多,因此对该算法的改进集中在如何降低采样的复杂性。重要性采样和Rao-Blackwellization分区是常用的两种方法。

4. 研究现状

下图来自Fuentes-Pacheco, J., Ruiz-Ascencio, J., & Rendón-Mancha, J. M. (2012)的论文“Visual simultaneous localization and mapping: a survey”,总结了到2010年的SLAM中的一些方法。他们的研究分为几个方面。核心方案是使用学习算法,其中一些在上文讨论过。地图的类型是捕获环境几何属性的度量图,或者是描述不同位置之间的连接的拓扑图。

在线跟踪中最常用的功能是显著特征和标记。标记是在环境中由3D位置和外观描述的区域(Frintrop和Jensfelt,2008)。显著特征是由2D位置和外观描述的图像区域。深度学习技术通常用于在每个时间点描述并检测这些显着特征,以向系统添加更多信息。检测是识别环境中的显著元素的过程,描述是将对象转换为特征向量的过程。

SLAM在自动驾驶的应用

表1来自J. Fuentes-Pacheco等人(2012年)。与特征提取相关的研究

应用SLAM的方案有两种,一种是回环检测(loop closure),另一种是“机器人绑架(kidnapped robot)”。回环检测是识别已经访问过的任意长度的循环偏移,“机器人绑架”不使用先前的信息去映射环境。

SLAM在自动驾驶的应用

表2仍然来自J. Fuentes-Pacheco等人。(2012)针对环境特定的方法。

5. 总结

SLAM是自主导航中常用的状态时间建模的框架。它主要基于概率原理,对状态和测量的后验和先验概率分布以及两者之间的关系进行推断。这种方法的主要挑战是计算复杂。状态越多,测量越多,计算量越大,在准确性和复杂性之间进行权衡。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SLAM
    +关注

    关注

    24

    文章

    459

    浏览量

    33416
  • 自动驾驶
    +关注

    关注

    794

    文章

    14987

    浏览量

    181481
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    自动驾驶汽车如何实现自动驾驶

    人类驾驶员而言是非常直观且有效的指令,但对于自动驾驶汽车来说,则意味着需要一套极其复杂的感知、理解与决策链路。 自动驾驶如何看清文字? 自动驾驶汽车感知汉字的第一步是场景文本识别技术,
    的头像 发表于 02-10 08:50 791次阅读
    <b class='flag-5'>自动驾驶</b>汽车如何实现<b class='flag-5'>自动驾驶</b>

    SLAM如何为自动驾驶提供空间感知能力?

    ,并精准地判断自己与障碍物的距离。这种看似本能的空间感知能力,工程学领域被具象化为同步定位与地图构建技术,即我们常说的SLAM自动驾驶的发展进程中,
    的头像 发表于 02-09 09:12 554次阅读
    <b class='flag-5'>SLAM</b>如何为<b class='flag-5'>自动驾驶</b>提供空间感知能力?

    Transformer如何让自动驾驶大模型获得思考能力?

    在谈及自动驾驶时,Transformer一直是非常关键的技术,为何Transformer自动驾驶行业一直被提及?
    的头像 发表于 02-01 09:15 4390次阅读

    如何设计好自动驾驶ODD?

    为确定自动驾驶的可使用范围,会给自动驾驶设置一个运行设计域(Operational Design Domain,ODD)。ODD的作用就是用来明确自动驾驶什么情况下能工作,
    的头像 发表于 01-24 09:27 1749次阅读

    山区实现自动驾驶的难点在哪里?

    城市道路实现自动驾驶或许不难,但想把自动驾驶车应用到山区道路,其难度会比想象的大得多。城市里路标、车道、红绿灯比较多,车流也比较规则;而很多山路却没有清晰车道、路面起伏大、天气变化快,还有随时掉落
    的头像 发表于 11-08 14:57 3081次阅读

    高程数据自动驾驶中有什么作用?

    最近有小伙伴让智驾最前沿聊聊自动驾驶高精度地图对高程数据的使用依赖,其实在聊这个话题之前,还是需要先知道高程数据是什么,自动驾驶中到底有什么作用。
    的头像 发表于 11-02 13:44 1972次阅读

    自动驾驶中如何将稀疏地图与视觉SLAM相结合?

    [首发于智驾最前沿微信公众号]自动驾驶场景中,稀疏地图通常是由一系列关键帧和若干三维稀疏特征点构成的地图,每个特征点包含三维坐标和描述外观的描述子;而视觉SLAM是运行在车辆上的实时算法,它一边
    的头像 发表于 10-28 09:07 812次阅读
    <b class='flag-5'>自动驾驶</b>中如何将稀疏地图与视觉<b class='flag-5'>SLAM</b>相结合?

    不同等级的自动驾驶技术要求上有何不同?

    谈到自动驾驶,不可避免地会涉及到自动驾驶分级,美国汽车工程师学会(SAE)根据自动驾驶系统与人类驾驶员参与驾驶行为程度的不同,将
    的头像 发表于 10-18 10:17 2857次阅读

    低速自动驾驶与乘用车自动驾驶技术要求上有何不同?

    [首发于智驾最前沿微信公众号]自动驾驶技术的发展正朝着多元化方向迈进,其中低速自动驾驶小车(以下简称“低速小车”)因其物流配送、园区运维、社区服务等场景中的独特价值而受到广泛关注,且现阶段已经深入
    的头像 发表于 07-14 09:10 1254次阅读
    低速<b class='flag-5'>自动驾驶</b>与乘用车<b class='flag-5'>自动驾驶</b><b class='flag-5'>在</b>技术要求上有何不同?

    自动驾驶汽车隧道、山区如何精准定位?

    [首发于智驾最前沿微信公众号]精准定位是自动驾驶得以实现的核心技术之一。自动驾驶汽车需要准确了解自身在道路上的位置,才能安全地规划路径、保持车道、避让障碍。常见的定位技术包括全球导航卫星
    的头像 发表于 07-13 11:30 1399次阅读
    <b class='flag-5'>自动驾驶</b>汽车<b class='flag-5'>在</b>隧道、山区如何精准定位?

    卡车、矿车的自动驾驶和乘用车的自动驾驶技术要求上有何不同?

    [首发于智驾最前沿微信公众号]自动驾驶技术的发展,让组合辅助驾驶得到大量应用,但现在对于自动驾驶技术的宣传,普遍是乘用车领域,而对于卡车、矿车的
    的头像 发表于 06-28 11:38 1782次阅读
    卡车、矿车的<b class='flag-5'>自动驾驶</b>和乘用车的<b class='flag-5'>自动驾驶</b><b class='flag-5'>在</b>技术要求上有何不同?

    自动驾驶安全基石:ODD

    和限制下可以正常工作,是自动驾驶安全的核心概念之一。   对于人类司机来说,不同的道路上驾驶的能力也有所区别,比如新手司机一些窄路、山路,或者交通状况复杂的道路上可能会无所适从,人
    的头像 发表于 05-19 03:52 6981次阅读

    激光雷达自动驾驶领域中的优势

    自动驾驶系统中,激光雷达起到了至关重要的作用,它是实现高度自动驾驶的关键传感器之一。激光雷达通过发射和接收多束脉冲信号,通过测量ToF(Time of Flight,飞行时间),从而获取每一个发射
    的头像 发表于 05-15 11:15 1372次阅读
    激光雷达<b class='flag-5'>在</b><b class='flag-5'>自动驾驶</b>领域中的优势