AEB算法可视化(基于m脚本)

本文采用Matlab自动驾驶工具箱与m脚本结合进行可视化,对感知层不采用scenarioReader模块进行融合处理。

m脚本管理数据:

clc
clear
% 速度控制器数据字典
SpeedController.v_set=5.5;%设定的速度
SpeedController.Kp=1.1;%PID控制器参数
SpeedController.Ki=0.1;%PID控制器参数
SpeedController.Amax=3;%速度控制器限幅
SpeedController.Amin=-3;%速度控制器限幅
% AEB主算法数据字典
AEB.PB1_decel=3.8;%AEB轻制动的制动减速度
AEB.PB2_decel=5.3;%AEB重制动的制动减速度
AEB.FB_decel=9.8;%AEB全制动的制动减速度
AEB.timeMargin=0;%AEB剩余碰撞时间时间裕值
AEB.headwayOffset=1.7;%相对距离安全裕值
%FCW功能数据字典
FCW.driver_decel=4;
FCW.timeToReact=1.2;
%障碍物初始化数据
ObjInfo.IniposX=6.4194;
ObjInfo.IniposY=25.8677;
ObjInfo.VelX=1;
ObjInfo.VelY=0;
ObjInfo.accX=0;
ObjInfo.accY=0;

相对距离的计算如下:由于自动驾驶工具箱中的坐标定义和plot中坐标定义不同,故作如下修改:

0ce8670ffcd043b3bd640ccc37f68db3.png

relative函数定义如下:

function [rel_d, rel_v] =relative(egoposX,egoposY,ObjposX,ObjposY,egoVelX,egoVelY,ObjVelX,objVelY)
delta_X=egoposX-ObjposX;
delta_Y=egoposY-ObjposY;
rel_d=sqrt(delta_X^2+delta_Y^2);
Vel_X=egoVelX-ObjVelX;
Vel_Y=egoVelY-objVelY;
rel_v=sqrt(Vel_X^2+Vel_Y^2);
end

采用enable模块进行可视化:

cc30447682c146fd9b8948a7258cf80d.png

绘图脚本如下:

function plotVelcheAndObj(velche_X,velche_Y, Obj_X,Obj_Y)
clear;
%主车参数
egoHeading=0.037*pi/180;
ego_L=4.7;
ego_W=1.8;
%障碍物参数
ObjHeading=89*pi/180;
Obj_L=0.24;
Obj_W=0.45;
[ veh_x, veh_y ] = PlotVehicle( velche_X, velche_Y, egoHeading, ego_L,ego_W);
[ obj_x, obj_y ] = PlotVehicle( Obj_X, Obj_Y,ObjHeading, Obj_L, Obj_W);
plot(veh_y, veh_x,'linewidth',2,'Color','r');
hold on;
set(gca,'XDir','reverse');
plot(obj_x, obj_y,'linewidth',2,'Color','b');
axis equal;
hold off;
end

plotvelche脚本如下:

function [ vehandObj_x, vehandObj_y ] = PlotVehicle( x_Bas, y_Bas, Heading, Width, Long )
HalfWidth = Width/2;
LF_x = (Long*cos(Heading) + Width/2*sin(Heading))+x_Bas;
LF_y = (-Width/2*sin(Heading) - Width/2*cos(Heading))+y_Bas;
LR_x = (0*cos(Heading) + Width/2*sin(Heading))+x_Bas;
LR_y = (-Width/2*sin(Heading) - Width/2*cos(Heading))+y_Bas;
RF_x = (Long*cos(Heading) -Width/2*sin(Heading))+x_Bas;
RF_y = (Long*sin(Heading) + Width/2*cos(Heading))+y_Bas;
RR_x = (0*cos(Heading) -Width/2*sin(Heading))+x_Bas;
RR_y = (Width/2*sin(Heading) +Width/2*cos(Heading))+y_Bas;
vehandObj_x = [LF_x, LR_x, RR_x, RF_x, LF_x];
vehandObj_y = [LF_y, LR_y, RR_y, RF_y, LF_y];
end

最终绘图效果如下:

3ff29974c9fc4a9cb74757178e955d53.png

 

 

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于Prescan的AEB(自动紧急制动)算法流程主要包括以下几个步骤: 1. 感知:车辆系统使用传感器(例如雷达、摄像头)来感知周围环境,检测和跟踪前方的障碍物和行人。这些传感器会实时收集并处理数据,提供给控制系统使用。 2. 障碍物检测:利用传感器数据,AEB系统通过检测目标车辆、行人或其他障碍物来判断可能的碰撞风险。常见的方法包括目标跟踪、障碍物分类等。 3. 风险评估:AEB系统对检测到的障碍物进行风险评估,根据其位置、速度、加速度以及车辆自身的动态参数,预测与障碍物之间的最小距离和时间间隔。根据评估结果,系统可以判断是否需要触发紧急制动。 4. 紧急制动决策:当AEB系统判断存在碰撞风险时,会触发紧急制动决策。根据风险评估结果和预设的制动策略,系统会计算出合适的制动力,并将指令传递给制动系统。该决策还可能受到其他因素的影响,比如车辆当前的速度、方向等。 5. 制动执行:制动系统根据AEB系统的指令,实施紧急制动。这可能包括增加制动压力、调整刹车力分配等操作,以确保车辆能够尽快停下来,减少与障碍物的碰撞速度和冲撞力。 6. 碰撞检测和监控:AEB系统在紧急制动过程中,会持续监控车辆与障碍物之间的距离和速度变化情况。如果在制动过程中仍然存在碰撞的风险,则可能需要进一步采取措施来减轻碰撞的后果,比如主动引导车辆避让障碍物。 总的来说,基于Prescan的AEB算法流程主要包括感知、障碍物检测、风险评估、紧急制动决策、制动执行以及碰撞检测和监控等步骤。通过这些步骤,AEB系统能够提前预警并实施紧急制动,以减少碰撞风险和最小化碰撞后果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值