原文链接:进阶课程㉓丨Apollo规划技术详解——Motion Planning with Environment

行为层决定要在当前环境中执行的驾驶行为时,其可以是例如巡航-车道,改变车道或右转,所选择的行为必须被转换成路径或轨迹,可由低级反馈控制器跟踪。所产生的路径或轨迹必须满足车辆动力学约束的,对乘客来说是舒适的,并且避免与车载传感器检测到的障碍物的碰撞。寻找这样的路径或轨迹的任务是运动规划系统的责任。

由于规划感知控制之间的纽带,当前的新规划算法开发多考虑感知的不确定性以及控制的约束。在动态环境数据采集过程中,路径规划的最新发展目标是正确处理数据采集过程中的不确定性。这在实时的情况下会有更好的环境感知效果,并指导规划过程。通过考虑感知阶段的不确定性来提高防止危险情况的能力。从控制的角度来看,需考虑多目标,包括车辆的运动学约束和乘客的舒适性等。

上周阿波君为大家详细介绍了「进阶课程㉒Apollo规划技术详解——Motion Planning with Autonomous Driving」。

主要介绍了运动规划的一些基本方法,重点从robotics的角度阐释。包括有RRT(基于快速扩展随机树算法)Lattice网络方法Spira方法Polynomial方法Functional Optimization方法等。

本周阿波君将与大家分享Apollo规划技术详解——Motion Planning with Environment。下面,我们一起进入进阶课程第23期。


目录

1.运动规划的环境变化

2.Vehicle Model的建立

3.曲线坐标系SL

4.SL坐标系到XY坐标系的投影

5.XY坐标系到SL坐标系的投影


1.运动规划的环境变化

运动规划根据环境的变化在算法和处理方法上有很大的不同,涉及到模型建立平滑优化坐标转换以及障碍物投影等。如下图所示。

                                                                                                运动规划的环境变化


2.Vehicle Model的建立

                                                                                                Vehicle Model的建立

对于汽车而言,质点模型是远远不够的,无人车是前轮转向的车,前后位置的变化是不一样的,那么怎么去描述这种不一样呢?首先从刚体角度考虑,二维平面里的刚体涉及到,也就是以车后轴中心作为坐标原点时车身的朝向heading。因为无人车运动模型还多了一个转向的变量,多了一个自由度,刚体模型也不够。

可以将汽车运动模型简化为自行车模型,将四轮抽象成两个轮子,前轮中心和后轮中心的运动方向和自行车一样。车辆在垂直方向的运动被忽略掉,用一个二维平面上的运动物体来描述车辆的运动模型。自行车运动的时候具有以下特点,旋转车头的时候,前轮和后轮都围绕一个中心点转动,并且后轮的转向半径与方向盘转动角度满足以下关系,其中L为前轮中心和后轮中心的距离:

                                                                                                运动规划与车辆模型

                                                                                                实际的自行车运动模型

在实际的自行车运动模型中,后轴中心是沿着如上图所示的一条平滑的轨迹运行,该轨迹对应的曲率表示调整方向盘的度数,如果为正,表示向左转,反之则向右转。因此,自行车运动模型可以用,k还有速度来表示。那么沿着这样的轨迹运动时,如何去估计障碍物的距离呢?解决这个问题,先了解一下曲线坐标系以及与世界坐标系之间的转换关系。


3.曲线坐标系SL

SL坐标系也叫做frenet frame,如下所示。它以道路中心线为参考,S表示道路中心线的方向L表示与道路中心线垂直的方向。在结构化道路上行驶的时候,SL坐标系比XY坐标系更加贴合实际需求。那么SL坐标系如何转换到XY坐标系呢?

                                                                                               SL坐标系和XY坐标系


4.SL坐标系到XY坐标系的投影

之所以要投影到世界坐标系,是因为很多信息是全局的,例如红绿灯位置,参考的是XY世界坐标系。在给定SL坐标系时,每一个点的S坐标本身对应一个坐标,根据该点的横向偏移距离,可以求出给定点在世界坐标系中的XY位置,如下图所示。其中theta是参考线的方向,也就是切线方向。如果XY与S方向平行的话,轨迹的曲率还满足图中所示的关系。

                                                                                                SL坐标系到XY坐标系的投影


5.XY坐标系到SL坐标系的投影

对于一个给定的曲线,如何将XY坐标系下的点转换到SL坐标系呢?因为SL坐标系并不是唯一的,XY会在曲线上产生很多投影,投影点是经过XY坐标,且垂直于曲线的线段与曲线的交点,如下图所示,XY就有两个投影点。通常情况下会增加一些限制,例如投影距离不能超曲率值。需要注意的是,掉头的时候还是需要特殊处理的。

                                                                                                XY坐标系到SL坐标系的投影

