【自动驾驶】8. MDC通信架构 + DDS + SOME/IP

2024-06-16 21:18

本文主要是介绍【自动驾驶】8. MDC通信架构 + DDS + SOME/IP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

对于AP框架,感知融合模块中,由于PreFusion通信数据量大,所以采用带宽较大的DDS(Data Distribution Service)通信协议,其余节点传入数据量较小,采用SOME/IP(Scalable Service-Oriented Middleware over IP)通信协议。融合模块与规控模块之间通信为DDS通信协议。规划控制模块内各节点之间均采用能够处理大数据量的DDS通信协议。

DDS主要用于内部通信高性能场景,SOME/IP主要用于与外部部件对接的通信场景,如与Classic AUTOSAR对接。
AP的通信协议分为DDS和SOME/IP。DDS的通讯协议又分为SHM(SHare Memory)和UDP(User Datagram Protocol),SHM为域内通讯协议,UDP为芯片间通讯协议。


节点间的交互情况如下
  • CameraPerception节点从Camera中以SHM通信协议获取图像信息,对图像进行初步处理后,将障碍物列表信息输出给PreFusion节点。
  • RadarPerception节点采用SOME/IP通信协议,通过MCU(Microcontroller Unit)从Radar中获取毫米波雷达信息,并从Gps_localization获取车辆自身状态参数(包括自车位置、车速、航向信息等),对获取到的信息进行初步处理后,将障碍物列表信息输出给FullFusion节点。
  • LidarPerception节点采用SHM通信协议从Lidar中获取激光雷达信息,采用SOME/IP通信协议从Gps_localization获取车辆自身状态参数(包括自车位置、车速、航向信息等),对获取到的信息进行初步处理后,将障碍物列表信息输出给FullFusion节点。
  • PreFusion节点采用SHM通信协议从Lidar中获取激光雷达的信息,采用SHM+UDP通信协议从CameraPerception节点获取障碍物列表信息,以及采用SOME/IP通信协议从Gps_localization节点中获取车辆自身状态参数(包括自车位置、车速、航向信息等),再对获取到的信息进行初步融合,输出新的障碍物列表信息给FullFusion节点。
  • FullFusion节点分别从RadarPerception、LidarPerception和PreFusion节点获取障碍物列表信息,并从Gps_localization获取车辆自身状态参数(包括自车位置、车速、航向信息等),对获取到的信息进行最终的融合,得到可用的障碍物列表信息,然后将该信息输出给BehaviorPlan和MotionPlan节点。
  • MCU采用SOME/IP的通信协议将GPS/IMU、车辆底盘线控系统等信息输出给Vsomeipd节点。MCU接收GPS/IMU传感器信息的方式为串口通讯,接收线控系统信息的方式为CAN总线通讯
  • Gps_localization节点接收GPS/IMU信息,获得车辆自身状态参数(包括自车位置、车速、航向信息等),然后将这些信息输出给MissionPlan、BehaviorPlan、MotionPlan、Transform等节点
  • MissionPlan节点接收GPS/IMU信息,获得自车定位,并按照HMI界面设定的终点、途经点,根据高精度地图信息,规划出一条从起始点到终点的全局路径。然后将该路径以及高精度地图中其他信息发送出去,供其他节点使用。
  • BehaviorPlan节点为行为决策节点。该节点接收周围环境信息(包括GPS/IMU信息、高精度地图信息、周围障碍物信息、车辆自身信息等),经过决策,输出无人车应当执行的行为,并给出行为相关的边界信息,提供给MotionPlan节点进行轨迹规划。
  • MotionPlan节点接收GPS/IMU信息,包括行为决策信息、周围障碍物信息、车辆自身状态信息等,然后根据这些信息规划出一条最优的路径(包含位置坐标和速度信息的曲线),再将最优路径输出给Transform节点。
  • Transform为坐标转换节点。该节点的功能为将MotionPlan节点提供的信息从UTM坐标转换到车辆坐标系,输出给Control节点。
  • Control节点接收Transform节点转换之后的最优路径信息,然后结合车辆自身状态计算车辆横向及纵向的控制量(方向盘转角、油门开度、制动强度等),输出至车辆线控层,由执行器执行相应控制量.
  • Vehicle Abstract节点为车辆抽象节点。下行负责将Control节点发送的控制信号进行转换,并发送至MCU;上行又称为Vehicle Report节点,负责将MCU采集到的车辆状态信息进行转换,并发送至Conctrol、Transform、MotionPlan和BehaviorPlan节点。
  • Vsomeipd是信息传输路由节点,为采用SOME/IP通信协议的节点提供数据转换,如:Vehicle Abstract、GPS Abstract节点采用SOME/IP通讯协议将数据传输给其他节点(GPS_localization也需要通过Vsomeipd节点进行数据转换,在图中为了更好的体现出数据通路没有画出),数据经过一定的方式处理后输出给MCU。
  • Vehicle Abstract节点为车辆抽象层,GPS Abstract节点为GPS抽象层,这两个节点主要负责将Vsomeipd节点输出的相应数据进行解析,输出给其余各节点进行决策规划及控制量的计算。

