2026-10-19 18:25:09
轨迹规划(Trajectories Planning)主要指考虑实际临时或者移动障碍物,考虑速度、动力学约束的情况下,尽量按照规划路径进行轨迹规划。其复杂性体现在:
必须在有光滑指引线的情况下做规划。
在Frenet坐标系下做规划,是为了避免直接考虑朝向、曲率等问题,避免在高维度上做规划。
理论上是可以的,可以通过上游的决策层根据规划目标动态调整参数。
三阶导数是加加速度,表示加速度的变化率,是舒适性的一个重要指标。
在算法中,相邻离散点之间的连接通过常三阶导数实现。
DpPolyPathOptimizer、QpSplinePathOptimizer、QpPiecewiseJerkPathOptimizer已被deprecate,使用PiecewiseJerkPathOptimizer替代,它能覆盖前面优化器的应用。
设计上,EM适合解决复杂的城市道路,Lattice适合解决相对简单的高速场景。
EM和Lattice不能解决倒车问题。
三阶导数通过差分的形式直接计算出。
会根据车辆的运动学模型,对一阶、二阶、三阶导数的取值范围做出估计,找出符合运动学的取值范围,约束求解轨迹的空间。
这是综合问题,heading抖动不仅影响planning,对control影响更大,且是上游模块信息问题,不应在planning中解决。
现在auto tuning这块由于人员调动,工作有些停滞。
具体请参见相关代码:CartesianToFrenetConversion这个类的实现。
路径规划中,离散的s在0.5m以下,路径有200m长。好处在于获得了对路径更大的控制权,能在非常复杂的问题中计算出可行轨迹。
可以理解为以函数形式为三次多项式,本质上也是一个多项式。
这个情况比较极端,现在根据不同情况做特殊处理,没有很好的综合性解决方案。
通过差分二阶导数确定。
静态障碍物可以以速度大小来区分。对于速度较低的障碍物,范围只要能bound到一定大小,也可以在路径规划中考虑。
角速度涉及路径和速度两个方面的综合因素,路径和速度分开考虑是为了降低难度。
直接考虑角加速度的算法正在开发,不久会发布。
非和谐车辆系统就是非完整约束车辆系统。
应根据车辆状态来调整路径的几何形状。
平滑算法可以参见QP Spline,spiral curve等实现。
MPC是control - based的方法,在地图坐标系做规划,与在Frenet坐标系下规划不同,具体可线下交流。
使用OSQP,计算路径的话,0.5m间隔200m总长,少于10ms。
需要上游模块,如预测模块提供较好的预测,现在planning中还没有相应解决方案。
通过用户设置代价函数,如加速度的权重等,通过代价来进行判断。
目前还没有使用,正在探索。
Stage简要的说是一个场景中的一个阶段,几个stage顺序组合起来形成一个完整的场景。
通过仿真平台做初步验证,在planning成功率,轨迹质量加以检测之后,再做实车测试。
合理跳变表明对动态环境做出了反应;不合理跳变说明在设计代价函数时有欠缺,需要改进设计。
主要是控制问题,在planning层面,可适当减小加速度的搜索范围,生成尽可能和缓的轨迹。
实时根据左右两边车辆运动轨迹,每一帧都规划一条与左右两边车辆没有碰撞的路径。
不会优先执行预设的规避动作然后重新规划,以10Hz的方式进行规划能及时更新轨迹,处理紧急情况。
这是预测的问题,planning层面不适合对这样的情况做假设与处理。
通过二维bounding box碰撞,大概需要十几个向量点乘运算,可参见Separate Axis theorem(超平面分割定理)。
在onlane planner中,假设一般公路场景,算法中不允许向后移动,Open space planner可以允许这样的操作。
代价函数是几个因素加权的和,应根据不同应用场景、车辆类型来决定提高哪些因素的权重。
会当作动态障碍物处理,在生成路径时不考虑,在路径上继续直行,在速度上紧急制动。