云仿真测试平台主要包括云仿真管理平台、云场景构建平台、云仿真任务平台和被测算法接入平台。
1.云仿真测试介绍
云平台仿真测试是一种利用云计算技术,将仿真测试的软硬件资源部署在云端,实现远程访问和控制的测试方式。云平台仿真测试可以提供大规模、高并发、高性能、高可靠的仿真服务,满足自动驾驶系统的多样化、复杂化、高频化的测试需求。 相较于现有的仿真测试方法,自动驾驶云平台仿真测试有显著优势。首先,云平台可以将分散的仿真资源集中管理,实现资源的最大化利用和优化配置,避免资源的闲置和浪费,降低硬件成本和维护成本。其次,云平台可以对仿真数据进行加密、备份、恢复等操作,保证数据的安全性和完整性,防止数据的泄露和丢失。同时,云平台可以根据用户的需求,提供按需、按量、按时的仿真服务,支持用户自定义仿真场景、参数、指标等,满足不同阶段和层次的在线测试需求。最后,云平台支持多用户同时在线访问和控制仿真系统,实现多方协同测试,提高测试效率和质量。
2.云仿真平台构建方法
云仿真测试平台主要包括云仿真管理平台、云场景构建平台、云仿真任务平台和被测算法接入平台。
2.1 云仿真管理平台
(1)用户管理 云平台针对的用户可能是多用户组或者多用户的,为了有效地管理和维护用户的访问权限、账户信息和资源分配,需要对用户进行身份验证、授权和监控,以确保安全和有效地使用云平台资源,一般包含以下功能:1)用户身份验证:用户身份验证是确认用户是谁的过程。这可以通过用户名和密码、多因素身份验证、单一登录等方法来实现,以确保只有授权用户能够访问云平台; 2)用户授权:一旦用户被认证,就需要确定他们可以访问哪些资源和执行哪些操作。授权可以通过角色、权限组、策略等方式进行管理,以确保用户只能执行其职责范围内的操作; 3)角色和权限:云平台通常提供一系列角色和权限,这些角色具有特定的权限集合。管理员可以将用户分配给适当的角色,从而限制其访问权限。例如,有的用户可能具有管理员角色,而另一些用户只能访问特定资源;4)资源配额和分配:用户管理还涉及将可用资源分配给不同的用户或团队。这可以通过配额和限制来管理,以确保每个用户只能使用其被分配的资源,比如用户/用户组云端可执行的最大任务总量和并发量等。
(2)资产管理 云平台的用户组或者用户对自己所拥有的数字资产会有私有、共享相关的权限需求,这就需要云平台对这些数字资产结合用户管理进行权限管理,同时提供相关增删改查的用户接口。
2.2 云场景构建平台
(1)场景导入 仿真场景导入是将现实世界中的数据或场景元素引入到虚拟的仿真环境中,以增加仿真环境的多样性和拟真度。这种方法可以提高机器学习模型在仿真环境中的泛化能力,使其更好地适应真实世界中的各种情况。在将现实场景导入到仿真环境中时,可能涉及以下步骤:1)物理属性设置:在仿真环境中,物体需要具备适当的物理属性,例如质量、摩擦力等。这些属性的设置可以影响仿真的真实感和准确性。2)场景集成:将建模的场景元素集成到现有的仿真环境中。这可能包括将3D 模型导入到仿真引擎中,包含应用纹理和材质等。3)仿真模拟:在集成场景元素后,可以进行仿真模拟,模拟不同情况下物体的运动、互动和响应。 4)模型训练和测试:利用这些导入的现实场景,可以对机器学习模型进行训练和测试,以提高其在仿真环境中的泛化性能。 需要注意的是,场景导入可能会受到现实世界和虚拟环境之间差异的限制。为了获得更好的泛化效果,可能需要进行领域自适应、数据增强和其他技术来减轻这些差异对模型性能的影响。
(2)仿真场景泛化 仿真场景泛化可以通过组合逻辑场景参数生成具体场景,并结合云仿真测试平台支持机器学习模型进行训练,使模型具备良好鲁棒性。这对于机器学习模型在现实世界中应对各种复杂情况非常重要,因为真实世界中的数据往往是多样性和变化性的。 要使机器学习模型在仿真中获得良好的泛化性能,并能够在真实世界中应对不同情况,仍然需要解决一些挑战: 1)现实世界偏差:仿真环境和真实世界之间可能存在差异,例如光照、材质、物体形状等。这些差异可能导致模型在从仿真环境到真实环境迁移时表现不佳。 2)数据丰富性:真实世界中的数据往往非常丰富多样,而在仿真环境中很难涵盖所有可能的情况。模型需要在有限的仿真数据中学会泛化未见过的情况。3)对抗性示例:恶意攻击或对抗性干扰可能在真实世界中发生,但在仿真环境中很少出现。模型需要具备对抗性泛化能力,以防止这种情况。为了克服这些挑战,研究人员通常会使用领域自适应技术、数据增强方法、迁移学习和元学习等策略来提升模型在仿真环境中的泛化性能。此外,持续的模型监测和更新也是确保模型在真实世界中表现良好的重要步骤。

