首页/文章/ 详情

自动驾驶仿真工程师,有哪些职业进阶方向?

8月前浏览1450


大家好,我是李慢慢。
这篇文章不聊技术,聊聊职业路。

从本公 众号创办至今,两年多来我一直在分享一些自动驾驶仿真工程师的实用技能,110多篇原创不知道有帮助到你们多少呢?(看每篇文章的分享量,想来效果也不会太差吧)。不过我确实从大家的反馈和一些读者转好友的职业经历中学习到很多,所以这里也将自动驾驶仿真工程师的职业发展简单做个总结吧。友情提示,鉴于李慢慢本人格局及经验有限,以下内容仅代表个人看法,诸君请仅做参考哦。

信息来源:
1.李慢慢个人经历
2.读者们的反馈
3.茶话会的交流结果
4.群友聊天内容

以下简单介绍下自动驾驶仿真测试工程师的来源(从哪儿来),以及这个岗位的工程师的日常工作内容(在做什么),最后发散思维想了想这个岗位接下来的进阶路线(到哪儿去)。
文章目录:
一、从哪儿来?
二、在做什么?
三、到哪儿去?

一、从哪儿来?

自动驾驶元年如果从2015年开始算(在当年5月国务院发布《中国制造2025》,在文件中,发展智能网联汽车正式被上升至国家战略高度,无人驾驶被列为汽车产业未来转型升级的重要方向之一),自动驾驶发展至今10年未到,是为新兴领域,而为自动驾驶服务的仿真测试自然是“新上加新”了。那么做自动驾驶仿真测试的这批工程师是从哪儿来的呢?

HIL。 这是原来就在OEM或者Tier1做电子电器验证的一批工程师,是我觉得出身非常纯正的一批人,就算在当今,HIL测试依然是自动驾驶测试的很重要的一环,这批人都不算转行,因为他们依然用着类似的设备,只是测试对象从以前某个电子器件功能变成了自动驾驶功能。

CAE。 这是笔者原本的方向,本身就擅长用仿真软件模拟真实世界,转换到自动驾驶领域,依然还是仿真工程师,只是仿真的对象从结构变成了场景。我甚至觉得,CAE的门槛比场景仿真高多了。

游戏。 自动驾驶仿真测试需要用到很多游戏领域的“资产”来构建自动驾驶的场景(此处资产可以简单等价为3D模型),有了丰富的资产,便可以构建更丰富的场景库,用于测试自动驾驶功能。而且原本在游戏领域从事图像渲染的人员,也顺势转入自动驾驶领域,从事仿真软件引擎开发,为视觉算法提供更逼真的合成图像。

软件。 仿真平台要对智驾功能进行测试,需要大量的集成开发工作,这里不仅是对仿真软件平台的开发,也有集成智驾算法 功能时的接口开发,也有整体自动化测试流程的开发等工作。这是一群在制造“工具”的人。如果放在互联网领域,他们的名义叫做“测开”,即测试开发工程师。他们转到自动驾驶领域,其实也算不上转行,因为本质上他们始终在coding。

其它。 除了上述方向,也还有一些其它领域转型的。比如原本的汽车测试人员,对测试流程非常熟悉,顺势从实车测试转入软件测试。比如学生,最近渐渐有非常专业的学生从大学毕业,加入智驾仿真测试领域。

总之,自动驾驶仿真测试工程师领域的人来源比较驳杂,不过也正是大家各有所长,才共同铸就了自动驾驶仿真技术被愈发重视的今天。吼吼。

二、在做什么?

这个问题其实是在问仿真工程师都具体在做什么工作。随着仿真测试领域不断发展和成熟,技术也越来越细分,岗位也越来“螺钉”化。虽然如此,按照仿真服务于测试这个大类去划分,依然逃不出以下几个方向。

1、仿真软件开发

常见于软件供应商。目前市面上比较流行的几大仿真软件,比如VTD、PreScan、51-world等,软件虽然已经开发完成,但随着用户的需求变更,还需要不断的维护和优化。当然也还有其他的正在开发中的新仿真平台,不管是全新开发,还是二次开发,都有一批软件工程师在coding...

2、技术支持

常见于软件供应商。对于要交付给客户使用的软件,经常需要在售前进行宣传、培训,售后也经常面临着客户们各种各样的问题反馈,软件商们为了提供良好的售后服务,一般都会在24小时内给出解答,这肯定需要专业的仿真工程师来对接。这群仿真工程师其实也可以叫做技术支持。他们游离在本公司的软件开发工程师和客户使用软件的工程师之间,而且出差成为常态,是对仿真软件最了解的一批人。

