分布式技术在无人驾驶汽车中的应用

作者:张轩博

1「自动驾驶汽车系统特点」

自动驾驶汽车是复杂的分布式系统。它结合了视觉,雷达,激光雷达,接近传感器,GPS,地图,导航,规划和控制等组件。这些不同的模块必须组合成可靠、安全、牢固的系统,并可以实时分析复杂的环境并对其做出正确反应。

1.1 可靠性

如果发生了短至5毫秒级别的停机事件,自动驾驶系统必须不受影响,可以继续稳定运转,并恢复至正常状态。如果发生了长达5分钟以上的停机事件,该系统还可以切换至可靠的备用系统,并将该车移动到安全的区域供乘客安全离开。

作为一辆高速行驶的自动驾驶汽车,不同的分布式原件在工作时会持续不断地进行实时运算,它需要在毫秒、甚至微妙级别进行数据量十分巨大的实时数据的搜集、运算、融合工作。如果系统性能没有达到预期要求,则自动驾驶的基础功能将无法得到实现。

1.2 复杂性

自动驾驶汽车系统通常由多个团队采用不同的技术、不同的编程语言在不同的操作系统上进行实现。由于这样导致的多样性,集成和升级这些系统就变得非常复杂。

传统的系统集成方案依赖于通过底层的消息通信技术来对消息解释和信息管理服务与上层应用逻辑之间进行解耦。但是由于系统中不同应用程序之间的消息解释机制、状态管理、可靠性策略以及故障处理机制均不相同,这种做法会提高整个系统的复杂性。

1.3 异构性

自动驾驶汽车系统通常以异构的方式存在,不同的子系统通常会采用不同的计算机硬件、操作系统以及编程语言。各个子系统的开发者也会根据需求采用不同的编程语言进行开发,比如利用JAVA、.NET以及WEB脚本来开发终端和GUI应用,并使用C/C++开发硬件相关的设备驱动或者对时间性能要求较高的应用。子系统间的操作系统也存在很大差异,Linux、Windows以及QNX、VxWorks等操作系统被广泛应用。

1.4 安全性

对于自动驾驶系统来说,安全性至关重要。任何自动驾驶汽车如果达不到安全要求就上路是极其危险的。目前,针对自动驾驶汽车攻击的方法多种多样,渗透到自动驾驶系统的每个层次,包括传感器、操作系统、控制系统、车联网通信系统等。

首先,针对传感器的攻击不需要进入无人驾驶系统内部,这种外部攻击法技术门槛相当低,既简单又直接。第二,如果进入自动驾驶操作系统,黑客可以造成系统崩溃导致停车,也可以窃取车辆敏感信息。第三,如果进入自动驾驶控制系统,黑客可以直接操控机械部件,劫持自动驾驶汽车去伤人,是极其危险的。第四,车联网连接不同的自动驾驶汽车以及中央云平台系统,劫持车联网的通信系统也可以造成自动驾驶汽车之间的沟通混乱。

2「RTI Connext DDS在自动驾驶系统中可满足的需求」

由于RTI Connext DDS在高性能、大规模的IIoT系统中已被证明是最成熟的中间件,它的诸多特性可以满足自动驾驶系统中苛刻的各类需求。

2.1 确保冗余系统的可靠性

理想的自动驾驶系统是高可靠的、不能出现任何错误的实时系统,微妙级的系统故障有可能会酿成无法预估的损失。RTI Connext DDS通过简化构建完全冗余系统的难度来满足数据持续可靠、可达的需求,这些数据的来源可以是由计算机、传感器、云端等任意一种。

RTI Connext DDS还允许通过在中间件收到多份数据时、仅向上层应用递送一份有效数据来进行智能的冗余网络传输。

图3.1 IIoT可靠性关键应用

如上图3.1所示,大坝、水电站可以通过改变水流速度快速调节其功率输出,从而有助于电网平衡,所以即便是几毫秒的意外停机也可能威胁到电流的稳定;空中交通管制面临类似的需要持续运作的需求,系统短暂的故障危及数百班航班;质子束放射治疗系统必须保证治疗期间的精确操作,手术过程中任何数据的丢包将对患者造成无法挽回的损失。

2.2 确保实时响应

“实时性”的核心更多得是保证响应的准确性而非迅速性。许多系统需要较低的平均延迟(传送延迟),然而真正成功的实时系统却只是保证它在任何情况下,都能在规定的最大延迟时间内进行响应。最大延迟时间通常为平均延迟加上因网络抖动而增加的最大延迟时间。即使是具有低平均延迟的快速服务器也可能会遇到较大的网络抖动,从而无法确保在规定的最大延迟时间内进行响应。

RTI Connext DDS通过无服务器、无代理的模式直接发送节点之间的消息,并尽可能通过使用多播、优化发送和接收代码路径的方式来保证实时性能。

图3.2 实时应用程序

