文章目录 1. 纵向控制算法 1.1 算法结构 1.1.1 外环:位置环 1.1.2 内环:速度环 1.2 参数整定 2. 代码解析 2.1 控制器初始化 LonController::Init() 2.1.1 PID控制参数和标定表参数加载 2.1.2 PID控制器初始化 2.1.3 超前/滞后控制器初始化 2.1.4 俯仰角滤波器初始化 2.1.5 标定表插值查表器初始化 2.2 加速度命令计算 LonController::ComputeControlCommand() 2.2.1 纵向误差计算 2.2.2 加速度控制命令计算 2.2.3 油门控制命令计算 本章将详细讲解Apollo纵向控制器LonController - lon_based_pid_controller。 1. 纵向控制算法 Apollo 自动驾驶平台的纵向控制算法采用位置-速度双环 PID 控制器,用于实现车辆在纵向运动中的精确控制。该算法通过分层控制结构,将目标位置和速度的控制任务分解为外环(位置环)和内环(速度环),从而实现高精度的跟踪和稳定的动态响应。 1.1 算法结构 1.1.1 外环:位置环 输入: 目标位置(来自规划模块)。 当前车辆位置(来自定位模块)。 输出: 目标速度(作为内环的设定值)。 控制逻辑: 计算位置误差: