如何学习自动驾驶仿真?
如何学习自动驾驶仿真?
开发无人车系统需要应对复杂的开发流程与验证流程。其中调试阶段存在准备时间长、包含多个程序模块以及操作较为复杂的挑战。实车测试环节的人力成本与时间投入非常庞大。因此建立一套完善的测试体系,在无人驾驶的开发过程中为团队提供有力的技术支撑。通过这套测试体系将显著提升整个项目的开发效率与验证成效。基于当前无人车企业技术架构的需求背景,在加速技术创新方面仿真系统具有突出的优势。
一、自动化仿真平台搭建
在工业领域中得到广泛应用的计算机仿真技术,在工业V流程的第一阶段发挥着重要作用。它不仅能够在复杂系统开发初期通过快速验证与持续迭代的方式显著降低产品开发成本并提高效率的方法,在复杂系统开发初期通过快速验证与持续迭代的方式实现降本增效这一目标上具有显著的效果;而且能够帮助不同专业团队之间的紧密协作对于构建高效自动化仿真平台至关重要;同时明确规定实施阶段及预期成果;最终为整个产品生命周期提供全方位的支持服务方案
1.1让车跑起来
获取仿真软件有两种路径:零起点开发与基于现有商业平台的二次开发。
零起点开发具有较高的灵活性。
但需要投入大量时间和资源进行平台升级及维护工作。
针对商业平台进行二次开发时,则需重点关注以下几个方面:
软件内部各模块具有灵活增减的能力,并能有效覆盖全面性测试方案设计能力
开放性:支持一种或几种常见的通讯方式(局域网、总线和共享内存),该系统具备明确的架构且能够处理可控的数据量;系统在仿真运行过程中具备良好的实时控制能力;
软件系统在多种配置模式下均能正常运转,在执行界面程序的所有合法操作过程中都不会出现崩溃或功能失灵等问题可能引发使用者困惑的情况;当在相同初始条件下重复运行时所得的数据结果必然是精确一致的,并且避免由于重复执行而产生的不确定性。
标准性:软件中是否包含相关行业的技术标准?这也是软件专业性的体现。标准化工作不仅有助于推动行业发展与技术进步,并且能够使成果更容易被他人利用并不断优化。
5)功能完整性:软件系统需配备与无人车测试相关的各类核心要素与功能模块,并实现完整的技术体系支撑,在当前技术应用基础与未来技术发展需求方面实现充分覆盖
6)运行负载:软件本身应当尽量减少对系统的资源消耗,在引入之后明显提升不会导致系统运行缓慢甚至无法正常工作的问题;
技术交流:拥有庞大的用户基数和完善的沟通渠道,并非仅用于软件基础功能的应用。
商业软件内置了创建仿真实验地图以及构建仿真实验场景的功能
令人惋惜的是,在此之前车辆仍未正常运行。为此我们不得不采用开放获取的地图数据格式以确保无人车系统的仿真实验环境与实际运行环境高度一致,并最终能够开发出一种工具软件以实现从仿真地图文件转换至所需的高质量地理信息系统(GIS)地图。

图1最小仿真环境闭环
1.2场景多了才有用
在仿真环境中运行被测对象之后,在完成此步骤的基础上,在实现测试目标的过程中会参考以往的测试经验,并根据不同的分类建立若干个场景数据库。这些场景库采用多样化的测试地图,并通过不同类型的交通参与者以及不同时空环境设置对被测对象施加影响。
在各类应用场景运行过程中,则需要反复启动与停止仿真软件、无人车系统以及仿真接口程序等基础组件;同时还需更换场景地图文件,并对相关参数设置进行调整等重复操作;每进行一次人工调整既费时费力又易导致设置错误;这可能引发系统误报问题的不良后果
为了规避手动操作所带来的不利影响, 决定采用软件系统进行规范化管理, 以便更好地协调各环节之间的关系, 同时提高系统的稳定性和可靠性。鉴于各场景在配置设置, 终止流程以及初始条件等方面均具备可扩展性需求, 并考虑到交通车辆运行特性等特殊属性, 将无法依赖现有的第三方软件解决方案来满足当前系统的功能拓展要求, 因此必须通过自主开发路径来实现系统的持续优化与升级

图2自动调度仿真场景
1.3守在电脑前太累
在自动调度运行后场景变得更加轻松然而由于意外事件往往突然发生因此尽管如此仍需人工进行必要的监督和干预为了进一步提升工作效率我们在与无人车系统开发同事深入沟通后依据相关法规制定了具体的测试标准并决定引入一个自动化监控程序将之前依赖人工直观判断的方法转变为基于实时数据分析的自动化监控机制在运行过程中对各项关键指标进行持续监控一旦检测到异常现象就会自动记录发生问题前后的数据变化情况并将其整理存档以便后续分析与排查
在所有场景完成运行后, 守护程序负责收集整个仿真过程中使用的场景信息以及出现的问题, 并对这些信息进行整理并归类. 随后会按照既定的格式输出仿真运行报告文件, 并在完成保存操作后程序将退出.
守护程序的服务内容紧密关联于无人车系统,在持续运行的过程中会逐步扩大其判断能力以及提高其判断水平,并最终实现对仿真场景中无人值守状态的有效保障

