赞
踩
自动驾驶仿真界有一句流传很广的话:搭建自动驾驶仿真体系是一个下限很低,上限很高的事情。
RAND公司一份名为《Driving to Safety》的报告,要证明自动驾驶汽车相比于人类驾驶员能够减少20%交通事故死亡率,需要进行约80亿公里的公共道路测试,假设由100辆车组成的车队每年365天每天24小时不间歇的以40km/h的平均速度进行测试,大概需要225年。
在虚拟环境下进行大规模的仿真测试,成为了必须选择的方法。比如waymo公司的CarCraft仿真平台中,有25000台仿真车辆同时进行测试,每天总计可进行1200万公里的测试。按照这个速度,完成上面提到的80亿公里的测试,仅需要2年。而在自动驾驶的浪潮里,自动驾驶仿真工程师也成为了行业中必不可少的一个组成部分。
但是比较尴尬的地方在于这是一个上线很高,但下线也很低的事情。尤其是在重视产品产出速度的企业中,必然不会在仿真测试中投入太多的人力物力,这也就导致了不同公司的仿真应用水品参差不齐,甚至可以说差距很大。在很多汽车公司中,只要能够使用VTD、Prescan、Carsim、CarMaker等仿真软件中的一种或几种就足以胜任岗位需求,而日常的工作也仅仅是根据制定好的excel中的测试场景搭建测试用例,然后将仿真的结果同步给开发人员,远远还达不到提高开发效率、覆盖边缘场景的要求。
自动驾驶仿真工程师在每天完成自己的仿真任务后难免会思考如何提升自己的职业水平,一方面可以看看招聘网站上各个大公司对于仿真工程师的岗位描述和岗位要求,参考知乎鲨鱼观海的博文,另一方面仿真工程师也常常被称为仿真系统工程师,因此可以从自动驾驶系统的角度思考自动驾驶仿真的能力要求。
以下的内容是我在日常的工作中搜集整理的,也还在不断地完善中,如果有其他更多的指导,也希望能够多多交流。
作为仿真测试工程师最基本的岗位要求还是仿真测试能力,因此最基本的要求还是要最少掌握一两种主流的在环系统构建方法。而作为进阶过程,仿真系统工程师需要同时了解开发和测试两方面的知识,了解开发的知识一方面是为了了解仿真测试的对象,也就是自动驾驶系统中的各个模块的作用和工作原理,甚至需要完成一些功能模块的开发任务,另一方面仿真工具的开发也依赖于传感器建模、车辆动力学和深度学习等知识。
作为仿真工程师如果仅仅在测试工作中可能根本用不到开发的知识,但是在和开发人员的沟通中,尤其是讨论测试中发现的问题,了解开发的原理能够让自己大概锁定问题出现的原因,友好的探讨(吵架)中当然也更有底气。当然这方面的知识比单一功能的开发人员需要了解的要更宽泛。主要包括以下四个方面:自动驾驶主要系统架构、传感器建模的基本原理、动力学仿真的基本知识、深度学习技术等。
仿真工程师最终的工作成果还是需要通过仿真工具链来完成,开发知识只是打地基的过程,而测试能力是对外展示工作成果的工具,当然相比于开发的知识来说,测试手段也是必须要具备的能力。
目前市面上用于自动驾驶仿真的软件很多,有基于传统车辆动力学模型的、有基于游戏引擎的、有开源免费的,有卖的很贵的,有擅长做传感器的,有擅长做动力学的,也有擅长做交通流的。当然除了一些财大气粗的公司会内部自研仿真工具外,大部分公司还是会选择市面上成熟的仿真软件通过构建在环系统来搭建满足自己需要的仿真环境。
LGSVL和CARLA最适合对自驾汽车提供的独特功能进行端到端测试,例如感知、地图绘制、定位和车辆控制,因为它们支持许多内置的自动化功能。
Gazebo是一种流行的机器人模拟器,但创建动态场景所需的时间和精力并不能使其成为测试自动驾驶汽车端到端系统的首选
MATLAB/Simulink是测试上层算法的最佳选择之一,因为Simulink中清晰显示了逻辑块。此外,它有一个快速绘图功能,使其更容易进行结果分析。
CarSim专门从事车辆动态模拟,因为其完整的车辆库和各种可调车辆参数。然而,它以高效的方式构建定制的上层算法的能力有限。
PreScan具有构建真实环境和模拟不同天气条件的强大能力。
自动驾驶仿真工程师-知乎鲨鱼观海
路径规划五种算法简述及对比
ROS常用局部路径规划算法比较
TADynamics-车辆动力学模型库
自动驾驶基础架构
Unity摄像头仿真调研(svl)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。