文章目录

  • 第五章 百度Apollo规划技术介绍(二)
    • motion planning with environment-1
      • Vehicle state and model
      • Motion planning with vehicle models
      • Describe the motion of bicycle model
      • SL coordinate Frame and XY Coordinate Fram
      • XY Frame to SL Frame
    • motion planning with environment-2
      • 龙格现象
      • Bezier Spline
      • 2DConstrained Smoothing Spline
      • 一维平滑方法
      • 建立平滑的坐标系
      • 螺旋曲线

第五章 百度Apollo规划技术介绍(二)

motion planning with environment-1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2xVYjvpB-1595839029378)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727154450553.png)]

Vehicle state and model

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FoXykx8U-1595839029381)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727154751465.png)]

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

Motion planning with vehicle models

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B65aKrFr-1595839029384)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727155018527.png)]

两个轮子在转动的时候是沿着同一个中心转动的

后轮的转向半径1/κ与方向盘转动角度ω满足以下关系,其中L为前轮中心和后轮中心的距离。κ=(tan(ω))/L

Describe the motion of bicycle model

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zTLSky7o-1595839029387)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727155233553.png)]

在实际的自行车运动模型中,后轴中心是沿着如上图所示的一条平滑的轨迹运行,该轨迹对应的曲率κ 表示调整方向盘的度数,如果为正,表示向左转,反之则向右转。

SL coordinate Frame and XY Coordinate Fram

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gh45jY71-1595839029387)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727155414212.png)]

S表示道路中心线的方向,L表示与道路中心线垂直的方向

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1Rh4e5u-1595839029388)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727155545270.png)]

SL坐标系到XY坐标系的投影:之所以要投影到世界坐标系,是因为很多信息是全局的,例如红绿灯位置,参考的是XY世界坐标系。在给定SL坐标系时,每一个点的S坐标本身对应一个(x-r,y-r)坐标,根据该点的横向偏移距离,可以求出给定点在世界坐标系中的XY位置

XY Frame to SL Frame

XY坐标系到SL坐标系的投影:因为SL坐标系并不是唯一的,XY会在曲线上产生很多投影,投影点是经过XY坐标,且垂直于曲线的线段与曲线的交点

  • 怎样找到一个mapping?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2wVCE4co-1595839029390)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727160147676.png)]

判断有没有sign changes

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xLVDxe8v-1595839029392)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727160230663.png)]

SL to XY —> 判断障碍物之间的关系

超平面分割定理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I7CnD5vW-1595839029394)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727160443571.png)]

降低维度判断是否相交

motion planning with environment-2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rqWX1BBb-1595839029395)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727160903140.png)]

无限连续无限平滑,道路中心线要平滑(curvature要连续)

不能单独smooth一个curvature,要根据动力学模型做平滑

龙格现象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQgISliE-1595839029397)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727161228882.png)]

在轨迹上以等距离的方式随机选择一些点,然后用高阶多项插值的方式来近似表示轨迹,对多项式进行优化。但是高阶多项式不能用于平滑,因为高阶的多项式抖动太大,没有办法控制幅度

Bezier Spline

Bezier Spline 曲线是由一系列控制点定义的,例如P0 到 Pn,其中n代表曲线的阶数。如图所示,分别给出1阶、2 阶、3 阶 Bezier Spline 曲线的表示形式。通过对它们做平滑,得到平滑的曲线,例如二阶平滑保证曲线的曲率平滑。但是这种方法的缺点是,除了起始点和终点,其它控制点不能保证会被得到的曲线经过。

2DConstrained Smoothing Spline

抽象点、控制点、生成一条光滑曲线、满足约束条件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o21psBtM-1595839029398)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727161528116.png)]

一维平滑方法

最短路径,但是路径最短还不能保证平滑性,因此会对其不同阶导数进行 Minimize 求解,保证导数空间的连续

  • Smoothing Spline 的特殊的性质

    • 在给定边界的条件下,它是一个多项式,可以找到最优解。前提是它的 Boundary Constraint 只考虑了起点和终点,如果中间有障碍物就不是最优解。这种情况下可以使用 Piecewise Polynomial(分段多项式)来处理。
    • 一个 Piecewise Polynomial 是一维的函数,描述二维曲线是不够的,这时候就有一个 Spline 2D,假设我们把曲线分成 N 截,每节曲线段它的 X 坐标是一个 Polynomial ,Y 坐标也是一个 Polynomial 。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8D0bhXk-1595839029400)(C:\Users\xiaomeiyan\AppData\Roaming\Typora\typora-user-images\image-20200727162110860.png)]

建立平滑的坐标系

把曲线分为n节线段,每一节都是一个polynomial函数

怎么让曲线足够平滑?我们让它在 X 坐标上的变化率,也就是三阶导的平方是最小的,Y 上的变化率三阶导也是最小的,代价函数就是这两个变化率的和。代价函数的求解就是一个二次规划问题,我把这种 Loss Function 定义成这种形式是因为平方的积分能够给计算带来便利。

  • 端点的约束条件要保证连接点之间,对x方向的导数和对y方向的导数都要是相等的,三阶导连续会带来很多好处,还要满足约束条件