3、集成工程师

主要见于主机厂。集成工程师需要将智驾功能和仿真平台进行集成,完成接口匹配,使得仿真中的车辆能成功把智驾功能加载进来,以完成在仿真环境中进行智驾功能测试的任务。这里智驾功能的运行环境不同,也会产生不同的方向,比如MIL、SIL、HIL、DIL、VIL、云平台等等。要适应接口的日常修改、智驾功能的更迭、仿真平台的更换等工作,集成是个很累的活,他们经常在debug,而且动不动就要拉着几大部门的人一起分析数据。

4、仿真测试工程师

这是真正在执行测试,为智驾功能开发服务的一批人。这些人的日常就是进行大批量的仿真测试工作,书写测试报告,提问题单给开发工程师,以及回归测试和关闭问题单。随着智驾功能的不断更迭,他们在“测试-提单-关单”的循环中不可自拔。为了提高测试的效率,他们还需要维护好一套自动化测试工具或者流程,以期待能实现CICD自动触发测试流程,自动生成测试报告,自动提交问题单等功能。他们常常调侃自己,他们的工作就是干掉自己的岗位。届时,智驾开发人员提交新算法到代码仓库,自动触发测试任务,自己就知道了测试结果,自己拉取测试数据,自己分析优化,再提交新的测试,整个过程确实没有测试工程师啥事了。

5、场景工程师

我以前开玩笑说,宇宙的尽头是公务员,仿真的尽头是画场景。这话还是很有道理的,当所有工具不需要维护,仿真工程师只需要不断的创造各类场景,来发现算法的问题。发现问题,准确地说在实车测试前拦截掉软件将会出现的问题,才是仿真工程师工作的本质意义所在。场景工程师,他们并不是凭空捏造场景,而是要处理好ODD、软件需求、测试用例、和泛化场景之间的关系。还需要做好标签,在数据库中管理好已有的场景库。只有场景覆盖度足够高,才能真正发挥仿真测试的威力,体现它的不可替代性。
以上几个方向只是李慢慢个人基于仿真测试流程提出来的一种分类方法,大家不要轻易对号入座。因为在不同公司,因为业务需要,可能又有别的分类方法和岗位职能。比如按照MIL/SIL/HIL来划分,一个做MIL的可能既需要画场景,也需要对接口,还需要做测试,提单子,写代码等等。但是他可能只负责某个功能,而其它功能的这一套方法,又是另一个工程师负责。

三、到哪儿去?

和读者们交流的时候,经常聊到自动驾驶仿真工程师们的各种忧虑。
比如感受不到仿真测试被重视。 这是因为仿真目前技术本身的固有缺陷,置信度不够,导致它只能在规控测试领域稍微有所建树,但在感知测试领域,依然无法被大规模应用。特别是ADAS的规控测试,一般都只要求满足法规测试即可,测试场景非常简单且有限,这导致仿真测试只能在初期发现一些规控算法的问题,在中后期就再也没有用武之地了。这个时候,自己都会觉得自己这个岗位可有可无了。
也比如始终感觉有被裁掉的风险。 前文提到仿真测试工程师的诸多来源,可知自动驾驶仿真测试本身的门槛并不高,加之仿真工具链的不断成熟,以及新生力量的不断加入,总有种“长江后浪推前浪,前浪要死在沙滩上”的感觉。而且从业务上来讲,仿真测试本身就是为了“降本增效”而发展出来的一个领域,公司或者企业本身就不会为他倾注很多资源,当前因为背靠自动驾驶技术,仿真被动吸收了一些资源,但总是会有“秋后算账”的一天。

鉴于上述各种忧虑,一部分仿真工程师们也都在寻求可行的“出路”,提前一步让自己“毕业”。那么,可行的方向有哪些呢?以下是我的一些思考和总结:

1、测试经理

这个其实是基于当前岗位的晋升,属于管理岗。随着自己对测试业务的不断熟悉,对这一业务“门儿清”后,加之组织的“赏识”或者自己的“争取”,晋升为一批仿真测试工程师的头头,便可以继续逗留这一领域甚至进军其他管理岗位了。

2、测试专家

