✨ 长期致力于自动驾驶、路径规划、速度规划、跟踪控制、模型预测控制研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1SL图五次多项式代价路径决策与凸优化避障路径生成首先对高精度地图车道中心线采样点实施基于B样条的弱平滑处理控制点间隔2米平滑系数λ设置为0.04生成的参考线曲率连续且最大曲率不超过0.06米⁻¹。在SL坐标系中以自车所在位置为原点纵向范围0至150米横向范围为相邻两车道的全部区间将静态障碍物和低速动态障碍物投影为SL矩形区域膨化尺寸0.5米。然后利用受人工势场启发的五次多项式代价决策算法进行初始路径搜索在S方向以2米为步长生成采样点每个采样点上生成多条横向五次多项式曲线代价函数Jc1×路径长度c2×max曲率c3×偏离参考线距离c4×障碍物势场权重c10.8、c22.0、c31.5、c410.0。选择代价最低的路径作为初始解再以其为骨架生成凸可行域建立以路径曲率平方积分最小为目标的二次规划问题约束边界不触碰障碍物求解得到平滑避障路径。在PreScan仿真中对静止障碍物、横穿行人等场景的避障成功率100%规划路径最大曲率0.045米⁻¹。2ST图速度决策与二次规划速度优化基于已规划路径将路径上的动态障碍物预测轨迹投影到ST图中构成不可通行区域。速度决策阶段采用改进的DP-SQP级联方法首先在ST图中以0.5秒为步长进行动态规划采样采样点纵向速度范围0至25米/秒加速度约束±3米/秒²代价函数包含速度偏离期望值、加速度平方、与障碍物距离倒数等项。DP得出的速度剖面作为初值输入二次规划设置位置、速度、加速度连续性和障碍物安全避碰为约束以加速度变化率的平方jerk最小化为目标优化最终得到平滑速度曲线。静态限速30公里/小时、前方有低速车20公里/小时的跟车场景中规划速度平滑跟随前车间距稳定在15米左右。若前车突然制动速度曲线能迅速响应并规划出-2.8米/秒²的柔和减速乘员舒适性显著提升。3变预测时域非线性MPC轨迹跟踪与实车验证基于车辆运动学模型状态量选取x、y、航向角、速度控制量为前轮转角δ和加速度a对模型进行线性化和离散化采样周期0.05秒。设计了时域参数模糊自适应机制以速度v和路径曲率κ为输入通过模糊推理输出预测时域Np15至30和控制时域Nc3至8。代价函数引入横向偏差、航向偏差及其积分项以及控制增量惩罚权重系数Rδ300、Ra100。求解器采用qpOASES每次迭代2毫秒以内满足实时性要求。对比实验显示在双移线工况60公里/小时下自适应时域MPC的最大横向偏差为0.09米而固定Np20的MPC为0.14米航向角偏差峰值分别为4.2°与6.9°。实车基于线控底盘在园区道路设置锥桶障碍完成避障绕行车速上限设定为25公里/小时车辆成功沿规划路径行驶最大横向跟踪偏差0.18米全程未碰触障碍物进一步证实了该规划与控制架构的工程实用性。import numpy as np import cvxopt from scipy.interpolate import BSpline # SL图五次多项式路径生成 def quintic_polynomial_path(s0, s1, ds0, ds1, dds0, dds1, T): A np.array([[0,0,0,0,0,1], [T**5, T**4, T**3, T**2, T, 1], [0,0,0,0,1,0], [5*T**4,4*T**3,3*T**2,2*T,1,0], [0,0,0,2,0,0], [20*T**3,12*T**2,6*T,2,0,0]]) b np.array([s0, s1, ds0, ds1, dds0, dds1]) coeffs np.linalg.solve(A, b) return coeffs # 简单MPC预测模型 def mpc_predict(x_current, u_seq, dt, L2.7): N len(u_seq) x_pred np.zeros((N1, 4)) x_pred[0] x_current for k in range(N): x, y, theta, v x_pred[k] delta, a u_seq[k] x_pred[k1,0] x v*np.cos(theta)*dt x_pred[k1,1] y v*np.sin(theta)*dt x_pred[k1,2] theta v/L*np.tan(delta)*dt x_pred[k1,3] v a*dt return x_pred def fuzzy_adaptive_horizon(speed, curvature): # 简化模糊规则确定预测时域 Np_base 20 if speed 15.0 and curvature 0.03: Np Np_base 5 elif speed 15.0 and curvature 0.03: Np Np_base - 3 elif speed 15.0: Np Np_base 2 Nc max(3, Np//3) return int(Np), int(Nc)