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

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

3天内不再提示

Apollo 2.5自动驾驶规划控制系统详细介绍

YB7m_Apollo_Dev 来源:未知 作者:李倩 2018-07-16 11:06 次阅读

在第4期Apollo自动驾驶公开课中,来自Apollo团队的资深架构师-朱帆老师对Apollo 2.5自动驾驶规划控制系统进行了详细介绍。

这里,我们将整理后的公开课视频资料分享给大家,没能到达现场的开发者可以通过视频和PPT资料来详细了解课程内容。

Apollo 2.5自动驾驶规划控制

技术难点

规划模块所面临的技术难点有三点。

第一,车辆所处的环境复杂度高。因此传感器检测返回的数据复杂,障碍物个数种类多;路况信息复杂,在高速上一秒钟车辆能跑出30米,情况瞬息万变。

第二,系统对规划模块的要求高。规划模块需要覆盖所有的ADAS场景,对模块计算的实时性和稳定性有着很高的要求。

第三,这是一个全新的未知领域,能够从外界获得的信息有限。虽然有过去长期的积累,但是依然有多重难题需要解决。

整体思路

下面来看一下规划模块是如何实现的。

想象一个人在开车,要从A点开到B点;他有多种方式可以完成这一任务,但是不同的方式,成本是不一样的。

那么如何去找一个成本最低的规划曲线呢?开发者面临的是一个三维空间中的优化问题,包括路面的二维平面,也包括时间维度。这是一个N立方难度的问题,Apollo 2.5的解决方法是,把这个N立方级别的问题,分拆成两个N平方级别的问题。也就是在x-y维度上求解,进行路径规划;在路径规划的基础上,以规划出来的路径为s轴,在s-t维度上进行速度规划。

这种降低维度,以退为进的方法,是对规划模块认识上的一个飞跃。通过放弃最优解的追求转而追求较优解,换来系统运算速度、稳定性的极大提高,同时满足无人驾驶系统的整体需求。这一点可以类比机器学习中SGD的思路,放弃对精确梯度方向的寻找,转而寻找近似梯度的方向,从而换来学习速率上的提升。

整体架构

规划模块的架构从整体上来说,可以分为两个部分:一部分负责对数据的监听、获取和预处理;另一部分负责管理各个优化模块。数据进入后,对其综合处理为规划模块的内部数据结构,由任务管理器调度合适的优化器进行各个优化任务。综合优化的结果,经过最终的验证后,输出给控制模块。

在设计上,实现了策略的可插拔,使得各个优化器可以灵活配置不同策略,提升迭代效率。

相对于Apollo 2.0,规划模块在延续了其架构上统一、灵活、快捷的优点上,在保持已开发算法持续更新优化的同时,又新增了局部坐标系以及一种新的速度和路径同时优化的Lattice planner。

规划器

Apollo的规划模块目前有三种类型的规划器:

Apollo 1.0中开始开放的RTK,也就是循迹Planner;Apollo 1.5中开始开放的EM Planner,也就是基于动态规划Dynamic Programming和二次规划Quadratic Programming的路径规划器与速度规划器;以及Apollo 2.5中开始开放的Lattice Planner,一种路径和速度同时规划的规划器。

RTK Planner

RTK Planner是规划预先设置的轨迹,为循即算法使用。

EM Planner

EM Planner可以通过动态规划进行路径和速度规划。比如说,路径规划会在范围内进行机动撒点,离散化解空间进行求解。

要想合理的选择采样点,首先应该直观的感受一下车辆和道路。以最常用的林肯MKZ 2016款车款为例,此车宽度2米1,那么假设道路宽度为3.5米,在当前道路行驶的时候就留下了一共1.4米左右的机动范围。

比如说,采样器在垂直于Lane的方向选择5个点,这种选法每两个点间隔0.35米,对于车辆调节来说是合适的;而在沿着道路方向,点的选取不需要特别密集,过于密集的选择白白浪费了计算资源,并且在下一步使用光滑曲线连接点的时候,造成求解的不稳定。所以,往往会根据当前的车速和路况进行选择,比如每隔15-20米选一组点,共选择4-5组。这样选点,结合了车辆与道路的特点,并且所有参数是可以配置的,具有高度的灵活性。

撒点后,通过Cost Function一层一层的进行动态规划,从而对问题进行了有效的简化。然后再通过平滑的曲线连接各层采样点得到最终的路径。其优势是明显的:

灵活性:采样点从左到右覆盖了整个可行区间,避免陷入局部最优

可靠性:其利用Cost Function 避免无解

可拓展:低速到高速全覆盖

EM Planner中的速度规划,也可以采用和路径规划相似的方法。对解空间进行离散化以后,然后通过动态规划进行求解。从图中可以看到,在将与主车轨迹有重叠的障碍物映射到ST图以后,速度规划可以通过加速减速匀速等操作,从ST图中搜索到一条可通行区间并生成速度规划。从最后生成出来的图里面,可以解读出来相对于每一个障碍物的纵向决策。

比如说,需要避让或者跟随一个障碍物,车辆就从障碍物ST图中下方通过如果需要超越一个障碍物,那么在ST中车辆就从其上方通过。

