技术领域
[0001] 本
发明属于自动驾驶技术领域,涉及传感器、
控制器的通信,具体涉及嵌入式传感器接入平台与
数据处理单元之间实现DDS服务的方法。
背景技术
[0002] 21世纪初,自动驾驶借助于AI技术快速发展,自动驾驶从技术方面可以拆解为环境
感知、精确
定位、决策与规划以及控制与执行。与传统车企一样,自动驾驶仍然需要借助于车载多传感器做环境感知,但是无论从
软件还是
硬件考虑,要保证整个系统的高可靠性和高
稳定性;通常硬件方面重要传感器、域控制器需要做冗余备份,软件方面需要提供完善的异常恢复机制,以保证整个平台健壮。
[0003] 目前,国内自动驾驶公司通常采用
机器人操作系统ROS (Robot Operating System)构建自动驾驶软件平台,ROS的优势在于广泛应用于工业控制,提供基于消息的发布-订阅分布式通信机制,易于多传感器集成;但是同时,ROS依赖于UBUNTU或者WINDOWS操作系统,势必对硬件平台有一定要求,做硬件冗余备份,硬件成本增加;另外,ROS各传感器
节点通信,赖于ROS Mater为中心,缺乏异常恢复机制,一旦ROS Master异常或者拥塞,将影响整个系统消息通信。
[0004] 相对于ROS,数据分发服务DDS(Data Distribution Service for Real-Time-Systems)同样可以实现分布式通信,使用RTPS服务发现协议实现完全的P2P节点关联,构建无中心化的网络拓扑,并提供丰富的QoS服务
质量策略,包括异常恢复;同时DDS标准化了分布式实时系统中数据发布、传递和接收的
接口和行为,定义了以数据为中心的发布-订阅(Publish/Subscribe)机制,提供了一个与平台无关的数据模型,本方案基于低成本的嵌入式构建传感器接入硬件平台,与数据处理单元分离,同时搭载嵌入式实时操作系统,运行精简Micro DDS,与数据处理单元实现完全的DDS服务消息通信。
发明内容
[0005] 发明目的:为了克服
现有技术中ROS系统存在的不足,本发明提供基于DDS协议的自动驾驶分布式通信方法,同时考虑硬件冗余备份成本,采用嵌入式硬件,并实现DDS服务。
[0006] 技术方案:为解决上述技术问题,本发明提供的在嵌入式传感器接入平台实现DDS服务的方法,嵌入式硬件做为传感器(GPS、IMU、毫米波雷达、
超声波雷达等)接入平台,和数据处理单元之间基于DDS服务消息通信;所述嵌入式硬件作为传感器接入平台,采用低成本硬件并搭载嵌入式实时操作系统。
[0007]
数据采集与数据处理分离,提高系统稳定性,多个嵌入式硬件经DDS服务联接一个数据处理单元,达到传感器接入平台冗余备份。传感器可自适应接入主备嵌入式硬件、不同硬件接口,实现不依赖具体硬件接口的驱动,根据接入
传感器数据类型,进行数据解析发送,实现快速部署
[0008] 基于嵌入式实现DDS服务,报文交互完全遵循DDS规范。
[0009] 1)首先在网络中,传感器接入平台周期性发送组播去发现(Discovery)数据处理单元;
[0010] 2)数据单元根据连接
请求,回复ACK,携带自身IP地址,传感器接入平台完成数据处理单元发现,不依赖于传感器接入平台或者数据处理单元启动顺序。
[0011] 3)在发现(Discovery)完成后,DDS创建基于UDP的会话(Session),携带标示传感器数据节点的唯一KEY值;
[0012] 4)向数据处理单元注册数据类型(Topic Type)、名称(Topic Name)以及QoS策略;QoS策略包括最可靠(Reliability)与最高效(Best Effort)两种数据传输策略选择,其中最可靠策略中,发布者通过订阅者应答(Ack)确认数据是否正常接收,如果数据丢失进行重传;而最高效策略,
覆盖订阅者接收队列中未处理的旧数据,确保最新数据及时传输;同时支持节点所有权的权重(Ownership strength)设置,不同节点,权重越大拥有数据发送权。
[0013] 5)创建数据发布者(Publisher)或者订阅者(Subscriber),同样携带数据类型和名称。
[0014] 6)创建对应数据读写(DataWriter/DataReader)实例。
[0015] 7)如果数据处理单元存在数据类型和名称相同的发布/订阅节点,传感器接入平台与数据处理单元节点互相发现,完成关联,进行数据通信。
[0016] 8)数据处理单元周期性向传感器接入平台发送心跳(Heartbeat),告知当前数据处理单元运行情况。
[0017] 如图3所示,本方案具有高稳定性以及完善的恢复机制。
[0018] 1)采用MCU做硬件备份,降低成本。
[0019] 2)基于MCU实现DDS服务,注册QoS策略时,设置不同节点所有权的权重(Ownership strength),不同节点,权重越大优先拥有数据发送权。假设MCU1 strength为1,MCU2 strength为2,则MCU2拥有优先数据发送权,当MCU2异常时,可快速切换到MCU1。
[0020] 3)MCU实现看
门狗(WatchDog)功能,异常时,可实现快速重启(Reset)。
[0021] 4)数据处理单元DDS服务QoS策略提供存在性(Liveliness)功能,通过周期性存在包,检测是否异常,异常时自动恢复(Recovery)。
[0022] 5)数据处理单元周期性向MCU侧周期发送心跳(Heartbeat),在数据单元异常恢复过程中,MCU接收不到心跳时,重启重新发现(Discovery)数据处理单元。
[0023] 有益效果:传感器接入部分采用低成本的嵌入式硬件,具备硬件备份低成本、高稳定性、系统异常恢复快等优势;传感器可自适应接入主备嵌入式硬件、不同硬件接口,实现不依赖具体硬件接口的驱动,根据接入传感器数据类型,进行数据解析发送,实现快速部署;与数据处理单元分离,采用分布式硬件结构,降低系统异常概率;同时采用DDS服务与数据处理单元进行消息通信,提供完善的异常恢复机制。
[0024] 除以上所述的本发明解决的技术问题、构成技术方案的技术特征以及由这些技术方案的技术特征所带来的优点外。为使本发明目的、技术方案和有益效果更加清楚,下面将结合本发明
实施例中的
附图,对本发明所能解决的其他技术问题、技术方案中包含的其他技术特征以及这些技术特征带来的优点做更为清楚、完整的描述。
附图说明
[0025] 图1是本发明实施例的系统架构图;
[0026] 图2是DDS服务的报文交互示意图;
[0027] 图3是DDS服务中恢复机制的示意图。
具体实施方式
[0028] 实施例:
[0029] DDS服务在工业控制领域应用广泛,便于多传感器的接入以及数据通信,并且具备融合AUTOSAR的优势,本方案以DDS服务为
基础,完成传感器数据通信。
[0030] 如图1所示,本方案采用低成本MCU(Microcontroller Unit)做传感器接入,MCU通常具备USB口、以太网口、串口、CAN总线,方便传感器接入;搭载嵌入式实时操作系统(如FreeRTOS),并实现符合DDS规范的精简Micro DDS服务,通过DDS服务与数据处理单元进行通信,完成传感器数据发布,而数据处理由高性能数据处理单元完成。
[0031] 如图2所示,基于嵌入式实现DDS服务,报文交互完全遵循DDS规范。
[0032] 以某款常见IMU为例,采用串口接入MCU,按照自定义IMU数据格式(IDL文件) 实现串口数据的解析,包括四元素、
角速度、线
加速度等信息。
[0033] struct Imu
[0034] {
[0035] Header header;
[0036] Quaternion orientation;
[0037] double orientation_covariance[9];
[0038] Vector3 angular_velocity;
[0039] double angular_velocity_covariance[9];
[0040] Vector3 linear_acceleration;
[0041] double linear_acceleration_covariance[9];
[0042] };
[0043] 在MCU启动后,在组播地址239.255.0.2、端口7400上周期性发送发现报文,在数据处理单元回复后,发起连接请求,节点关联。
[0044] 节点关联过程中,遵循DDS规范,包括注册消息、创建发布者或者订阅者、创建数据读写实例;节点关联基础为数据类型、数据名称,本实例中定义数据类型为sensor_msgs::msg::dds_::Imu_、数据名称为rt/micro_dds/imu_raw;数据处理单元订阅相同数据类型、数据名称数据将完成节点间自动关联。
[0045] MCU任务切换为1ms,可以保证IMU数据发布的实时性。
[0046] 如图3所示,由于传感器接入平台需要进行硬件备份,对于主MCU,可设置IMU 节点QoS权重为N+1,备份MCU中IMU节点QoS权重为N,虽然主备份IMU节点同时向数据处理单元,但是权重高的拥有数据优先权。
[0047] 当某个MCU异常重启、或者完成无法工作,备份MCU拥有数据优先权,保证系统传感器数据接入正常;数据处理单元周期心跳,告知运行情况,异常恢复时,MCU重启再次进行数据单元发现、节点关联过程。
[0048] 本发明为自动驾驶传感器接入的冗余备份提供了全新的思路和方法,具体实现该技术方案的方法和途径很多,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,对附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的
选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。