第24課、ros原理1
apoollo ros對ros的改進
(1)通訊效能優化:首先,我們看看為什麼要進行通訊優化,主要有以下幾點原因:
①自動駕駛大量使用感測器引發很大的傳輸頻寬需求。自動駕駛使用大量的感測器,這些感測器的資料量非常龐大。大量資料在目前ros的通訊架構裡面會帶來比較高的延遲或是丟幀。節點之間通訊是一幀一幀進行的,如果上一幀訊息高延遲時,下一幀訊息的傳送就需要等待。ros提供了這種訊息丟棄的機制,如果等待時間長會丟棄一些資料,資料丟棄在實際自動駕駛系統中會造成比較大的風險。
②單路感測器訊息有多個消費者時負載成倍增長。自動駕駛系統傳送感測器資料是一對一進行的。例如lidar向自動駕駛系統傳送資料時,如果只有乙個訂閱節點,傳輸的資料量是7m乘以10hz,也就是70mb/s。自動駕駛系統是乙個比較複雜的拓撲結構,乙個感測器資料可能會有很多的下游訂閱節點。例如感知的障礙物檢測、通過視覺定位的模組、用紅綠燈識別等都會訂閱camera資訊。在單點的情況下是一對一,如果是一對多,傳輸的資料會被複製多次,造成網路負載成倍增加。
③針對這一問題,apollo ros做了乙個基於共享記憶體的通訊機制減少資料的複製次數,從而提公升這種通訊模式的效率。
④如上圖所示,左側是ros原生的通訊框架,乙個資料從傳送方到接收方經歷四次資料複製。第一次是從節點到使用者記憶體的資料複製,第二次是從傳送方到核心的資料複製,第三次是經過tcp連線,從核心再向接收節點使用者態空間的複製,第四次是接收節點拿到這個資訊之後,通過反序列化把資訊取出來組成乙個結構變化的資訊。
⑤右側是apollo ros優化後的框架,它基於共享記憶體改進,可以減少兩次資料拷貝。第一次是傳送節點把訊息序列化成流式資料,第二次是接收節點直接從共享記憶體裡面取相應的訊息指標,把共享記憶體訊息取出來進行反序列化成結構化資訊進行使用。減少了從使用者到核心態以及從核心態到使用者的兩次資料拷貝。
⑥對於有多個訂閱節點的情況,例如camera下游會有很多訂閱節點,如果是三個節點,會有三條通訊鏈路,分別是四次的記憶體拷貝,也就是12次資料拷貝。而在基於共享記憶體的通訊方式下,每一條鏈路記憶體拷貝的次數只需要兩次,三條鏈路只需要六次。
(2)訊息通訊延時:隨著訊息逐漸增大,基於共享記憶體通訊延時比基於原聲ros socket的通訊延時降低一半。以5m資料為例,傳送一幀5m大小的資料,基於ros socket大概需要四毫秒左右的時間,基於共享記憶體通訊只需要兩毫秒左右。
(3)吞吐量:整個自動駕駛系統的網路拓撲結構非常複雜,資料流向的拓撲結構也比較複雜。在一些極端的情況下,整機資料量會增加。在一些多車道,路面狀況比較複雜,車輛較多的情況下,感知和planning模組,或者和其它模組之間的資料流就會成倍增加,所以在測試一些極端情況下,系統吞吐量也是自動駕駛需要考慮的乙個重要方面。
(4)cpu資源佔用率:cpu資源佔用率在共享記憶體通訊情況下降低約30%, 主要是因為減少了多次記憶體複製。
大三小學期高階課程第三十四課 感知的未來
第34課 感知的未來 sensor迭代 1 如果在自動駕駛的研究中,發現某一類感測器在感知或者其他模組中具有很大的價值。2 那麼,整個資本市場會投入很多人力 財力研發感測器。隨著量產之後,感測器的成本就會大幅下降,更新換代就比較快。深度學習 資料 ai晶元 1 深度學習已經證明了在感知中有很大的作用...
大三小學期高階課程第三十二課 感知演算法
第32課 感知演算法 點雲感知 1 點雲障礙物感知的主要任務是感知障礙物的位置 大小 類別 朝向 軌跡 速度等。核心是點雲檢測分割技術,可以用啟發式演算法ncut和深度學習演算法cnnseg完成。啟發式方法 ncut 1 ncut演算法的基本思想是基於空間平滑性假設,即空間上接近的點來自同乙個障礙物...
大三小學期高階課程第五課 硬體開發平台介紹
第5課 apollo硬體開發平台介紹 從自動駕駛研發的流程角度看,大致可以分為以下4個步驟 a 軟體在環 軟體在環是基於 和模擬的軟體 類似於賽車類遊戲。即是在軟體系統裡 模擬出真實的道路環境如光照 天氣等自然環境,開發者可將自動駕駛 開發完畢後,在 系統內執行,測試是否可以實現目標。b 硬體在環 ...