matlab动力学仿真_浅谈仿真思维

e91c87e8fc334fccc1af1aec79c064b3.png

01 摘要

今天想谈谈仿真的思维方式。

迄今为止,我做过很多次的仿真,从ADAS到感知,到贝叶斯滤波,到机器手控制,到SLAM+navigation等等,很多很多。但是最近突然意识到,其实之前做的仿真,都是在特定工具已经做好了大部分工作的情况下,我们只是去添加算法后在这个工具箱中验证这个算法。

一般都是这么做。别人教我的时候,也是这么做的。但是从来没有人告诉我,仿真到底是什么,购买的商业仿真软件为什么可以卖的那么贵,那些软件敢卖这么贵的资本在哪里?对于这些,我一直持有好奇的态度。

直到这次利用matlab的autnomated driving toolbox的时候,走了很多弯路,但在这个过程中,我好像意识到了仿真的本质到底是什么,因此才有了这个文章。

Keyword:仿真的本质,matlab, 仿真和实际情况的区别


02 正文

2.1 仿真思维

自动驾驶涉及到很多东西,并不是所有的模块都需要非常详细的底层数据。比如对于路径规划来说,周边车辆,行人识别的准确性要达到多少百分比,或者是到目标的距离精度到底能达到多少cm,其实对路径规划并没有什么太大的影响。但是,如果专注于研究基于识别不确定性的局部路径规划领域的人,就需要上述的详细数据。再比如,验证算法的阶段,并不会考虑到CAN通讯通道的信息负载,也不会考虑数据传输错误的问题。但是,如果专注于车辆内部网络通讯的研究人员,就需要考虑这些问题。(比如得利用Vector公司的CAN节点仿真设备)

也就是说,我们得明确仿真的目的是什么。只有确定了仿真的目的,才能根据自身需要构建仿真环境。

之前有不少人问我如何在prescan或者是carsim中调取IMU的数据。那么如果目的是调校IMU,那就需要非常详细的IMU模型。那就要考虑到陀螺仪等部件的所有特性,比如电压特性,电路板特性,元件特性。但是,如果只是想得到IMU给出的加速度,角加速度之类的数据的话,原件的特性对于我们想要得到的数据来说,没有意义。(注意: 这里只是指仿真,实际运用中肯定要根据IMU的特性做调整因为我们想得到(角)加速度数据只需要在prescan或者carsim中调取各个轴的速度变化量和角度变化量就可以了。 在此之上,如果还想仿真出噪声,那么就可以采用“真实值+相应的噪声特性”的方法,添加噪声。再比如,想要获得距离特性的时候,我们不需要考虑仿真软件是否提供Lidar模块,我们其实只需要知道距离和方位角就可以。如果一定需要intensity,那么只能是通过import数据集或者是找考虑到物体反射特性的仿真软件(个人觉得这种软件就算有,应该也比较贵)。

下图为这个文章的重点:仿真和实际关系。(以传感器为例)

04b8f8276dfe334713a96dac8772ef40.png
仿真和实际

仿真器是尽量模拟实际传感器的值,实际的传感器值尽量找GT值。

也就是说,在仿真中,不管用的是啥传感器,如果想得到的数据是距离,其实就是点和点的公式而已。因为在仿真器里面我们知道绝对正确的值,所以我们可以直接得到距离(通过两点)。而在实际环境中,所有的信息都是带有噪声的。想方设法减少这些噪声就是算法该做的事情(典型的如贝叶斯滤波器)。

还有一个很重要的点在于,仿真添加噪声的时候,要注意噪声单位。比如就是,添加噪声时,如果以radian为单位,而滤波器的时候用的是degree的话, (︶︿︶)o 唉。因为这个坑,我花了半个月的时间找算法本身的毛病,差点就怀疑电脑是不是坏了。。。

660a0d7a3f272b96ee6adf9d222658c0.png
添加噪声要注意单位,图片就是噪声单位不匹配导致的滤波失败

2.2 根据自身目的选用仿真软件

那么,仿真软件的好不好就在于,仿真软件模拟出来的特性和真实值有多接近。越接近,仿真软件考虑到的细节就越多,当然如果是商业软件,就可以&敢卖的更贵。但是因为每个软件的侧重点不同,买什么软件也要看自身需要。

这里简单分析一下之前介绍过的几个仿真工具的特性。

  1. prescan : 适合构建复杂的道路环境有良好的仿真图像生成功能。提供和matlab和carsim,dspace等其他软件之间的借口。是个比较开放的仿真环境。本身并没有复杂的车辆动力学,如果需要可以调用carsim和ASM。传感器的设定相对来说还是蛮详细的。
  2. carsim: 车辆动力学模型很完善。提供很多与第三方软件的接口。但是,说实话,如果车辆动力学的精度对想要达成的目的影响不太大的话,根本没有必要用carsim
  3. dSPACE ASM: 异常详细的车辆参数。。多到调试的人都不知道该如何上手。自动驾驶模块的功能也比较一般,能设置的传感器参数也非常有限。总之,就是太过复杂,不易上手。想构建个仿真环境,得花不少时间
  4. matlab automated driving toolbox: 简单,易用。不像prescan可以生成花哨的图像,也没有carsim, asm之类的详细的车辆模型。他就是提供极其简单的,很纯粹的车在路上跑的情景。有点像从现实中抽离出本质的那种感觉。。。
  5. ROS(gazebo/rviz) 的仿真:ROS是个好东西。很多传感器的特性会很真实的反映在各个商家提供的仿真pkg中。比如velodyne会提供ROS插件。但是我个人还是觉得,ros是个高端操作。因为想利用ros验证某些算法的时候,在构建算法之前,首先得学习ROS相关的东西。对于那些只想纯粹的验证算法,并不考虑实际部署的人来说,ros有点喧宾夺主的感觉。ros学差不多的时候,算法可能都忘没了。。(当然ROS还是得会用的)。而且用Gazebo搭建环境这个问题,我个人觉得,不太容易上手

5a24ebb004bea056cfc25627fbd02cba.png
velodyne的插件

仿真软件越贵,提供的功能就越多。但这些功能对于我们达成目标有没有积极的帮助就得另当别论了。因为每个软件的侧重点都不一样。我们得根据自身所需使用相应的软件。

仿真软件的价值就在于,为使用者减少了很多麻烦但是花时间就可以解决的事情。比如坐标变换,机器人静态动态力学,传感器物理特性,GUI设定,开放第三方接口,一些基础逻辑,车辆的动力学特性等等。上述问题虽然简单,但是把,非常麻烦,且属于那种做好了一次就再也不需要再次修改的东西。软件之所以可以卖钱,就是因为软件公司替研发人员解决了这些麻烦的事情。毕竟搭建环境不是目的,而是基础。


03 总结

今天总结了一些关于仿真思维的思考。

别人觉得理所当然的事情,我们有时候就是想不明白,越想越乱。或许,换个思维很多东西就想通一些。

有帮助别忘了点个赞~

190917

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值