请提前规划好Service Interface Id和Service Instance Id,防止发生ID冲突。ID取值范围为101~150。

  • Service Interface:服务接口,定义接口数据类型和通讯协议等,通过不同的Service Interface Id来区别服务接口,该参数需要保证全局唯一。
  • Service Instance :服务实例,由Service Interface实例化而来,通过不同的Service Instance Id来区别通讯的服务实例,该参数需要保证全局唯一。

ARXML是AUTOSAR Adaptive Platform用于生成节点之间相互通信的数据类型(以头文件体现)以及通信规则(以json格式体现)。ARXML主要通过MDC Manifest Configurator工具进行配置。配置前需要规划接收接口、发送接口、通信的数据类型以及通信方式等。

CM(Communication Management)
如果应用实现不需要调用CM(Communication Management)相关的接口代码,则只需要配置Application Manifest、Machine Manifest和System Manifest即可。

在这里插入图片描述


通信方式

CM包含三种通讯方式:Event、Method与Field。

  • Event通讯方式是在服务发现后,从服务端发送数据,由客户端进行接收,单向传输数据。
  • Method通讯方式是先由客户端发送请求,服务端收到请求后会处理客户请求并返回应答。
  • Field通讯方式分为Setter、Getter与Notifier方法。其中Notifier与Event工作模式类似,Getter与Setter与Method方法类似。
    在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


SOME/IP协议通讯注意事项

若应用需要使用SOME/IP方式进行通讯,请注意以下几点:

  • 1.必须先启动someipd,再开启服务端与客户端应用进行通讯,且someipd程序必须先于所有应用程序启动。
    someipd是SOMEIP的后台进程,负责服务发现、数据转发等功能。
    someipd程序的启动需要通过环境变量指定“vsomeip.json”配置文件,可通过如下方式指定:export SOMEIP_CONFIG_FILE=/<文件目录>/vsomeip.json
    然后,运行someipd可执行文件。someipd可执行文件目录为/<deb解压位置>/usr/local/AdaptiveAutoSar/bin
  • 2.关于“vsomeip.json”配置文件的生成,用户可以选择将主机上所有Application的ARXML配置文件全部输入代码生成工具生成,也可以选择手动配置(将各APP单独生成的“vsomeip.json”文件组合,主要组合“vsomeip.json”中services、applications、clients中的内容)。
  • 3.someipd对应配置文件中必须包含该主机对外通讯需要的所有服务信息。
  • 4.一台主机上只允许启动一个someipd。
  • 5.应用于someipd的“vsomeip.json”配置文件必须配置service-Discovery信息。具体配置需要参考配置项。

QoS(Quality of Service)服务质量
在这里插入图片描述

这篇关于【自动驾驶】8. MDC通信架构 + DDS + SOME/IP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067570

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A