首页/文章/ 详情

Matlab/Simulink中如何添加各类交通参与者并仿真?

1年前浏览488

大家好,继续学习自动驾驶仿真。

此前相关的内容如下

1、Matlab/Simulink中如何创建道路模型

2、Matlab/Simulink中如何在道路到添加车辆模型并仿真?

3、Matlab/Simulink中如何选择交通参与者的种类?

4、Matlab/Simulink中如何添加各类交通参与者并仿真?(本文)

本期的目标是:

在驾驶场景中创建道路、在道路不同位置分别创建轿车、卡车、自行车、行人,设置各自的路径,并进行运动仿真。概略图如下所示:


就不细讲代码了,都在下面,有了前面几篇文章的介绍,这些内容大致应该是可读懂的了。如下:






































%Create a driving scenario.scenario = drivingScenario;plot(scenario,'Meshes','on');
%Add a straight road to the driving scenario. The road has one lane in each direction.roadCenters = [0 0 0; 70 0 0];laneSpecification = lanespec([1 1]);road(scenario,roadCenters,'Lanes',laneSpecification);
%Add an ego vehicle to the driving scenario.egoVehicle = vehicle(scenario,'ClassID',1,'Mesh',driving.scenario.carMesh);waypoints = [1 -2 0; 35 -2 0];speed = 10;trajectory(egoVehicle,waypoints,speed);
%Add a truck, pedestrian, and bicycle to the driving scenario and plot the scenario.truck = vehicle(scenario,'ClassID',2,'Length', 8.2,'Width',2.5,'Height',3.5,...    'Mesh',driving.scenario.truckMesh);waypoints = [70 1.7 0; 20 1.9 0];speed = 15;trajectory(truck,waypoints,speed);
pedestrian = actor(scenario,'ClassID',4,'Length',0.24,'Width',0.45,'Height',1.7, ...  'Mesh',driving.scenario.pedestrianMesh);waypoints = [23 -4 0; 10.4 -4 0];speed = 1.5;trajectory(pedestrian,waypoints,speed);
bicycle = actor(scenario,'ClassID',3,'Length',1.7,'Width',0.45,'Height',1.7, ...  'Mesh',driving.scenario.bicycleMesh);waypoints = [12.7 -3.3 0; 49.3 -3.3 0];speed = 5;trajectory(bicycle,waypoints,speed);
while advance(scenario)    pause(0.01);end

运行后,效果如下所示:


上面的俯视图看不过瘾,我们可以加个chasePlot函数,设置仿真角度为驾驶员视角,来看看整个效果,先看看增加的部分代码:

egoVehicle.chasePlot('Meshes','on')


也可以从卡车的角度来看看效果:

truck.chasePlot('Meshes','on')


也可以从自行车的角度来看看:

bicycle.chasePlot('Meshes','on')


也可以从行人的角度来看看:

pedestrian.chasePlot('Meshes','on')


本文完。



来源:车路慢慢
Simulink自动驾驶
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-21
最近编辑:1年前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 11粉丝 70文章 122课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