螺旋曲线

  • 通过一个极坐标形式定义,比如说沿着一条曲线,如果一个点 S 的曲率是知道的,假设它的原点在 (0,0)的位置,可以唯一定义出一条经过 S 的曲线,也就是 Spiral Path 。那么可以让 Spiral Path 满足起点、终点约束条件生成一条螺旋曲线。

Spiral Path 和 Spline 2D 的区别呢?

  • 任何的曲线在足够密的时候都可以用Piecewise Spiral path 或者是 Piecewise Polynomial 表示。
  • 区别:出发点不一样
    • Polynomial 计算很快很简单,Spline 2D 是一个凸空间里面生成一个 Spline 曲线。
    • Spiral Path 是从 Configuration Space 出发。理论上来讲,螺旋曲线生成的线是要比 Spiral Path 更好处理,对一些极端情况处理更好。

baidu进阶训练笔记九20200727相关推荐

  1. JavaScript学习笔记(九)(验证框架,layer弹出层)

    JavaScript学习笔记(九) 一.jQuery Validate验证框架 1.引入相关插件路径 2. 修改一些规则 3. 自定义验证规则 4.异步验证 整体代码 二.layer弹出层 1.引入相 ...

  2. IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...

    IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...

  3. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者 http://www.admin10000.com/document/9 ...

  4. 吴恩达《机器学习》学习笔记九——神经网络相关(1)

    吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...

  5. 数学物理方法pdf_中考状元笔记九科(语文+数学+物理+化学+英语+历史+地理+政治+生物)(高清PDF);...

    初中学霸提升成绩的16个习惯 1.记忆习惯.一分钟记忆,把记忆和时间联系起来,这里还含有注意的习惯. 一分钟写多少字,读多少字,记多少字,时间明确的时候,注意力一定好.把学习任务和时间联系起来,通过一 ...

  6. ROS学习笔记九:用C++编写ROS发布与订阅

    ROS学习笔记九:用C++编写ROS发布与订阅 本节主要介绍如何用C++编写一个简单的ROS发布与订阅. 编写发布节点 在之前创建的例子beginner_tutorials软件包中,在其目录下的src ...

  7. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步怪物运动简单AI

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...

  8. at24c16如何划分出多个读写区_AVR学习笔记九、基于AT24C16的数据存储实验

    Ema{@AVR 学习笔记九.基于 AT24C16 的数据存储实验 ------- 基于 LT_Mini_M16 9.1 用 I/O 口模拟 I2C 总线实现 AT24C16 的读写 9.1.1 .实 ...

  9. [统计学笔记九] 方差分析(ANOVA)

    [统计学笔记九] 方差分析(ANOVA) 方差分析(Analysis of Variance,简称ANOVA) 方差分析(ANOVA)又称"变异数分析"或"F检验&quo ...

最新文章

  1. 【坑爹升级】更新NVIDIA GeForce GTX Ti最新驱动,突然屏幕亮瞎我24K钛合金双眼。导致Fn+F2/F3、win+x无法控制笔记本电脑显示器亮度调整, 电源选项屏幕亮度也不见了!
  2. 关于web.xml的格式
  3. html5 drap 文件夹,带有显示ID的Html5 drap and drop问题
  4. 自己实现内存操作函数memset(),memcmp(),memcpy(),memmove()
  5. 把sqlserver中存储过程改写到oracle中
  6. 京东秒杀系统模块的Redis分布式锁深度剖析,没给你讲明白你打我
  7. 抽象的(abstract)方法是否可同时是静态的(static), 是否可同时是本地方法 (native),是否可同时被 synchronized
  8. 课堂上传纸条如何防范中间人攻击?
  9. JQuery AJAX请求结果的null为key时无法进入success方法
  10. python GUI编程tkinder
  11. android-6.0 新功能介绍(Marshmallow)
  12. html 文字中不换行怎么写,HTML让字体在一行内显示不换行
  13. 动态生成li 根据后台返回个数动态生成li
  14. html怎么做成3d正方体,利用CSS3的3D效果制作正方体
  15. android模拟器串口,android模拟器上模拟串口通信
  16. hls协议视频(.m3u8)在浏览器播放
  17. html 自动打开超链接,JS、html打开超链接的几种形式
  18. Python报错集合篇7-KeyError: 1
  19. python实训案例-用户账户管理
  20. 我们的管理:项目管理

热门文章

  1. 跳出任务管理的泥沼,拥抱甘特图的怀抱(完整版)
  2. 基于QT的滴滴网约车订单数据可视化分析
  3. 学计算机专业英语不好可以学吗,英语不好的初中生可以学计算机专业吗?
  4. 长园创新研究院 招聘FPGA高级工程师
  5. 【C#】关于委托和事件
  6. 汇编语言随笔(12)-端口读写、shl和shr指令、检测点14和实验14
  7. EVC实现WIN CE下截屏
  8. Linux执行命令常用命令4.0
  9. java获取前四个季度结束日期_JAVA使用LocalDate获取当前日期所在季度的开始日期和结束日期...
  10. android开发笔记之app应用间接使用frameworks接口