如上图3.2所示,RTIConnext DDS中间件在需要精准控制延迟的系统得到广泛使用。例如,海军武器系统必须跟踪和击落入射导弹;医疗机器人具有高达3kHz的采样频率;CT(计算机断层)成像仪需要极快的X射线成像、以及伺服控制响应,并拥有多通道的实时视频切换器。

2.3 解耦系统复杂性

自动驾驶汽车系统管理许多变量,这些变量存在非常复杂的状态关系,而DDS最擅长的就是解耦复杂性。

大型系统通常包含许多“模块”,每个模块通常是由独立开发团队独立构建的独立应用程序。模块规模的大小往往反映了构建架构的难易程度,因为系统集成本质上是一个“N平方”的问题,例如连接5个不同的节点需要c_5^2=10条不同的连接线路,而连接6个不同的节点则需要多达c_6^2=15条不同的连接线路。每个不同的新团队在系统中都代表着不同的软件接口。由单一团队开发小型项目可以轻松地指定接口规范,即便这些规范不是很正式也不会影响到项目的开发进度。而由多家独立开发团队组建的大型项目则面临着艰巨的系统集成挑战。系统集成甚至可能花费超过一半的开发时长,且充满风险。

图3.3 大型系统集成

自动驾驶汽车与许多智能的大型系统一样,都需要整合多家的独立开发团队。以下的项目都使用RTIDDS成功集成了它们的大型系统:(1)Audi(奥迪)的闭环硬件仿真系统必须支持多达数百个ECU的开发需求;(2)DDG-1000(朱姆沃尔特级驱逐舰)船载系统集成了由多达1500个团队开发的超过1000个软件模块;(3)GE(美国通用)的智能医疗系统集成了数百种不同类别的医疗设备。

在这些大型系统中,软件接口的通用性往往决定了子系统间互操作的难度。依赖于不断发展架构的模块或模块组件必须能够继续与该架构的旧版本进行互操作,因此,解决系统集成问题的方式变得十分关键。以数据为中心的系统直接提供并控制接口,从而简化了系统集成。数据库通过建立和控制明确的“数据表”来简化系统集成,从而允许多个应用程序以受控的方式访问信息。但是,数据库只能提供静态的数据。大多数自动驾驶以及IIoT系统除了需要静态数据外,更多的是需要动态数据。

对于分布式系统,以数据为中心的中间件是一个较新的概念。与数据库数据表类似,以数据为中心的中间件允许应用程序通过显式的数据模型进行交互,并可检测模块之间的接口差异,以适应于架构的模式向每个端点递送其所期望的数据内容。因此,通过使用以数据为中心的中间件可使应用程序接口去耦合,以在大型项目中以并行的方式逐步完善软件接口。

图3.4 典型的自主驾驶汽车系统架构

DDS可以将自主驾驶汽车系统中的多个组件方便地集成在一起。以数据为中心的接口意味着模块间的相互作用都将得到严格的控制,包括:模式匹配、速率、可靠性和系统运行状况。如图3.4,每一个组件都是一个复杂的模块。有力的系统集成方法可让团队安心地独立工作,因为它可保证系统框架直接支持系统范围内所囊括的所有数据交互需求。

2.4 保证安全性

对于自主驾驶汽车系统而言,安全性至关重要。为了确保安全模块能够正常工作,它必须与架构紧密结合在一起。例如,“核心”标准可能支持各种模式和交付功能。对应的,安全设计必须与这些模式、功能精确匹配。再例如,如果连接支持发布/订阅模式,则安全性也必须支持;如果核心支持多播,那么安全性也必须支持;如果核心支持动态即插即用的发现机制,则安全性也必须支持。

与框架结构紧密结合的安全性组件可以在任何时候加载、执行,且不需要修改代码。安全性成为另一个受控制的QoS(服务质量),尽管配置较为复杂,但功能十分强大。

图3.5 数据流级别的安全。

DDS标准安全模型支持所有关键的安全组件,包括身份验证、访问控制、加密、标记以及日志记录,甚至是不可抵赖性。对不可抵赖性的需求因恶意发送方而引起。不可抵赖性保证了恶意发送方无法在事后抵赖其创建并发送特定消息的事实。这就意味着不可抵赖性保证了消息的发送方与消息的创建者为同一人。

安全元素不是“用户”或“管道”,而是实际的系统模块。通过简单的配置可以控制具体的模块读写哪些数据,以这样的方式可以使安全架构与连接性架构完全匹配。在上图中,感知模块只能影响状态。计划模块可以读取状态并设置告警。控制可以读取状态并影响载具。安全性模块可以读取任何信息并控制车辆。这种级别的安全限制了对任意模块的破坏所产生的影响。

2.5 部署更加灵活

以数据为中心的设计意味着只关心数据交互。因此,模块可以在系统中的任何地方运行。甚至可以有运行可靠性模块的冗余副本。而且位置、芯片架构、语言和操作系统的差异是完全透明的。

图9 灵活部署性

