(190114 更新一下,我没有碰到过安装问题,所以有关安装的问题, 我也爱莫能助。。)
今天介绍一下,我经常用的无人车仿真软件。说是无人车仿真软件,实际上就是汽车仿真软件。但是加上无人车是因为,还有额外的驾驶环境模拟的内容。
仿真在无人车的领域里很重要。因为很多情况我们是碰不到的。如大雨天,如大雪天,再比如很复杂的交通环境。这些都是平常不轻易碰到的。所以我们需要仿真去填补这方面的验证。仿真占无人车开发较多的时间。基本上除了实车上路测试,剩下的基本都是通过仿真来验证开发的算法的。
仿真顾名思义就是尽量的用电脑计算模型将现实世界中的物理模型表达出来。比如,车的底盘系统中会有悬挂系统。在电脑模拟里面,简单的模拟方式可能就是把悬挂当做简单的弹簧来处理,复杂的模拟方式就是对每一个影响悬挂系统的参数们的相关数据都找出来,然后通过各种计算最终模拟悬架系统的状态。这样,我们就可以根据我们对模型的精确性要求来选择该使用的模拟模型。但是要注意的是,仿真器并不是越复杂,结果就越准确。因为涉及到很多采集不到的物理参数。考虑这些不准确的物理因素的时候,可能对仿真结果产生负影响。
仿真模型确实是提供了很多方便,但是仿真有一个致命的问题。就是仿真器的数据模型太过理想化。为什么这么说?因为仿真器提供的都是纯粹从数学模型导出来的东西,而且很多物理参数,实际上是基本得不到的。比如材质的应力啊, stiffness啊之类的。所以,通过仿真器得出的结果只能是当做参考。最终把算法在实车中进行验证才是最最保险的方法。
所以一般的开发就是仿真跟实车测试反复循环。
所以现在简单的介绍一下仿真器。
列举一下。
prescan(今天介绍)
carsim (coming soon)
asm (coming soon)
三种仿真器我都涉及过。
我用的最多的是prescan,其次是ASM,再然后是Carsim。
Prescan
prescan原本是TASS INTERNATIONAL的产品。然后最近被西门子收购了。然后成为了西门子tass international 的prescan。不过实际上没啥变化。
下面是他们公司的主页
从他们的介绍就可以看出,这软件提供ADAS仿真,环境仿真,Model in the loop,Software in the loop和Hardware in the loop 仿真。
prescan 官网
下图是prescan运行的过程。
1 通过prescan提供的各种模型建立环境模型。比如车道啊,车辆啊,行人轨迹及位置啊等等
2 把传感器放在车上。既然是无人车和adas仿真,那么各种传感器是必不可少的。prescan提供很多不一样的传感器,可以根据需求放到车上。不过可调整的参数很有限。但是相对于其他两个来说还是很好了。比如precan提供laser scanner的同时还可以设置laser的个数,扫描方式等等。
3 通过Matlab/SIMULINK 建立控制模型,也就是我们在开头说的各种计算就发生在这个阶段。感知,决策,执行都是在这个阶段通过simulink 平台完成的。
4 最后通过prescan和matlab/SIMULINK的耦合仿真来完成数据可视化,仿真数据可视化,驾驶环境可视化等等操作。实际上最后一步就是可视化的阶段。
总的来说,prescan的作用是快捷搭建的无人车测试平台。这个平台搭建好之后,我们就可以通过matlab进行控制模块的构建及仿真。我认为prescan的优点在于,他很方便,GUI简单明了,提供了很多种传感器供选择,提供很多可视化的行人模型和车辆模型,可控制天气环境可视化。而且因为主要控制模块都是基于matlab/SIMULINK的,所以可以直接利用很多matlab/SIMULINK的功能,比如可以直接调用matlab/SIMULINK的计算机视觉功能,机器人功能等等。同时matlab/SIMULINK的model based design还是ISO26262里规定的设计方法,所以设计的算法可以相对容易的转移到别的平台上或支持MBD的应用里面。
prescan 仿真流程
下面在谷歌上找的prescan生成的车辆行驶环境图片
车辆行驶环境模拟
下面这些个图片就是prescan生成的lidar传感器图示。经过知友(知之为知之)的提醒,这里补充一下,prescan激光雷达的传感器是可以扫描3D的数据的.
激光雷达lidar的仿真
交通堵塞环境模拟
下图是计算机视觉的传感器,也就是基于camera的行人检测及紧急制动的仿真。(场景是参考了EuroNCAP AEB test scenario)
行人检测及制动
行人检测及紧急制动
谢谢支持,各位看官的关注就是持续更新的动力~
看完就别吝啬点赞加关注啦~
同时也希望朋友往咱们专栏投稿,让我们在无人车算法的造诣上不停的成长~!