日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【自动驾驶】4.分布式实时通信——DDS技术

發布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【自动驾驶】4.分布式实时通信——DDS技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近期,在汽車通信圈討論較火的話題中,DDS絕對排得上號。而對于面向服務的通信協議,DDS與SOME/IP各自的優劣?DDS能否替換SOME/IP等問題也隨之而來。孰優孰劣,今天暫且不探討這些問題,我們先來了解下什么是DDS?

?

DDS簡介

?

DDS定義:Data Distribution Service 數據分發服務,是新一代分布式實時通信中間件協議,采用發布/訂閱體系架構,強調以數據為中心,提供豐富的QoS服務質量策略,以保障數據進行實時、高效、靈活地分發,可滿足各種分布式實時通信應用需求。

?

DDS最早應用在美國海軍系統,用于解決軍艦系統復雜網絡環境中大量軟件升級的兼容性問題。在汽車領域,2018年Adaptive AUTOSAR引用了DDS,作為可選擇的通信方式之一。目前國內已有主機廠開始研究,主要針對自動駕駛相關需求,工具方面,在汽車電子領域常用的工具廠商也在開發這部分內容。不僅是汽車領域引入DDS,在機器人開發領域,最新升級的ROS2也引入了DDS中間件來傳遞信息。

?

AP Development?Workflow

(圖片來源AUTOSAR_EXP_Introduction)

?

DDS規范

?

DDS規范是由OMG(Object Management Group)對象管理組織發布的。OMG組織是一個國際性、開放性、非盈利性技術標準聯盟,由供應商、終端用戶、學術機構、政府機構推動,已經有31年的歷史;OMG工作組針對各種技術和行業制定企業集成標準,并開發可為數千個垂直行業提供現實價值的技術標準。

?

OMG制定的標準

(圖片來源OMG官網:https://www.omg.org/index.htm)?

?

DDS的相關標準包括核心協議(DDSI-RTPS,DDS-XTypes,DDS-Security,Interface Definition Language (IDL)…),API(DDS C++ API,DDS Java API),拓展協議(DDS-RPC,DDS-XML…)等13份協議集合。

?

在分布式系統中,DDS位于操作系統和應用程序之間,支持多種編程語言以及多種底層協議。這便是我們常說的跨平臺。

?

DDS中間件

(圖片來源DDS-The?Proven Data Connectivity Standard for IoT)

?

DDS發布訂閱模型DCPS

?

講具體協議之前,我們先熟悉下幾個專有名詞:

  • Domain:代表一個通信平面,由Domain ID唯一標識,只有在同一個域內的通信實體才可以通信;如果考慮車內通信,可以只劃分1個Domain,也可以按照交互規則或其他規則,定義多個Domain;

  • Domain Participant:代表域內通信的應用程序的本地成員身份,簡單來說,就是說明同一數據域內的通信成員;

  • Topic:是數據的抽象概念,由TopicName標識,關聯相應數據的數據類型(DataType),如果把車內所涉及的所有Topic集合在一起,這樣就形成一個虛擬的全局數據空間“Global Data Space”,進一步弱化了節點的概念,所以域參與者已經不是節點的概念了;

  • DataWriter:數據寫入者,類似緩存,把需要發布的主題數據從應用層寫入到DataWriter中;

  • DataReader:數據讀取者,同樣可以理解為一種緩存,從訂閱者得到主題數據,隨之傳給應用層;

  • Publisher:發布者,發布主題數據,至少與1個DataWriter關聯,通過調用DataWriter的相關函數將數據發出去;

  • Subscriber:訂閱者,訂閱主題數據,至少與1個DataReader關聯。當數據到達時,應用程序可能忙于執行其他操作或應用程序只是等待該消息時,這樣就會存在兩種情況,同步訪問和異步通知。

?

接下來,我們看一下DDS的通信模型。

根據前面介紹,我們清楚了DDS是一個以數據為中心的中間件協議和API標準,意為用戶只關心自己想要的數據,數據通過Topic進行標識,這樣發布者根據主題發布數據,訂閱者根據自己感興趣的主題訂閱數據。這便是DDS的核心,以數據為中心的發布-訂閱模型DCPS(Data-Centric Publish-Subscribe)

?

?

如果是熟悉的以服務為中心的SOME/IP中間件,我們需要做的是把數據打包成服務,之后服務的消費方向服務提供方通過SD訂閱服務中的事件組,當數據發生變化后,相應的事件報文便會發到總線上。相比之下,DDS確實很直接,直接與數據溝通。

?

QoS服務質量

?

DDS的另一重要的知識點是支持QoS(Quality of Service),目前共支持22種QoS策略,每種策略都可以應用在不同的角色上,而針對同一角色,可單獨使用一種QoS,也可以組合使用多種QoS策略。試想一下,QoS應該如何應用呢?具體能起到什么作用?

?

?

?

RELIABILITY (可靠性)

參數定義:

Kind = RELIABLE ,如果當網絡發生錯誤, DataReader可能無法收到DataWriter的樣本數據時,會對樣本數據進行重發,保證DataReader能夠收到數據;

Kind = BEST_EFFORT,如果當網絡發生錯誤, DataWriter不會重新發送丟失的樣本數據,這樣,無法保證DataReader能夠收到數據;

如果在DataWriter上應用此QoS策略,設置Kind = RELIABLE,這樣保證了DataWriter發布的數據都能被DataReader收到。

?

?

LIFESPAN (生命周期)

參數定義:

該QoS的作用是避免交付“過期”的數據,參數為時間duration,默認為無窮大,表示數據樣本永遠不會失效;如果duration設置為有限數值,同時發送方和接收方的時鐘同步,通過在發送端的源時間戳添加定義的duration字段,這樣接收方根據時間戳信息計算出數據是否已失效,如果失效了,可以直接刪除數據。

?

以上是對DDS的介紹??偨Y起來,DDS更針對的是數據本身,去建立各種機制。DDS目前已經廣泛應用于國防、民航、工業控制等領域,成為分布式實時系統中數據發布/訂閱的標準解決方案。想了解更多關于DDS的內容,請持續關注我們呦!

?

總結

以上是生活随笔為你收集整理的【自动驾驶】4.分布式实时通信——DDS技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。