数据中心将物理位置,传输,芯片架构,语言和操作系统与操作分离开来。因此,系统设计者可以在物理位置之间移动模块。只要满足数据关系,系统就会工作。随着团队的评估,原型设计,测试,生产和维护,配置可能会发生变化。在系统配置发生变化的过程中,使用DDS可以确保无缝连接全仿真、半仿真、全物理模块。

2.6 简单的安全认证

DDS已经在许多安全关键系统被证明是可靠的商业化网络中间件产品。其中最苛刻的是一种叫做地面感知、预防(GBSAA)系统,它允许自动驾驶飞机通过美国国家航空航天(NAS)的验证,作为该系统运作的一部分,RTI的一版Connext DDS产品通过了全部DO178CLevel FAA最严格的标准认证。认证包括940个高级需求,3,680个低层次需求,3400个测试文件(其中许多有多个测试用例)以及99.88%的代码覆盖测试。

ISO26262道路车辆功能安全规范是最重要的自动驾驶汽车规范,而A级DO178C标准提出了更高的要求。因此,RTI的Connext DDS Cert产品可以直接支持需要安全认证的车辆。重要的是,团队可以使用功能强大的“完整”DDS进行开发,然后部署具有完全可认证的中间件的关键模块

通过认证的中间件还可用于分离用户代码模块。作为隔离层,中间件可将系统为多个可分离的模块。因此系统可以轻松地将关键组件与非关键子系统相结合。RTI对冗余的分散支持,自动故障转移,无服务器操作和动态升级使昂贵的认证系统更加模块化,从而降低了认证成本。由于认证版本小得多,与“完整”版本互操作,开发人员可以混合搭配功能而不增加任何认证成本。

3「RTI DDS在无人驾驶汽车领域的真实用例」

虽然在自动驾驶汽车的实现中某些设计细节仍是受到严格保护的机密,但部署在相关市场的DDS已经提供了足够多的信息,来表明它具有能力来解决当今最具挑战性的连通问题。

汽车制造商中熟知的品牌如奥迪、大众等,已经引进了RTI Connext DDS来提供高性能的连接,在测试和改进当今的智能汽车上发挥了很大作用。下面将举出在自动汽车领域中具有一个或多个共同连接需求的用例。在自动汽车的实际用例中,几个需要被贯穿的要点分别是:可靠、集成、性能以及安全。系统必须拥有足够的性能以确保成功地连接各组件、并优化自动化驾驶系统中的各级安全,使其更容易集成那些来自不同组件的复杂软件。

3.1 大众公司V-Charge

大众公司使用RTI DDS来帮助司机:避开障碍、检测车道偏离、跟踪眼部活动、以及安全地拐入弯道。DDS协议连接着所有必需的组件,用来创建出满足驾驶员辅助特征以及一体化安全特征的独立、智能的机器。

在实现全自动驾驶汽车的道路上,大众公司已经利用RTI DDS技术达到了某些重要的里程碑。在2013年,德国大众公司使用部署在电动汽车上的DDS中间件实现了让乘客下车后、可自动前往并离开充电站、再到达停车位的功能。

该项目涉及多个公司与多个开发团队合作。DDS的共享数据模型是所有这些系统之间的通用数据总线。并且通过CAN到DDS的适配器,可以将预先存在的组件与新的RTI DDS数据总线集成。

3.2 奥迪HIL测试平台

奥迪公司推出了基于DDS通信平台的HIL测试平台。RTI DDS给予公司以一个灵活的方式来连接多个仿真设备供应商的系统,并将多个组件和供应商集成到HIL平台中。该系统模拟整个汽车,并使用实际的ECU组件与所有并行运行的仿真组件结合。通过DDS可以实现故障切换和冗余支持来确保组件通过故障以继续测试。

4

「总结」

对于复杂的无人驾驶系统来说,连通性是成功的关键。RTI DDS标准提供了可靠、灵活、实时、安全的连接,RTI DDS在超过10亿美元的产品线中被证明是可以信赖的产品。

由于具有广泛的QoS(服务质量)过滤和传输控制,DDS可实现一个极其优化的系统。通过QoS,RTI DDS适用于各种不同的组成部分,包括图像感知、地图、导航、车辆连接、决策和策划、UI显示和可视化、以及车辆控制等等;它还可以在适应低延迟数据的同时,处理巨大的视频和传感器数据;通过自然的管理冗余,开发人员可以轻松地实现双重或三重冗余,而不需要大量额外的工作;他将可以将安全控制添加到需要加密的数据流中。

DDS还可分离模块,使认证更容易,成本也更低廉。

因此,通过利用DDS微秒级延迟的性能、易扩展的特点、以及IEC 26262安全认证和顶级安全性的属性,可大幅度简化开发、集成、调试和部署的整个过程。

上海创景信息科技有限公司

致力于智能化设备与系统更安全、更可靠!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171208G0MYS200?refer=cp_1026

相关快讯

扫码关注云+社区