Lattice Planner

接下来看一下Apollo 2.5中开放的新算法Lattice Planner。

Lattice Planner和EM Planner在设计上最大的区别在于,Lattice是横向纵向综合求解的,而EM是分开求解的。Lattice Planner源于斯坦福大学参加DARPA无人驾驶大赛的规划算法,Apollo 2.5吸收了其精华,并针对原有算法进行了改进和升级。

和EM planner一样,Lattice Planner也将轨迹规划问题分解成横向和纵向两个1维空间的独立的轨迹规划问题, 降低规划难度。横向仍然是SL问题,也就是Station Lateral,纵向上也还是ST,也就是Station Time问题。

Lattice Planner会根据起点和终点的状态,在位置空间和时间上同时进行撒点。撒点的起始状态和终止状态各有6个参数,包括了3个横向参数,即横向位置、横向位置的导数也就是Heading、Heading的导数;3个纵向参数,即纵向位置、纵向位置的一阶导数也就是速度、纵向位置的二阶导数(也就是加速度)。

起点的参数是车辆当时真实的状态,或者Stitch的状态来进行设计,终止状态则是撒点枚举的各个情况。在确定了终点和起点状态以后,再通过五阶或者四阶的多项式连接起始状态和终止状态,从而得到规划的横向和纵向轨迹。

这个步骤是Lattice算法的精髓所在,它直接决定了算法的效率以及解空间。举个例子来说,在撒点的时候可以的加入车辆物理动力学性能的约束,同时根据障碍物进行可行域的预筛选等,有效的裁剪无效空间,从而达到更优的性能。

在生成所有横向和纵向的一维轨迹以后,将其排列组合起来,合成大量的二维轨迹,然后根据损失函数筛选出最好的合成轨迹。和EM Planner类似,Lattice Planner的损失函数也可以分为,安全相关、体感相关以及目标完成度相关三类。

下面来看一下Lattice Planner在模拟器中的效果。

Lattice Planner在Apollo模拟器Azure中场景通过率达到了100%。

Planner 对比

Lattice Planner的优点是很明显的,同时产生轨迹的几何形状与速度分配,直接考虑到车辆的动力学状态,尤其是横向动力学状态,产生更适合高速运动的轨迹,简单可靠,参数少于10个。它利用了撒点算法避免了轨迹陷入局部最优,性能也非常的优秀,生成超过1000轨迹,轨迹的生成加上选择,用时少于100ms,确保了能做到10赫兹的Planning规划。

Planner 轨迹后处理

在轨迹生成以后,往往还可以通过一些后处理,对轨迹进行平滑和验证。可以通过几何的算法或者更加高粒度的采样,对于生成轨迹每个点,进行额外的碰撞检查。也可以同时验证规划的轨迹是否符合车辆的物理学动力特性,比如看其是否有超过车辆加减速度上下界限,以及转弯半径界限的时候。

回退保障机制

秉着安全第一的原则,Apollo 2.5同时提供冗余机制以保证整个系统的稳定性。车辆在路上行驶的过程中,遇到的情况千差万别,如果真的遇到了无论是人工驾驶还是机器驾驶都无法解决的特殊恶劣情况,如何保证Planning不会崩溃,并且输出一条相对最安全的轨迹,以保证生命和财产的安全,就显得尤其的重要了。

因此,无论是使用DP还是QP的EM planner,还是同时进行速度和路径优化的Lattice Planner,Apollo 2.5针对路径规划和速度规划都加入了后备规划。在正常的逻辑并不能在给定假设情况下计算出一条合理的路径的时候,针对当时的情况,对车辆进行合理的减速最后停车,以确保安全。

高效的测试与迭代

如何帮助大家进行能够高效的迭代也是Apollo所关心的一个重要问题。因此,Apollo的Planning有一套推荐的测试迭代流程。即单元测试,单周期的集成测试,模拟器测试,最后再实车测试的流程。让开发者可以在开发迭代的过程中,随时进行回归,保证开发的质量以及效率。

坐标系

Apollo 2.5又为大家打开了另外一扇窗--相对坐标系。此前的绝对坐标系是以世界为背景的一种全局定位,世界上每一个点,都会有一个相应的唯一的坐标。它的好处很明显,因为是全局唯一,所以说表达一个物体的真实位置的时候非常的容易,做多时刻位置对齐的时候也会比较的容易。

车身相对坐标系也是一种常见的坐标系,它是以车辆自身位置坐标原点,以车辆的朝向为x,车辆左方为y的坐标系。其优点也是非常明显的,可以去除开发者们对于地图定位的强依赖,反馈的数值也更加的直观方便开发者的理解。

相对坐标系

助力于相对坐标系这个新feature,在Apollo 2.5中同时推出了L3的高速方案。也就是基于车道线的感知方案和不基于地图和定位的规划方案。可以理解成为是类似于Tesla Autopilot或者Mobileye的方案,利用相对坐标系下的车道线代替全局坐标系的地图与定位,进行L3级别的自动驾驶功能。

就像John Kennedy说的:“We choose to go to the moon in this decade and do the other things,not because they are easy,but because they are hard.”