仿真测试虽然门槛很低,想要做好却很难,因为它设计的面实在是太广了。公司可能不止一款仿真软件,还要和公司不同项目中的智驾算法框架集成,集成环境还可能是工控机、Ubuntu、ROS、云平台、docker、Windows、MCU、SOC等,到这里还只是让仿真和智驾算法跑起来,跑起来后还要解决实时问题、同步问题、批量化运行的效率最大化问题、代码仓库维护问题、CICD自动化流程问题,报表和数据展示问题等,到此算是业务可以正常进行了。再往后还需要最大化的研究场景挖掘的问题,以达到更好的应用业务。要成长为一个技术专家,纯业务领域确实有很多技术需要联合应用起来。还有前文讲到仿真测试目前的囧况,目前仿真还只是在规控测试上有所建树,在感知领域始终被质疑。如果始终能走在攻克新技术的路上(比如最近大兴的Nerf技术、AI大模型技术等),那么自己凭借技术实力也在始终靠近“专家”岗。

3、软件工程师

如果你在工作中coding比较多,那么自己其实始终可以作为一个程序员而存在,不过程序员的35岁大关,也是个致命的缺陷,怎么进阶又是另一个领域的话题了。

4、算法工程师

“开发大于测试”、“开发是无限的”,这两大定律决定着开发始终是测试一大进阶方向。仿真工程师在工作中其实和算法工程师打交道很多,也对其工作内容有了一定的了解,要是还能自己线下补补功课,是有机会顺势切入算法领域的。算法领域方向还是蛮多的,比如规控、感知、融合、决策等。

5、数据闭环

这两年大兴的数据闭环,是一项很全栈的技术系统,这个平台围绕“采集-标注-训练-仿真-测试”形成闭环,涉及到的技术栈非常全面,仿真测试都只能成为其中一环。所以,对于仿真工程师来说,顺着数据闭环的业务,是可以了解甚至进入其它环节的。此后一直与数据打交道,成为一名数据分析工程师,也是个不错的选择。

6、产品经理

九章智驾的CEO苏总曾在我组织的自动驾驶仿真茶话会中说明仿真转型这个岗位的可行性。从事自动驾驶仿真测试一段时间后,对于公司开发的产品功能、流程、表现、开发实力等有了较为全面的了解,要是还能性格开朗一些,会处理上下游关系,了解市场产品现状,也是可以尝试往产品经理一岗转型的。这个岗位能接触到更多的资源,有更大的话语权,不管是从待遇水平还是从受尊重程度来看,都是值得尝试的。
苏总还提到,从事产品经理的人更容易有老板思维。跳出工程师、打工者范畴,把市场需求和公司开发能力匹配起来,定制产品的开发方向,是更为稀缺的一种能力。
上述的产品经理,是自动驾驶的产品经理。当然,有些待开发或者在开发的仿真平台,也是需要产品经理的。

7、模型工作者

既然有一批自动驾驶仿真工程师是游戏工作者转过来的,那么我们自然也可以再转过去。这需要仿真工程师在日常工作中有3d建模经验,以及渲染经验。这能为今后在游戏领域甚至动漫领域打下一些基础。

8、技术顾问/技术销售

这是公 众号“孙工自动驾驶”提供的一个方向。主机厂的仿真工程师因为在工作中对仿真软件的应用场景比较清楚,成为软件商眼中“拥有客户应用经验”的稀缺人才。因此,从主机厂出来的仿真工程师,可以尝试去到乙方,从事仿真软件的销售及技术支持类的工作。

9、新兴方向或者创业

这是卓宇信息CEO沈总的建议,大家可以看看别的行业,把现有的技术应用到别的行业;年龄大的,就赚到2G的业务,如军工、航空、政务的数字化场景,或者回归到撸铁的领域,搞交叉学科,如CICD+CAE;年纪轻的,加入创业公司或者在细分领域创业吧,往小而美的方向发展

最后来个总结吧。 
以上讲了好多进阶方向,以技术立业,仿真工作者后续的路子倒也不至于太难走。道路千千万,仿真工程师们也不要总是埋头苦干技术,也要时常关注行业的发展、市场新的技术、和其它领域的融合,学会两条腿走路,一条掌握技术,一条掌握方向。最后精髓只有一条,适合自己的就是最好的,这里也祝福读者们,能找到值得自己奋斗终生的事业。

以上,本文完。

后记:以上是李慢慢本人这些年的一点思考。如果你觉得有什么不足的或者缺失的地方,欢迎后台找我论道,共同探讨。另外【车路漫漫】公众 号也将继续分享行业内的新技术、新方案,欢迎广大仿真测试工作者的持续关注和反馈,和大家共同进步。


来源:车路漫漫
二次开发航空汽车电子UGPreScan自动驾驶游戏渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-10
最近编辑:8月前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 14粉丝 93文章 320课程 0
点赞
收藏
作者推荐

Carla中如何运行OpenSCENARIO场景?

