ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Motion Planning】第二章 无人车路径规划

2021-07-12 12:58:01  阅读:437  来源: 互联网

标签:轨迹 cost Motion Planning Path 第二章 规划 坐标系


系列文章目录


文章目录


定义

无人车路径规划的定义:

  1. A点到B点 ,构建一个车辆运动轨迹,结合HDMap,Localization 和Prediction
  2. 输出:可行驶轨迹,有一系列点组成
  3. 两个层面:导航层面; 运动轨迹层面

Routing

routing的目标是导航一条A到B的全局路径,一条cost最小的路径
输入:地图(网络信息,交通信息等)、当前位置、目的地(乘客决定)
输出:可行驶道路的连线
搜索:地图数据转化成图网络
* 节点表示道路
* 边表示路口
什么情况下cost高?:
权重规则:例如左转的权重相较于直行的权重更高,所以Node1到Node4的边权重大,Node1到Node3权重小。
拥堵情况:比如说Node1到Node3的道路很拥堵,那么它的cost就高;Node4的道路更堵,那么Node1到Node4的cost更高。
在这里插入图片描述

A*算法

在rounting中目前A*算法的应用还是非常广泛的。
公式:F(n) = G(n) + H(n)

F(n)表示道路的routing的总cost
G(n)表示起始点到候选点的cost
H(n)表示候选点通过启发函数得到的目标点cost

Motion Planning

导航信息相当于给了粗略的路径信息,而Planning相当于一个高精度,低级别的search

规划的约束条件

  • Collision 碰撞(躲避任何障碍物)
  • Comfortable 舒适 (路径点必须平滑,速度也要平滑)
  • 运动学约束(高速转弯,掉头曲率角度)
  • Illegal合法 (交通法规)

Cost Function

  • cost function由许多部分组成
    • 道路偏离中心线
    • 碰撞或者靠得太近
    • 速度太大,超速
    • Curvature太大,方向盘太急
      针对不同的场景,我们可能有多个不同得cost

Frenet坐标系

一般情况下我们会用笛卡尔坐标系(世界坐标系),但是表征的东西并不全面。因此在道路形式方面,我们采用Frenet坐标系,能够更好地表征偏离道路中心线的距离。

【注】Frenet坐标系和Track坐标系的区别
* L方向不同
* Track是基于Road级别
* Frenet是基于Lane级别

Path 和 Speed解耦

  • Path和Speed解耦能够让我们将motion planning问题转化为多个凸优化问题。

Path Planning

步骤

  • 先生成道路网格
  • 每个网格单元中随机采样
  • 每个网格选一个点
  • 组成多条候选Path

Cost Function

需要cost最低的path,也就是最优path,cost的设计往往是planning的重点

  • 中心线距离 l*a0
  • 障碍物距离 d*a1
  • 速度变化率 acc * a2
  • 曲率 kappa * a3
  • F(x) = la0 + da1 + acc * a2 + acc * a3 + a4
    【思考】为什么线性加权可以在一定程度上解决所有问题呢?

Speed Planning

ST图

S-T图表示在path上的速度规划,S表示Path上的纵向距离,T表示运动时间。
斜率越大,表示速度越快。
在这里插入图片描述

如何规划ST轨迹

  1. 连续空间离散化(grid map)

  2. 单元格内速度不变

  3. 把障碍物投影进来

    • 将挡住我们Path轨迹的部分画进ST图中
    • 因此必须要有良好的轨迹预测
    • 例如下图中,to-t1时刻障碍物会在我们的Path轨迹中挡住s0,s1部分,(如何理解黄色部分? 相当于t0-t1时刻,s0-s1这块区域是不能有车通行的)
      在这里插入图片描述
  4. 速度曲线不能碰到这个区域

  • 有多个车的情况
    在这里插入图片描述

如何优化

由于折线并不平滑,我们需要将不平滑的折线优化成平滑的线性曲线。

  • QP (Quadratic Programming) 二次规划
  • 这个方法很大程度上依赖于线性空间离散化
  • 将平滑的非线性曲线与这些线段进行拟合
  • 现成的工具:qpQASES

轨迹规划

实例

  • 遇到一辆速度很慢的车我们如何超车?
    在这里插入图片描述

  • 生成很多轨迹(撒点采样)
    在这里插入图片描述

  • 用cost function对其进行评估,选择cost最小的一条
    在这里插入图片描述

  • 生成一个ST图来表述速度规划

  • 生成多条速度曲线
    在这里插入图片描述

  • 使用优化工具对多条速度采样进行最优化求解

    • 让整个线路变得平滑
      在这里插入图片描述
  • 最后将每个轨迹点(跟我们自己定义的轨迹点Resolution)的Path,Speed合并得到最终结果。

在这里插入图片描述

标签:轨迹,cost,Motion,Planning,Path,第二章,规划,坐标系
来源: https://blog.csdn.net/weixin_43794327/article/details/118654902

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有