图3守护程序
1.4即刻执行
在无人车系统的迭代开发过程中
以彻底实现无人系统为目标
透彻掌握无人车系统的综合性能对于提高仿真的效能至关重要。精准划分场景库成为仿真平台核心效能的关键要素。然而各功能模块的能力必须伴随无人车系统更新迭代持续增强以维持整体效能水平。在日常研发过程中通过反复执行大量模拟场景来形成从研发至测试的良性循环一方面检验新功能的效果另一方面确保系统的稳定性能够及时发现并解决问题从而推动整个项目的顺利推进为打造高质量的产品贡献力量

图4无人车自动化仿真平台
二、自动化仿真平台应用
搭建仿真平台旨在为无人车系统的研发与试验任务提供支持,并主要服务于测试团队、研发团队以及项目经理等。
2.1测试人员怎么用
测试人员无需深入了解整个仿真平台结构、也不需要编程实现即可通过不断添加仿真场景来提升测试效果。其工作职责涵盖以下几个方面:
1)整理并提供测试用例,明确测试用例的测试目的;
2)在仿真软件的可视化界面中搭建能够描述测试用例的仿真场景;
3)在测试用例分类环节,在相应的场景列表文件中增添新场景的路径信息及相关细节;
仿真平台运行结束后,访问生成的报告文档以查看详细信息;获取相关的数据包文件以分析项目进展;分析并记录发现的问题;将整理好的问题提交至系统中的缺陷管理模块.
5)开发人员解决完问题后,在参考问题记录中的信息,在仿真环境中独立进行验证以评估修改的效果,并将结果反馈至回归测试阶段。
引入仿真平台将不会显著增加测试人员的工作量,并且其操作流程与之前的实地测试模式基本一致。主要区别在于以前需要在真实的场地环境中搭建测试场景,在仿真软件中则实现了这一过程的虚拟化构建。值得注意的是,在仿真环境中构建场景的优势在于一次完成之后即可反复利用同一个虚拟环境进行多轮次的验证工作;每次重新启动时都能确保输入条件的一致性。这种优化不仅显著提升了测试效率,并且有助于快速定位问题根源
在每次程序提测过程中,在确保仿真平台具备自动运行和无人值守等特点的情况下,在短时间内能够覆盖所有测试场景并完成全面验证,并显著提高了整体的测试效率


图5测试人员仿真工作内容
2.2开发人员怎么用
仿真平台对开发人员的服务主要体现在两个方面:
1)开发阶段作为调试环境使用
针对无人车系统新功能的研发阶段,在尤其是在初期阶段(尤其是在早期设计与实现环节),常见于面临硬件资源匮乏(特别是在传感器与控制单元方面的限制)、其他功能模块运行不稳定性较高(特别是在通信协议与边缘处理逻辑不够完善的情况下)、测试场地资源有限(尤其是在室内试验场与 outdoor试验场均较为紧张)以及自身算法存在较多的问题(特别是在复杂度与计算效率方面尚需进一步优化)等情况。通过仿真平台的基础测试环节(尤其是在虚拟仿真实验设计中),可以较为方便地划分为多个子模块的调试环境,并为各子模块搭建相应的接口数据模拟平台(特别是输入输出信号同步再生机制),从而让研发团队能够在各自的专业领域内集中精力解决相关技术难题. 通过这种方式, 可以显著提升整体项目的推进速度.
2)测试阶段作为问题复现工具使用
测试员发现异常后更新至Bug管理系统,在线等待处理中。开发人员接收到该系统显示的问题及相关信息,在线等待处理中。系统自动生成相关记录并发送至审核流程中等待人工审核。无需受硬件设施或工作地点的限制,在线等待处理中。系统自动记录操作日志并生成报告等待输出中,在线等待处理中。无需提供详细的技术描述,在线等待处理中。更改为代码后立即可获得验证结果,在线等待处理中。可将故障闭环处理的时间显著缩短,在线等待处理中。从而提高解决问题的整体效率,在线等待处理中
通过具体使用过程能够证明,在开发调试阶段更容易发现大量算法逻辑问题,并且能够显著减少开发与测试的时间跨度。这将使开发人员更加高效地解决问题。如图所示,在仿真环境中,开发人员正在进行无人驾驶系统的问题排查。

图6智行者无人乘用车星骥仿真

图7智行者蜗小白和某新产品仿真
2.3项目管理人员怎么用
项目管理人被要求时刻了解项目的研发方向和发展动态。一旦无人车系统代码被提交至代码仓库,则系统平台将经测试生成的测试报告文件发送至项目管理人的相关邮箱以及参与开发和测试的人员邮箱中,请相关人员能够立即获取本次修改涉及的场景用例测试结果,并据此为后续决策提供信息依据。
结语
无人车自动化仿真平台是由多个参与者共同操作且长期维护的智能仿真工具,在整个程序设计阶段可为不同岗位的人提供全面的服务,并根据实际需求不断优化功能以增强检测能力。该系统能够显著提升了程序运行效率,并减少了质量检测投入的同时提升了质量评估标准;随着无人车功能模块的不断扩展和完善,在实际应用中逐步增强了检测能力;致力于通过智能化手段满足不同类型无人车系统的高效管理需求
