在自动驾驶系统中,SOA(Service-Oriented Architecture)中间件可以用于实现不同模块之间的通信和协作。它提供了一种基于服务的架构,使各个模块能够以独立的方式进行开发、部署和扩展。

以下是一些常见的 SOA 中间件,可以在自动驾驶系统中使用:

  1. ROS (Robot Operating System):ROS 是一个广泛应用于机器人领域的开源中间件。它提供了一系列工具和库,用于实现模块化的自动驾驶系统。ROS 支持消息传递和服务调用,允许不同模块之间的数据交换和功能调用。

  2. DDS (Data Distribution Service):DDS 是一种面向消息的中间件标准,用于实现高性能、实时的数据分发和集成。DDS 提供了一种松散耦合的通信方式,支持发布-订阅模式和点对点模式,适用于分布式自动驾驶系统中的数据交换。

  3. Autoware:Autoware 是一个开源的自动驾驶软件平台,基于 ROS 和 DDS 构建。它提供了一套完整的模块和算法,用于感知、规划、控制等任务。Autoware 使用 ROS 和 DDS 实现模块之间的通信和数据共享。

  4. Apollo:Apollo 是一个开源的自动驾驶平台,由百度公司开发。它采用了基于 ROS 和 DDS 的架构,提供了感知、规划、控制等模块,并支持高精地图和传感器融合。Apollo 使用 ROS 和 DDS 进行模块间的通信和数据交换。

ROS也是基于DDS进行开发的中间件系统,即Topic模式进行发布和订阅。目前主流的是ROS2,相比于ROS1需要core节点来统一管理所有通讯节点,ROS2实现了节点之间的直接通讯,这样做是防止core节点挂死导致所有节点都无法通讯。百度在Apollo开发的时候ROS2还没有面世,Apollo也是基于DDS特性开发,一定程度上可以说是ROS2的百度版本,但是Apollo相比ROS2对自动驾驶领域有更好的适配性,ROS2则面向自动驾驶和机器人领域都有广泛应用。

DDS与SOME/IP

DDS(Data Distribution Service)和SOME/IP是两种不同的通信协议,用于实现分布式系统中的消息传递和数据分发。

DDS是一种开放标准的消息传递协议,旨在解决复杂分布式系统中的数据通信需求。它提供了一种高度可扩展、实时性强的消息传递机制,支持发布-订阅模式和请求-响应模式。DDS可以实现数据的快速、可靠、安全地共享,适用于各种领域的分布式应用。

SOME/IP(Scalable service-Oriented MiddlewarE over IP)是一种通信协议,专门用于汽车电子系统中的服务发现、调用和消息传递。它基于IP网络,提供高可扩展性、低延迟和高带宽的通信。SOME/IP可以用于车辆内部的软件组件之间的通信,也可以用于车辆与外部服务器之间的通信。它具备实时性、可靠性和安全性。

虽然DDS和SOME/IP都是用于分布式系统中的通信,但它们有不同的设计目标和应用领域。DDS更加通用和灵活,适用于各种分布式应用场景,包括自动驾驶系统。它提供了丰富的特性和机制,例如面向数据的通信、数据过滤和订阅者选择等。SOME/IP则更加专注于汽车电子系统中的通信需求,提供了针对汽车领域的特定功能和优化。

在DDS标准下,每个订阅方或发布方只需要在自己的程序里面订阅或发布传感器数据就行了,不需要关心任何连接。可以理解为,在DDS中,服务订阅方和发布方的解耦更加彻底,需要什么数据,写一行代码就行了,不需要再去做绑定。

在SOME/IP中,在正常数据传输前,client需要与server建立网络连接并询问server是否提供所需服务,在这个层面上,节点间仍然具有一定耦合性。服务的订阅方需要知道server在哪里,服务的发布方需要告知server提供哪种服务;

可以把some/ip理解为一种基于tcp/udp的应用层传输协议,也就是必须基于网络才能实现通讯,而DDS可以不局限于某一种通信方式,只是负责消息的处理。

DDS和SOME/IP的区别

  •     资源占有大小不同:

    SOME/IP强调通信,体量比较小.
    DDS功能更多,但体量比较大,需要裁剪后才能用于自动驾驶.

  •     使用场景不同:

    DDS是一套面向数据的访问系统,适合多节点、大数据交互的应用场景;
    SOME/IP是一套面向服务的访问系统,可以很方便地用于RPC(远程过程调用)以及变更通知。

  •     灵活性、可伸缩性不同:

    相较于SOME/IP,DDS引入了大量的标准内置特性,例如基于内容和时间的过滤、与传输无关的可靠性、持久性、存活性、延迟/截至时间监视、可扩展类型等。

参考文档

https://blog.csdn.net/usstmiracle/article/details/130586653icon-default.png?t=N7T8https://blog.csdn.net/usstmiracle/article/details/130586653

https://blog.csdn.net/xhtchina/article/details/123769162icon-default.png?t=N7T8https://blog.csdn.net/xhtchina/article/details/123769162

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