首页/文章/ 详情

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

1年前浏览412


大家好,在此前的文章中,尝试成功了如何创建道路,也成功添加车辆到道路中进行了动力学仿真,获得了最简单的仿真模型。

戳我可看:
Matlab/Simulink中如何创建道路模型
Matlab/Simulink中如何在道路到添加车辆模型并仿真?

今天更进一步,来研究下如何对交通参与者进行选择。所谓交通参与者,我理解为会占用道路的东西,比如轿车、卡车、自行车、行人、障碍物等等。

在利用vehicle函数定义车辆时如果不采用额外的描述,那么默认定义的会是个看不出是个什么东西的盒子,比如像下面这样来定义:




  
s = drivingScenario;road(s,[-25,0;25,0],7);car = vehicle(s);plot(s);  

运行后效果如下:

顺便说一句,这个长方形的盒子的大小也是可以控制的,就像这样:

  
car = vehicle(s,'Length',5.0,'Width',2.5,'Height',1.5);  

先不管盒子的大小,怎么定义能显示出来这个盒子是个什么东西呢?我们来对上面的代码进行改造。




  
s = drivingScenario;road(s,[-25,0;25,0],7);car = vehicle(s,'ClassID',1,'Mesh',driving.scenario.carMesh);plot(s,'Meshes','on');  

车辆的显示类型是由【Mesh】在控制,其实以上也就是细化定义了一下车辆的类型和显示类型,以及设置激活显示Mesh而已。(ps:分类标识符‘ClassID’:1代表轿车;2代表卡车;3代表自行车,4代表行人,5代表障碍物)。运行后放大效果如下:

虽然有点像个轿车了,但还是有些粗糙呀?
Matlab是个数学工具,只适合做算法,在3D显示方面比较鸡肋,如果需要非常“仿真”,那还真是需要和其它软件(如CarSim、Prescan、Carmaker等)联合进行了。如果我们不关注图形显示,仅仅是看看算法的效果的话,那Matlab其实也够用了。

然后,我们继续来看怎么创建出来一个“卡车”,还是简单来改改以上的代码,如下:




  
s = drivingScenario;road(s,[-25,0;25,0],7);car = vehicle(s,'ClassID',2,'Mesh',driving.scenario.truckMesh);plot(s,'Meshes','on');  

运行后效果如下

然后,我们继续来看怎么创建出来一个“行人”,还是简单来改改以上的代码,如下:






  
s = drivingScenario;road(s,[-25,0;25,0],7);pedestrian = actor(s,'ClassID',4,...'Length',0.24,'Width',0.45,'Height',1.7,...'Mesh',driving.scenario.pedestrianMesh);plot(s,'Meshes','on');  
这个时候需要用actor这个函数了,为了防止行人大小“走形”,还是得设置下长宽高,运行后效果如下:

改一改上面的代码,就可以生成一辆“自行车”了,如下:






  
s = drivingScenario;road(s,[-25,0;25,0],7);bicycle = actor(s,'ClassID',3,...'Length',1.7,'Width',0.45,'Height',1.7,...'Mesh',driving.scenario.bicycleMesh);plot(s,'Meshes','on');  
运行后效果如下

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