autoware中pure_pursuit控制和MPC控制解析
自动驾驶中的跟踪控制
自动驾驶系统中控制模块的主要作用:首先获取车辆自主决策和轨迹规划的结果,在车辆的运动学和动力学约束下计算相应的控制指令,包含加速、制动、转向等,接着发布控制指令到车辆底盘执行器,从而可靠、精准地跟踪期望轨迹。
跟踪控制分为纵向控制和横向控制。
纵向控制:是对车辆纵向运动状态的控制,实现自动驾驶车辆对规划轨迹上的各点速度跟踪或者与前车保持安全距离。
横向控制:是对车辆的转向控制,要求系统可以基于定位、感知模块获取当前车辆位置与预期位置的横向误差,然后改变车辆的转向角度实现车辆对目标路径的自主跟踪。
目前应用较多的控制算法有PID控制、滑膜控制、前馈-反馈控制、预瞄跟踪控制和神经网络控制算法等。这些方法对参数和环境的依赖程度较高,当环境发生较大变化时,不能很好地完成新状态下的轨迹跟踪;同时,地面无人车辆在运动过程中受到运动学和执行机构的约束,在高速运动情况下还需要考虑相应的动力学约束,上述方法难以处理这些约束,由于基于模型预测控制的轨迹跟踪算法对未来轨迹的预测和处理多目标约束条件的能力较强,故成为研究的热点。
纯跟踪算法推导及应用
车辆运动学自行车模型
考虑转向角变化率的车辆运动学自行车模型
未来状态量的递推
优化目标函数