Apollo进阶课程㉓丨Apollo规划技术详解——Motion Planning with Environment相关推荐

  1. Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment

    原文链接:进阶课程㉔丨Apollo 规划技术详解--Motion Planning Environment 自动驾驶汽车核心技术包括环境感知.行为决策.运动规划与控制等方面.其中,行为决策系统.运动规 ...

  2. Apollo进阶课程㉒丨Apollo规划技术详解——Motion Planning with Autonomous Driving

    原文链接:进阶课程㉒丨Apollo规划技术详解--Motion Planning with Autonomous Driving 自动驾驶车辆的规划决策模块负责生成车辆的行驶行为,是体现车辆智慧水平的 ...

  3. Apollo进阶课程㉕丨Apollo规划技术详解——Optimization Inside Motion Planning

    原文链接:进阶课程㉕丨Apollo规划技术详解--Optimization Inside Motion Planning 在自动驾驶软件的开发中,运动规划是最核心的模块之一.它将综合感知.定位和地图等 ...

  4. Apollo进阶课程㉖丨Apollo规划技术详解——Understand More on the MP Difficulty

    原文链接:进阶课程㉖丨Apollo规划技术详解--Understand More on the MP Difficulty EM是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,EM的算法流程 ...

  5. Apollo进阶课程㉑丨Apollo规划技术详解——Basic Motion Planning and Overview

    原文链接:进阶课程㉑丨Apollo规划技术详解--Basic Motion Planning and Overview 运动规划(Motion Planning)就是在给定的位置A与位置B之间为机器人 ...

  6. Apollo进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术

    目录 1.百度无人车定位进化历程 2.百度自动驾驶应用的定位技术 2.1GNSS定位技术 2.2载波定位技术 2.3激光点云定位技术 2.4视觉定位技术 原文链接:进阶课程 ⑮丨Apollo自动定位技 ...

  7. Apollo进阶课程㉗丨Apollo控制技术详解——控制理论

    原文链接:进阶课程㉗丨Apollo控制技术详解--控制理论 控制模块根据预测的轨迹和估计的车辆状态向油门.刹车或转向扭矩发送适当的命令.控制模块使汽车尽可能接近计划的轨迹.控制器参数可以通过最小化理想 ...

  8. Apollo进阶课程㉙丨Apollo控制技术详解——控制器的类型

    原文链接:进阶课程㉙丨Apollo控制技术详解--控制器的类型 控制主要是为了弥补数学模型和物理世界执行之间的不一致性.对于自动驾驶而言,规划的轨迹和车辆的实际运行轨迹并不完全一致,控制器按照规划轨迹 ...

  9. Apollo进阶课程㊸丨Apollo实战——障碍物感知和路径规划能力实战

    原文链接;进阶课程㊸丨Apollo实战--障碍物感知和路径规划能力实战 环境感知在自动驾驶汽车应用中占据了核心地位.一辆车要实现自动驾驶,障碍物感知是最基础也是最核心的功能. 上周阿波君为大家详细介绍 ...

最新文章

  1. 80070583类不存在_Java自学-接口与继承 内部类
  2. TLU-Net:表面缺陷自动检测的深度学习方法
  3. 美柚引流宝妈女粉,淘宝客微商不用引流脚本也能日吸500+
  4. 利用Tencent(腾讯)SCF函数部署自动签到获得容量(天翼云盘)
  5. 打造自己的网络游戏[1]-Muddery安装与启动
  6. jeasyUI的treegrid批量删除多行
  7. python 数据分析 实际案例_python实战案例:超市营业额数据分析
  8. MAVEN Error: Using platform encoding (GBK actually) to copy filtered resources.....
  9. 公司内网机器vm ubuntu proxy 设置
  10. JDBC中PreparedStatement接口的执行逻辑
  11. WM_CREATE消息响应函数和WM_INITDIALOG消息响应函数之区别
  12. 《那些年啊,那些事——一个程序员的奋斗史》——06
  13. css单行文本和多行文本溢出实现省略号显示
  14. Flume NG 配置详解(转)
  15. 性能测试工具篇(开源商业)
  16. dell塔式服务器显示卡端口类型,戴尔T610塔式服务器
  17. Android S 默认WIFi 热点名称
  18. php 判断字符串类型及长度
  19. Attempted to lock an already-locked dir异常解决方法
  20. dd腾讯云阿里云并安装相应代理加速github

热门文章

  1. POJ-2407 欧拉函数
  2. oracle 外部表 时间戳,Hive建立外部表与时间戳转换(含建dual表,修改列名,row_number() 函数等)...
  3. python break跳出外层_失去循环标记的Python,我这样实现跳出外层循环
  4. python微信机器人部署服务器_玩法收藏/云服务器/零基础微信机器人实践( Python )...
  5. python做的游戏可以导出吗_Python for RenderDoc批量导出模型和贴图
  6. java的requestmapping_SpringMVC RequestMapping 详解
  7. UE4中的字符串转换
  8. linux下gsoap的初次使用 (c)
  9. python代码加密 混淆_Python程序的混淆和加密
  10. php微信模板信息发送的代码例子,微信模板消息发送样例