news 2026/6/10 15:19:30

手把手玩转Prescan超车换道:当15m/s遇上龟速障碍车

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手玩转Prescan超车换道:当15m/s遇上龟速障碍车

prescan simulink 车辆超车换道,主车速度15m/s,一个运动障碍车速度5m/s,一个固定障碍车,超车加油门后回到原车道

高速上遇到前方慢车,一把方向变道超车是驾驶员的基操。今天咱们用Prescan+Simulink复现这个场景——主车15m/s巡航,前方5m/s的移动障碍车挡路,隔壁车道还有个固定障碍物。如何在确保安全的前提下完成超车?直接上干货!

场景搭建环节,打开Prescan拖入三辆车:主车(Ego)初始位(0,0),运动障碍车(Movingobs)放在主车前方50米同车道,固定障碍车(Staticobs)放在左侧车道100米处。重点来了:在运动障碍车的Motion设置里勾选"Constant velocity"锁定5m/s,主车初始速度设15m/s。

% 障碍车运动参数配置示例 moving_obs = scenario.Vehicles(2); moving_obs.InitialSpeed = 5; % 龟速实锤 moving_obs.Motion.Policy = 'PredefinedSpeed';

动力学模型别整太复杂,用Prescan自带的Bicycle Model足够应付这个场景。在Simulink里把车辆动力学接口拖出来,注意把油门/刹车信号接入纵向控制,方向盘转角接横向控制。

核心控制逻辑采用状态机实现:

  1. 跟车模式:持续监测与前车距离,当间距<20米时触发超车
  2. 加速变道:方向左打+油门踩到0.8(别踩满,防止打滑)
  3. 并行监测:车头超越障碍车后维持速度
  4. 安全回位:通过后视镜模型检测原车道安全距离,右转回正
// 简化的状态机伪代码 switch(current_state){ case FOLLOW: if(distance < 20m) enter OVERTAKE; set_throttle(0.8); set_steering(-0.15); //左转 break; case OVERTAKE: if(ego_x > moving_obs_x + 5m) check_rear_mirror(); if(safe_distance) enter RETURN_LANE; set_steering(0.15); //右转回正 break; }

轨迹生成用五次多项式规划变道路径。这里有个坑:预设的换道时间不能太短!实测当T<2秒时,方向盘转角会突变导致车辆失稳。咱们取T=3秒,横向位移d=3.75米刚好覆盖车道宽度。

% 五次多项式系数计算 A = [0 0 0 0 0 1; T^5 T^4 T^3 T^2 T 1]; b = [0; d]; coefficients = A\b; % 解方程组

仿真翻车实录:第一次跑的时候,回原车道时机没算准,主车屁股蹭到了固定障碍物。解决办法是在Stateflow里增加安全校验——只有当原车道后方50米内无车时才允许回位。调整后再次运行,主车丝滑完成超车动作,全程速度曲线呈现典型的"加速-维持-减速"三段式特征。

最后留个思考题:如果移动障碍车突然加速怎么办?不妨在距离检测模块里加个速度预测函数,下次咱们接着唠这个进阶操作!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:03:34

自动驾驶—CARLA仿真(6)vehicle_galler demo

测试用例&#xff1a; PythonAPI/examples/vehicle_gallery.py 该测试用例是一个 车辆模型展示工具&#xff1a; 依次在 CARLA 仿真世界中同一位置生成所有可用的车辆类型&#xff0c;并让观察者视角&#xff08;Spectator&#xff09;围绕每辆车做环绕飞行&#xff0c;用于直…

作者头像 李华
网站建设 2026/6/10 4:08:44

32、Linux实时性能、开源许可与U-Boot命令详解

Linux实时性能、开源许可与U-Boot命令详解 1. Linux在实时系统中的应用与特性 Linux在需要实时性能的系统中得到了越来越广泛的应用,例如多媒体应用、机器人、工业和汽车控制器等。实时系统的显著特点是具有严格的截止时间要求。根据错过截止时间的后果不同,实时系统可分为…

作者头像 李华