2.3 云仿真任务平台
(1)任务管理 高并发任务执行是云仿真平台的一项重要功能,任务管理作为用户和后台的桥梁起着关键作用: 1)任务创建:用户可以创建不同类型的仿真任务,指定所需的参数、数据和算法。 2 资源分配:在云平台上执行仿真任务需要分配适当的计算资源,例如虚拟机、容器等。任务管理系统需要确保资源的适当分配和调度。3)任务调度:对于多个仿真任务,任务管理系统需要决定何时启动、停止,或调整任务以有效地利用资源并满足用户需求。 4)任务监控:监控任务的执行状态、进度和性能指标,以及任何可能的异常情况。5)结果收集:一旦仿真任务完成,任务管理系统可能负责从执行环境中收集模拟结果、输出数据和日志。 6)错误处理:处理任务中可能发生的错误、中断或失败情况,以便重新启动或采取适当的纠正措施。 7)性能优化:针对不同的任务,任务管理系统可能需要考虑性能优化策略,如负载均衡、并行化等,以提高仿真效率和速度。
(2)分布式业务节点 仿真系统在进行仿真任务时需要访问大量采集或者生成的数据,并利用CPU和 GPU 资源对数据进行再处理并还原,或者对已经结构化的数据进行GPU渲染再现。这些仿真任务都需要依赖强大的计算和存储能力。随着仿真内容的增加,单个计算机的性能很快成为瓶颈,一个计算节点不可能独立完成仿真任务。这就需要使用一种机制将仿真任务分配到多个机器上,并且让所有机器协同工作,这样能够降低单个机器的性能需求,从而使得大规模仿真任务得以实现。基于云计算的分布式概念正好能够帮助自动驾驶仿真系统达成这样的目的,分布式计算是随着互联网行业的快速发展而产生的。随着网络速度的提高,服务器端对数据的存储能力和算力需求逐渐增加,传统的服务器需要升级硬件满足需求。集中式的硬件系统成本过高,于是分布式概念应运而生。分布式框架可以将计算和存储任务进行拆分,让互相连接的每一台机器承担一部分的计算和存储任务,并在需要的时候进行数据的同步和收集,降低单个节点成本,提高系统整体的计算能力和存储容量。
(3)云原生部署 在高并发场景下,云原生架构相比传统架构有许多优势,能够更好地应对高并发的挑战。以下是云原生在高并发场景下的优势: 1)弹性扩展:云原生应用使用容器和容器编排工具,如Kubernetes,可以快速、自动地进行水平扩展,根据实际负载动态增加或减少实例数量。这使得应用能够更好地适应高并发的请求量,并在峰值期间保持稳定的性能。2)自动化管理:云原生应用采用自动化的部署和管理方法,通过自动化的方式,能够快速地响应变化,并自动恢复故障。在高并发场景下,系统可能会面临突发的请求激增,通过自动化管理,可以更加高效地应对这些情况,减少运维负担。 3)微服务架构:云原生应用倾向于采用微服务架构,将应用拆分为多个独立的服务单元。这种方式使得不同服务可以独立进行扩展和部署,避免了单一应用的瓶颈问题,并能够更好地优化资源利用率。 容器化技术:云原生应用使用容器化技术,如 Docker,将应用与其依赖项打包为一个独立的容器。这种隔离性能够保障应用在高并发场景下的稳定性和安全性,并且便于部署和迁移。 水平扩展:云原生应用的设计理念鼓励水平扩展,即通过增加实例数量来处理更多请求,而不是增强单个实例的性能。在高并发场景下,水平扩展能够更好地利用云计算资源,提供更好的性能和稳定性。
2.4 被测算法接入平台
(1)算法接入 自动驾驶算法是云仿真测试的主要对象,由于是云端,所以算法接入不像单机版那么方便,接入的方式主要有以下几种: 1)容器镜像 把算法的主体和完整的运行环境做成容器镜像,在云端的分布式架构中以容器的形式运行,这种方式是云原生比较推荐的方式,优点是独立性强,因为有完整的运行环境,所以对外部环境没有依赖,缺点是门槛比较高,需要制作算法镜像。 2)网络存储 把算法的主体存放在网络上(HTTP/FTP/NAS),运行时在云端的运行容器内实时从网络上获取相关文件并启动,这种方式比较灵活,门槛比较低,缺点是没有运行环境,依赖由运行容器镜像提供,一旦算法新增了运行依赖,需要更新运行容器镜像。
(2)算法更新 由于算法会进行版本迭代,所以云仿真平台必须提供算法更新的接口,通常需要可以接入客户的 CI/CD 流程,所以提供 RestfulAPI 的形式是比较推荐的方式,具体的业务逻辑根据不同的算法接入方式也有不同:1)容器镜像 这种方式下,算法的更新直接对接到具体部署资源的镜像版本就可以了,用户提交最新的算法镜像,然后通过更新接口进行版本更新。2)网络存储 这种方式下,云平台可以适当提供直接更新网络存储的用户接口,方便用户更新云端的算法主体,同时云平台要支持运行容器镜像的更新,方便算法增加新的运行时依赖。
6.3 云仿真平台测试评价应用
云仿真平台前端提供了用户管理,资产管理,任务管理等多种功能,同时支持场景编辑、导入、导出和泛化,仿真引擎是分布式架构实现,依赖云原生部署方式,可以通过横向扩展快速支持多路仿真测试的并发运行。

