1 前言
即使进入端到端阶段,本篇博客的内容依然在规控模块中产生着重要作用。在自动驾驶规划控制模块中,遇到最多的问题就是非线性最优控制问题,通过构造二次规划问题以及求解二次规划问题来解决,并且大多数情况下都是带约束的二次规划问题。
在Apollo项目中,上述非线性最优控制问题,采用比较多的算法包括序列二次规划(SQP)和内点优化器(IPOPT)。尽管SQP和IPOPT都显示出了解决非线性约束优化问题的强有力能力,但它们最初是为更通用的优化设计的,其中梯度是使用有限差分计算的,因此使它们难以用于实时运动规划。在实时性要求比较高的系统中,上面两个方法存在一定的劣势。
近两年,应用于时空联合规划中的CILQR求解器逐渐进入量产阵容当中,即便用planner大模型,CILQR仍可用于模型输出的轨迹平滑优化。
后续会在《打造自动驾驶系统之轨迹生成模块开发(八)》中进行c++实践CILQR求解器