自动驾驶技术的联仿避障模型:Perscan、Simulink、CarSim融合的智能驾驶工况处...

张开发
2026/4/10 12:27:02 15 分钟阅读

分享文章

自动驾驶技术的联仿避障模型:Perscan、Simulink、CarSim融合的智能驾驶工况处...
自动驾驶不同工况避障模型perscan、simulink、carsim联仿能够避开预设的静态障碍物后期可再优化下 p1对边界条件做了约束避免为了避障而跑出马路最近在折腾自动驾驶避障模型的联仿方案用Prescan搞环境感知Simulink搭控制算法CarSim负责车辆动力学。这三个货凑一块儿能玩出什么花活今天先聊聊怎么让车在避障时别像个醉汉似的冲出马路。横向控制算法用了LQR调节器但重点在于道路边界约束的实现。在Simulink里加了这么个逻辑当车辆横向位置逼近道路边缘时自动削弱避障路径的曲率权重。举个代码片段里的关键参数设置% 道路边界约束参数 road_width 3.75; % 单车道标准宽度 safe_margin 0.3; % 边界缓冲距离 max_steer_rate deg2rad(15); % 转向速率限制 if abs(vehicle_y) (road_width/2 - safe_margin) Q_matrix(3,3) 1000; % 加大横向位置权重 R_matrix 1.5; % 降低转向动作权重 end这段代码藏着个小聪明——当检测到车辆靠近道路边缘时通过动态调整LQR权重矩阵让控制系统优先考虑保持车道而不是完美避障。就像新手司机被教练踩了副刹车甭管旁边障碍物多吓人先保证别骑线行驶。自动驾驶不同工况避障模型perscan、simulink、carsim联仿能够避开预设的静态障碍物后期可再优化下 p1对边界条件做了约束避免为了避障而跑出马路道路边界检测用Prescan的Lane Sensor输出世界坐标系数据换算到车辆坐标系时要注意坐标系旋转的问题。这里有个容易踩坑的地方直接用CarSim输出的横摆角做坐标变换时得处理角度突变的情况。后来改成四元数转换才稳定下来quat [CarSim_output.q0, q1, q2, q3] road_edge_pos Prescan_lane_data vehicle_pos CarSim_vehicle_position # 世界坐标系转车辆坐标系 relative_pos quaternion_rotate(quat, road_edge_pos - vehicle_pos) if abs(relative_pos.y) threshold: trigger_safe_mode()实测发现当车速超过60km/h时纯横向控制容易引发画龙现象。后来在控制循环里加了纵向速度前馈补偿把方向盘转角指令和车速挂钩。就像老司机知道高速时打方向要温柔算法也得学会看车速下菜碟。避障轨迹生成模块现在还有点愣遇到连续障碍物时决策不够丝滑。不过好歹实现了基础功能——在CarSim里看着测试车扭着屁股绕过锥桶还能稳稳停在车道线内这成就感比通关老头环都带劲。下次准备把CNN障碍物分类整合进来让系统能区分锥桶和行人毕竟撞飞纸箱和撞飞活人的代价可不一样...

更多文章