这是Apollo的口号,也是我们一直以来的信念。

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

    关注

    307

    文章

    2049

    浏览量

    207823
  • 自动驾驶
    +关注

    关注

    773

    文章

    12997

    浏览量

    163128
  • Apollo
    +关注

    关注

    5

    文章

    325

    浏览量

    18291

原文标题:自动驾驶公开课 | Apollo 2.5自动驾驶规划控制

文章出处:【微信号:Apollo_Developers,微信公众号:Apollo开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    自动驾驶真的会来吗?

    技术本身是死亡事件的主要原因。  她向新浪科技解释称,特斯拉在对外宣传上也是表明其并不是完全独立自主的自动驾驶系统。但对于用户而言,当特斯拉将这个功能开放出来后,用户在使用了一段时间后容易形成依赖感
    发表于 07-21 09:00

    自动驾驶的到来

    得益于2025规划,中国整车厂与Tier1目前对于自动驾驶有极大的热忱及投入,有机会在这个领域实现弯道超车。目前的顾虑在于法规政策的制定,以及中国特色的交通情况带给自动驾驶的挑战。安全问题  目前主要
    发表于 06-08 15:25

    3天造出自动驾驶汽车的百度Apollo,背后竟有50多个后台

    主要对外开放的是封闭场地循迹自动驾驶能力,在云端服务方面,会发布开放平台和智能车载系统DuerOS;软件平台则开放了自定位、控制、HMI等多项技术;在硬件开放层次,对外开放了自动驾驶
    发表于 07-07 18:28

    UWB主动定位系统自动驾驶中的应用实践

    3万美元以上,相当于一辆中级车的价格。自动驾驶四大核心技术分别为环境感知、高精度定位、路径规划控制执行。其中环境感知技术是最基础、最重要的一环。通过环境感知,可实时、可靠且准确地识别出车辆行驶路径
    发表于 12-14 17:30

    中国自动驾驶行业前景看好,国产技术迅速发展

    系统、定位导航系统、路径规划系统、中央处理单元、辅助驾驶系统与运动控制系统六大
    发表于 04-03 05:36

    如何让自动驾驶更加安全?

    开放道路测试牌照,许可在公共道路上测试自动驾驶技术,参与测试的企业将通过道路测试来不断验证自动驾驶技术的成熟度。专家介绍,从自动化程度角度看,自动驾
    发表于 05-13 00:26

    转发:聊聊边缘计算在自动驾驶中的应用场景

    的工作量和成本也非常高。随着电动汽车和自动驾驶汽车的发展,包括 AI、云计算、车联网 V2X 等新技术不断应用于汽车行业中,使得汽车控制系统的复杂度愈来愈高。同时,人们对于数字化生活的需求也逐渐扩展到汽车
    发表于 07-21 14:12

    百度Apollo自动驾驶分析报告

    百度自动驾驶行业报告,值得一看
    发表于 09-02 18:10

    如何打造自动驾驶「自行车」的呢

    」自行车项目,自行车化身「自动行走」的车!视频讲解详细,网友直呼:666666那么,稚晖君是如何打造自动驾驶「自行车」的呢?第一步当然是最基本的让车子跑起来,这就需要硬件改造,加入自动控制系统
    发表于 08-26 09:23

    自动驾驶系统设计及应用的相关资料分享

    作者:余贵珍、周彬、王阳、周亦威、白宇目录第一章 自动驾驶系统概述1.1 自动驾驶系统架构1.1.1 自动驾驶
    发表于 08-30 08:36

    自动驾驶技术的实现

    的带宽有了更高的要求。从而使用以太网技术及中央域控制(Domain)和区域控制(Zonal)架构是下一代车载网络的发展方向。然而对于自动驾驶技术的实现,涉及到感知、规划、执行三个层面。
    发表于 09-03 08:31

    自动驾驶线控底盘VCU功能介绍

    满足自动驾驶远程遥控的线控底盘整车控制器VCU1 自动驾驶线控底盘VCU功能介绍满足自动驾驶及遥控驾驶
    发表于 09-07 06:30

    详细说明多项自动驾驶底层软件技术

    软件中,针对面向服务架构SOA开发需要使用高性能的处理器,自适应汽车开放系统架构AP Autosar有着不可比拟的优势。  而应用软件中,自动驾驶整体架构主要涉及感知、规划、决策、控制
    发表于 11-09 16:09

    浅析Apollo 2.5限定场景低成本技术方案

    本文来自Apollo团队的资深架构师-朱帆老师对Apollo 2.5自动驾驶规划控制系统进行了
    的头像 发表于 07-19 09:56 3287次阅读

    百度Apollo自动驾驶平台及自动驾驶等级

    平 台,帮助他们结合车辆和硬件系统,快速搭建一套属于自己的完整的自动驾驶系统。而将这个计划命名为“Apollo”计划,就是借用了阿波罗登月计划的含义。
    发表于 06-02 16:18 0次下载
    百度<b class='flag-5'>Apollo</b><b class='flag-5'>自动驾驶</b>平台及<b class='flag-5'>自动驾驶</b>等级