什么是规划
- 规划的本质
- 如何解决一个规划问题
传统的规划方法
- 机器人学基础
- 经典算法
无人车规划
- Routing
- Planning
- Lattice Palnner
Apollo 如何求解规划问题
- EM Planner
- DP, QP求解
[toc]
What is motion planning?
- planning
- 本质是什么
$$
argmin_xf(x)
$$
- 搜索问题
- Google: Quary词,返回给最优结果。
- 无人车:当前环境和当前状态,当前库路径上最优选择。
- 什么是好规划?
- “好”其实就是个目标函数:f(x)
- f(x)的最优解
Motion Planning 的三个领域
- Robotics Fileds:(机器人领域)
- 生成轨迹实现目标
- 常用方法: RRT,A*, D*, D*lite
- Control Theory:(控制领域)
- 方式:动态系统理论实现目标状态
- 方法:MPC , LQR
- AI:生成状态和Action的映射
- Reinforcement learning, imitation learning
- Cited by motion planning by Steve Lavelle : http://palnning.cs.uiuc.edu/par1.pdf
- Reinforcement learning, imitation learning
如何解决一个Motion Panning 问题?
- 找一个简单的突破口
- 将问题转换成一个简单的问题:Path Finding Problem
- 不关心速度,不关心走
- 周围固定
- 将问题转换成一个简单的问题:Path Finding Problem
- 简言之就是,路径选择问题
- A sample shortest path example
- 什么样的path是最好的?这是重点
- 路径最短
- BFS,DFS
- Dijkstra
- 路径最短
- 刚刚看到的Search属于non-information search 效率较低
- A* search: 基于Dijkstra的改进算法【基础算法,很重要】
- 大概知道了终点位置
- Heuristic func(启发式)
- 无人机中的规划和A* search相差多远?
- 部分感知
- 动态障碍物
- 复杂环境: 交通规则,碰瓷
- A*本身是一个Global Algorithm
- Global Routing
Partial Observed situation
贪心算法
- incremental search增量搜索:目前状态求解道最优
p* star
- 部分环境信息的一个Search
- Apollo登月小车
- 改进版:D* lite
可以求解全局最优?
有难度
一定必要全局最优吗?
Stentz Anthony,“Optimal and Efficient Path Planing for Partially-Known Enviroments”, 1994
- (统计学教授)通过部分最优,可以逼近全局最优
Informative & Non-informative Search
- Global & Partial observed
至此,我们已经有了如下几个方法:
- 目标函数并且结合了平滑性和目标Cost
- 使用通用的Search方法来最小化Cost从而找到一个最优解
- 通过Partial observed information来做局部planning
我们还缺什么?
- 处理动态障碍物,动态环境
- 处理交通规则
- 实时计算
- (100ms-150ms)
- 人一般反应时间300-500ms
- 有效时间内找到最优解
- c++
给无人车motion planning下一个定义:
Safely
Smoothly
Achieve to destination
X, Y, Time: 3D trajectory optimization problem
无人车硬件系统
- 定位
- 感知
无人车软件信息
- 动态信息
- 静态信息
- HD Map
- 实时性保证
- HD Map
如何设计出一个合理轨迹?
- 路径Path
- 速度Speed
经典参考书籍
Steve Lavelle, Motion Planning Algorithms
Principles of Robot Motion: Theory, Algorithms and implementations
经典文献
A Review of Motion Planning for automated Vehivles
基本Planning方法
经典基于环境建模的方法
- RRT
- Lattice
现代无人车Planning方法
Darpa
Lattice in Frenet Frame
Spiral polymial
A Review of Motion Planning Techniques for Automated Vehicles
质点模型
- 物体看车一个质点
- 点与点不相碰
刚体问题
- BycicleModel
- XY Heading
- Collision
Planning限制条件
- 避免膨胀
- 边界阈值(跟车距离等)
连续空间问题怎么解?
- 离散化
- 网格化
传统机器人基础
PRM (Probabilistic Roadmap Planning)
- 非常常用三维一个方法
- 连续空间离散化
- 随机撒点
- Obstacle上的点删除
- 连续可行点,形成可行空间
- A*
RRT(Incremental version of PRM)PRM的增量式的版本
- 使用增加搜索的方式来进行
- 找附近可行点的最优点
- F(x) 最小,Cost最小
- 走过车中也不能碰到障碍物
- 撒点距离不能太远
- 一步一步的移动
Lattice 方法
- 改进了RRT的折线问题
- 给出Path的平滑曲线
- 网格化
- 每个采样格中都是用曲线连接
- 指数级别的一个搜索算法(NP-Hard)
DP(动态规划)
- 减少搜索空间
- 服用已有结果
- Lattice DP的平滑度够吗?
- 曲率连续
- 曲率导数不一定连续【此是大问题,–方向盘突然就打大的角度变化】
- 减少搜索空间
QP(二次规划)
凸优化问题最优化求解
公式表达
$$
minimize \frac{1}{2} X^T QX+c^TX \
subject: Ex = d , Fx \leqslant m
$$性质:再凸优化中的图空间问题,用QP有最优解
QP如何找到平滑曲线
- $ min|f’|^2$
- $ min|f’’|^2$
- $ min|f’’’|^2$
其它的平滑曲线方法还有贝塞尔曲线,样条插值方法
刚体模型
-
前轮转向和Heading的关系
- 前轮是沿着切线的方向行驶
- 前后轮是同一个旋转中心
- 左右轮的结构相同
Bicycle Model
-
- 曲率公式
$$
\frac{1}{R} = kappa = (tan(\omega)) / L
$$
- 曲率公式
无人车Planning
定义
从A点到B点,构建一个车辆运动归结,结合HD Map Localization 和Prediction
- 输入
- 输出:可行是归家,有一系列点组成
- 两个层面,导航界面,运动轨迹层面
Routing
- 导航一条A到B的全局路径
- 输入:地图(路网信息,交通状态),当前位置,目的地(乘客定)
- 输出:可行驶道路的连接线
- 搜索:地图数据转化成图网络
- 节点表示道路
- 边代表道路连接
A*经典算法
- 最经典的路径查找算法
- F(n) = G(n) + H(n)