大家好呀,我是李慢慢。你们能看到我一篇原创文章实在是太不容易了。最近新晋成奶爸一枚,写作时间一下子压缩到几乎没有。以后更新频率估计不会很频繁,哈哈,虽然好像我一直都更新很慢。但是,李慢慢出品必属精品,诸君还是值得持续关注的。另外,诸君要是有舍得分享的技术文章,也可以在这里发表,为你署名,欢迎骚扰。本期继续研究用Carla做SIL仿真测试。1、前言Carla是一个开放源代码的自动驾驶仿真平台,用于研究和开发自动驾驶技术。它提供了一个完整的仿真环境,包括3D地图、车辆模型、车辆控制器、传感器模型等,为自动驾驶研究提供了一个完整的环境。在Carla中运行仿真,需要其自定义格式的静态地图(比如Town05.pcd),和在该地图上通过API控制NPC行为形成的动态场景。这种场景配置方式和目前主流的OpenX系列的标准(OpenDRIVE格式静态地图文件,OpenSCENARIO格式的动态场景文件)有很大不同,导致主流的场景库很难切换到Carla中使用。进而无法有效进行大规模批量测试,发挥不出仿真测试的威力。因此,打破Carla和OpenX系列标准之间的壁垒,或将使Carla迎来新生。上一期《Carla中如何加载OpenDrive地图?》研究了Carla中使用OpenDRIVE格式的地图,有了一定的效果。本期继续研究Carla中如何使用OpenSCENARIO格式的动态场景。这种格式的场景文件需要特定的解析工具,才能将其中xml格式的标签式描述文本转化成仿真软件中的车辆行为,主流的商用仿真软件如VTD、PreScan等均有内置的解析模块,但是Carla中没有,于是Carla官方后来推出了一个叫做Scenario Runner的工具,可以解析该格式,并将解析后的内容发送到Carla的Server端进行渲染。所以,这个Scenario Runner是Carla运行Open SCENARIO格式的场景文件的关键。2、官方介绍Scenario Runner的官方介绍如下:https://carla-scenariorunner.readthedocs.io/en/latest/翻译一下:ScenarioRunner 是一个允许为 CARLA 模拟器定义和执行交通场景的模块。场景可以通过 Python 接口或OpenSCENARIO 标准来定义。通过轻松创建复杂的交通场景和路线供代理来导航,ScenarioRunner 还可用于”AD代理“的评估。3、本地试验环境接下来,本文按照官方的说明文档,尝试下ScenarioRunner的运行效果。先简单说下我个人电脑使用环境吧。操作系统:Windows 10Python版本:3.7.9Carla版本:0.9.13(预编译版)ScenarioRunner版本:0.9.13Carla的安装十分简单,安装包是从官方直接下载的预编译版的压缩包,解压即可使用。ScenarioRunner的安装、环境配置、和使用都是严格参考官方教程:https://carla-scenariorunner.readthedocs.io/en/latest/4、软件下载官方的“Get ScenarioRunner”里说的还是很清楚的,您要下载的ScenarioRunner和您本地安装的Carla版本一定要匹配,比如我本地是Carla 0.9.13, 那么我也需要下载ScenarioRunner 0.9.13。下载后解压的目录如下:5、环境变量设置设置环境变量是为了添加公有路径参数,然后Carla和ScenarioRunner可以通过这个路径参数互相访问到对方,这里的设置非常重要。下方的设置方法是从官方copy来的,里面的具体路径一定要跟着你自己的安装路径来。# %CARLA_ROOT% is the CARLA installation directory# %SCENARIO_RUNNER% is the ScenarioRunner installation directory# <VERSION> is the correct string for the Python version being used# In a build from source, the .egg files may be in: ${CARLA_ROOT}/PythonAPI/dist/ instead of ${CARLA_ROOT}/PythonAPIset CARLA_ROOT=\path\to\your\carla\installationset SCENARIO_RUNNER_ROOT=\path\to\your\scenario\runner\installationset PYTHONPATH=%PYTHONPATH%;%CARLA_ROOT%\PythonAPI\carla\dist\carla-<VERSION>.eggset PYTHONPATH=%PYTHONPATH%;%CARLA_ROOT%\PythonAPI\carla可以看看我这里设置成功后的检查。附:设置PYTHONPATH的好处是,后续可以在python脚本中直接import进来carla的pythonAPI和carla库。6、软件使用终于可以使用软件了。这里还是要说明下Carla和ScenarioRunner的配合模式,不然后面操作很多,读者很难理解每一步到底是什么意思。Carla的本质还是Server-Client模式,所以一定会运行一个Sever端,双击打开CarlaUE4.exe后就是打开了一个Server端。然后Client端需要运行两个。一个Client是ScenarioRunner模块本身(它解析OpenSCENARIO文件并发送到Server端)。一个Client(比如运行manual_control.py)的作用是给主车一个agent(即控制主车行驶)并获得可视化效果,有了可视化效果我们才知道OpenSCENARIO场景最终呈现的样子。附:OpenSCENARIO中一般不会定义主车的行为(因为主车是自动驾驶),它会定义主车之外的其它NPC的行为或者天气环境等等。为了方便查看OpenSCENARIO的效果,官方自带的manual_control.py,可以很方便的以键盘控制主车行驶,也能看得到主车周围的场景反馈。理解了原理,接下来开干:1、打开一个终端,切换到Carla安装目录下,我这里喜欢以低质量模式快速启动Carla的Server端;.\CarlaUE4.exe --quality-level=Low打开后如下(carla的server端,虽然像素很低,效果很差,但是对电脑显卡消耗小,启动迅速)。2、再打开一个终端,切换到ScenarioRunner的安装目录下,运行OpenSCENARIO场景。官方给出的demo指令如下:python scenario_runner.py --scenario FollowLeadingVehicle_1 --reloadWorld运行后发现Server端的地图变了,效果如下。3、再打开一个终端,切换到ScenarioRunner的安装目录下,去运行manual_control.py,指令如下。python manual_control.py运行后,会新打开一个pygame的窗口,显示一辆静止的车辆,这个就是主车。此时通过键盘上的WASD键,比如W键,让主车加速,然后,前方就会出现一辆目标车。(注意要切换到英文输入法,不然按键无效的)。好了,到了这里基本已经复现了官方的demo。事实上,网上的教程大多也只到这里了。阶段性胜利啦。终于用ScenarioRunner联合Carla跑起来了一个场景。但是。这里我有一点疑惑:这个FollowLeadingVehicle到底描述了个什么场景,或者说ScenarioRunner启动时指定的FollowLeadingVehicle_1 参数到底指向什么地方?python scenario_runner.py --scenario FollowLeadingVehicle_1 --reloadWorld 研究了好久才知道这个demo运行的竟然是下面这个python文件中定义的东东。然后官方的说明中也证实了这一点:OK,结论就是:上面的demo中,ScenarioRunner运行的场景文件,是用另一个python文件定义的车辆行为,并不是OpenSCENARIO格式的文件。心累。所以,ScenarioRunner是否可以调用一个OpenSCENARIO文件呢?简单通过--help查看ScenarioRunner的使用方法,结果如下:python scenario_runner.py --help参照提示,尝试运行一个官方提供的OpenSCENARIO场景文件:python scenario_runner.py --openscenario youropennscenariopath.xosc发现是可以成功的,而且根据自己的需要,修改相应xosc文件内容后,也能马上看到运行的效果,和我预期中的表现一致。7、报错记录1、关于PYHTONPATH官方给的PYTHONPATH系统路径设置后,运行ScenarioRunner总是报错:module 'carla' has no attribute 'WeatherParameters'。查看官方isuue后得知需要多添加一些PYTHONPATH:set PYTHONPATH=%PYTHONPATH%;%CARLA_ROOT%\PythonAPI\carla\dist\carla-<VERSION>.eggset PYTHONPATH=%PYTHONPATH%;%CARLA_ROOT%\PythonAPI\carla\agentsset PYTHONPATH=%PYTHONPATH%;%CARLA_ROOT%\PythonAPI\carlaset PYTHONPATH=%PYTHONPATH%;%CARLA_ROOT%\PythonAPI2、关于import carlaset PYTHONPATH=%PYTHONPATH%;%CARLA_ROOT%\PythonAPI\carla\dist\carla-<VERSION>.egg添加这一句虽然可以不用安装就能直接使用carla模块,但是我这里import carla没有问题,但是使用却有问题,报错内容是找不到libcarla这个东西。最后我是删除了这个路径设置,直接‘pip install carla==0.9.13’来解决问题的。我猜测,这个egg包可能有所损坏,直接install网上的carla库是没问题的。3、关于键盘无法控制车辆启动manual_control.py后按键WASD或者上下左右键后主车怎么着也不动,一开始总是以为是自己哪里的设置不对,环境不对,搞了好久才幸运地发现,要把输入法切换到英文输入法,就能解决问题。。。8、总结Carla中是能运行OpenSCENARIO格式的场景的,不过需要另一个python工具(ScenarioRunner)来对OpenSCENARIO内容进行解析,并发送到Carla的Server端,我们才能通过自控的Client端看到其应用的效果。这个过程虽然比较曲折,但总归是实现了。笔芯。本文完,瑞斯拜。来源:车路漫漫

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