(1)用户管理支持复杂组织架构 (2)资产管理:灵活管理用户/组织架构的数字资产,兼顾用户的保密和共享需求。 (3)任务管理 1)对于用户触发的任务进行完整的生命周期管理;2)通过队列管理不同用户触发的测试任务/任务集,基于公平原则,在平台总并发量受限的前提下,保证不同用户可以获取运行测试任务的机会; 3)支持多路并发。 (4)支持案例等数字资产编辑,导入/导出及泛化。(5)提供基于 RestfulAPI 的 CD 接口,方便对接CI/CD 系统,进行算法版本升级。
国家智能网联汽车创新中心研发旨在为自动驾驶算法的研发、测试和实施提供服务的云仿真测试平台(图 2-44)。该平台以场景数据库为基础,内置90余款车辆模型和 9 类自动驾驶功能场景泛化模板。平台适配国内外多种仿真软件,如 51Sim-One、VTD 等。为了适应不同的计算资源,支持GPU 和CPU两种集群仿真计算模式,并具备可扩展的弹性计算能力,最多可支持1000 个节点并行测试。平台能够监听算法仓库,在周期性触发测试任务(CI/CD)方面自动化程度高。测试完成后,平台能够自动生成测试报告,同时允许自定义配置场景、权重和规则。客户可以根据需求定制化测试指标和测试用例集,灵活配置传感器模型和车辆模型,快速部署算法。通过云端集群的高并发执行测试任务,并对算法进行分级评估,以完成测试验证。
2022 年该平台承担了第二批 ICV 创新算法攻关任务中任务九、任务十的测试,为参赛赛队提供算法测试服务,赛队作品测试共计100 余次,推动复旦大学、香港理工大学等赛队完成算法迭代。截至目前,该平台已支撑了包括多功能车无人接驳算法和东风悦享小巴算法在内的多项自动驾驶算法的仿真测试。