-
基于神经网络启发式函数的Hybrid A*
-
openplanner(autoware + 静态存跟踪)
-
fastplanner
-
EM planner(appollo)
-
ros_navigation功能包,astar+动态dwa/动态TEB
-
luba(静态jps+静态存跟踪)
-
lexicographic_planner
-
代价函数
一般考虑路径长度、曲率平滑度、速度平滑度、车辆偏离车道中心线(目标位置距离)、与障碍物的距离、安全性、对车辆的压力等等
L2 loss代价函数、L1 loss代价函数、Huber loss代价函数、Barrir loss代价函数、绝对值平方V型函数、二元一次抛物线函数、一元二次直线函数、TEB的五个目标函数
比例分权方法求总的代价【本质用在最优控制中的多准则问题】,比例分权方法的一般套路如下:
9.工程常用方法:线性加权法–如上面的计算路径长度和路径平均曲率两个目标的代价线性加权法并没有用到优化的知识–从多选优
10.学术常用方法:利用了优化理论的NSGA、Pareto最前沿
- 梯度下降优化
11.1 轨迹优化问题通常建模成一个带约束的二次规划(QP)问题来求解,优化函数可以是snap、jerk、acceleration或其他能够形成QP形式的函数
将轨迹规划问题建模(fomulate)成一个约束优化问题,通过最优化的方法求解出目标轨迹参数 p
做法:将优化问题中的f§函数和Aeq,beq,Aieq,bieq参数给列出来,然后丢到优化器中求解轨迹参数p
11.2 一般的约束条件
- 希望设定起点和终点的位置、速度或加速度
- 希望可以设定在途中机器人的最大速度、最大加速度
- 希望相邻轨迹连接处平滑(位置连续、速度连续等)
- 希望轨迹经过某些路径点
- 希望轨迹在规定空间内(corridor)
- 希望轨迹在可行通道corridor内
11.3 优化器:
- NLopt:仅包含 不假定凸性的常规方法;如果您遇到了凸的问题,最好使用其他软件包,例如Stanford 的
nlopt一般是用来解非线性优化问题的,一般是实现梯度下降的方法- 处理基于约束的优化(等式、不等式、有界等不同的约束极值)、参数的优化的问题
- 对一个问题尝试不同的算法,调整一个参数就行
- 支持全局优化和局部优化
- 支持常见的需要导数和不需要导数的多种算法
- Mosek【学术用】
- OOQP【非常好但是优点老】
- OSQP:OSQP 算法的核心是ADMM算法(交替方向乘子法)
- GLPK
- frenet坐标系
12.1 ST图(纵向速度规划)
ST图可以帮助我们设计和选择速度曲线,“s”表示车辆的纵向位移,“t”表示时间,ST图上的曲线是对车辆运动的描述,因为它说明了车辆在不同时间的位置,由于速度是位置变化的速率,因此可以通过曲线的斜率从ST图上推断速度,斜坡越陡说明在短时间内有更大的移动对应更快的速度
12.2 SL图(横向位移规划)
SL图表示了车辆在不同的纵坐标上的横向位移,反映在不同纵向
12.3 若在高速的场景中