基于纯跟踪(Pure Pursuit)的车辆自动泊车轨迹跟踪控制探索

张开发
2026/4/3 23:14:19 15 分钟阅读
基于纯跟踪(Pure Pursuit)的车辆自动泊车轨迹跟踪控制探索
基于纯跟踪Pure Pursuit的车辆自动泊车轨迹跟踪控制 仿真场景为侧方停车使用carsim搭建纵向使用PID控制横向为Pure Pursuit控制 下图为Simulink模型截图车速前轮转角及泊车视频 提供模型文件包含最近在研究车辆自动泊车相关技术今天来分享下基于纯跟踪Pure Pursuit的车辆自动泊车轨迹跟踪控制主要聚焦在侧方停车场景。仿真场景搭建这次选用了Carsim来搭建侧方停车的仿真场景。Carsim在车辆动力学建模方面非常强大能为我们提供接近真实情况的车辆运动模拟环境。控制策略纵向控制纵向使用PID控制。PID控制是一种经典且广泛应用的控制算法它根据设定值与实际值的偏差通过比例P、积分I、微分D三个环节的线性组合来调整控制量。以下是一个简单的Python实现PID控制纵向速度的示例代码class PID: def __init__(self, Kp, Ki, Kd): self.Kp Kp self.Ki Ki self.Kd Kd self.prev_error 0 self.integral 0 def update(self, setpoint, process_variable): error setpoint - process_variable p_term self.Kp * error self.integral error i_term self.Ki * self.integral d_term self.Kd * (error - self.prev_error) output p_term i_term d_term self.prev_error error return output在这个代码中init方法初始化了比例系数Kp、积分系数Ki和微分系数Kd并初始化了前一次误差preverror和积分项integral。update方法根据当前的设定值setpoint和实际值processvariable计算出PID的输出通过比例、积分和微分三个环节共同作用来调整输出以使得实际值尽可能接近设定值。横向控制横向采用纯跟踪Pure Pursuit控制。纯跟踪控制的核心思想是车辆始终朝着前方某一固定距离预瞄距离处的目标点行驶。假设车辆的位置和姿态已知以及目标轨迹上的一系列点通过计算车辆当前位置到预瞄点的相对位置和角度就可以得出需要的前轮转角来引导车辆驶向目标点。下面是一个简单示意的伪代码来计算前轮转角# 假设 vehicle_x, vehicle_y 是车辆当前位置坐标 # vehicle_theta 是车辆当前航向角 # lookahead_point_x, lookahead_point_y 是预瞄点坐标 delta_x lookahead_point_x - vehicle_x delta_y lookahead_point_y - vehicle_y alpha atan2(delta_y, delta_x) - vehicle_theta L vehicle_wheelbase # 车辆轴距 lookahead_distance 5.0 # 预瞄距离 steering_angle atan2(2 * L * sin(alpha), lookahead_distance)这段伪代码首先计算了车辆与预瞄点的相对位置得出相对角度alpha然后根据车辆轴距L和预瞄距离lookaheaddistance计算出需要的前轮转角steeringangle。Simulink模型文中提到有Simulink模型截图该模型整合了纵向的PID控制和横向的纯跟踪控制实现对车辆在侧方停车过程中的车速、前轮转角等关键参数的精确控制。通过这个模型我们可以直观地看到整个控制流程和信号的传递。成果展示模型运行后我们能得到车速、前轮转角的变化数据以及完整的泊车视频这些都直观地展示了基于纯跟踪和PID控制策略下车辆侧方停车的效果。基于纯跟踪Pure Pursuit的车辆自动泊车轨迹跟踪控制 仿真场景为侧方停车使用carsim搭建纵向使用PID控制横向为Pure Pursuit控制 下图为Simulink模型截图车速前轮转角及泊车视频 提供模型文件包含另外文中还提到提供模型文件感兴趣的小伙伴可以基于这些模型文件进一步研究和优化探索更多关于车辆自动泊车轨迹跟踪控制的奥秘。希望今天的分享能给大家在车辆自动控制领域的研究带来一些启发。

更多文章