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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Apollo进阶课程㊳丨Apollo平台的快速入门

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apollo进阶课程㊳丨Apollo平台的快速入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:進階課程?丨Apollo平臺的快速入門

Apollo是向汽車行業及自動駕駛領域的合作伙伴提供一個開放、完整、安全的軟件平臺,幫助他們結合車輛和硬件系統,快速搭建一套屬于自己的完整的自動駕駛系統。

上周阿波君為大家詳細介紹了「進階課程?丨Apollo自動駕駛架構介紹」。

此課程介紹了自動駕駛平臺的架構由四個部分組成:第一是最底層的車輛平臺;第二是傳感器層;第三是核心軟件層;第四是云服務層。

本周阿波君將與大家分享Apollo平臺的快速入門的相關課程。下面,我們一起進入進階課程第38期。

目錄

1.Docker

2.硬件接入

3.編譯

4.高精地圖

5.工具鏈

6.模擬和Dreamview


本節主要和大家分享Apollo的快速入門方法,包括編譯、高精地圖和實時相對地圖、一些調試工具以及新加入的計算單元模塊。

首先,我們對Apollo項目的Issue也進行了一些統計分析,結果如圖1所示。從圖中可以看出大家對感知、Build、Docker、規劃、調試等方面的內容比較感興趣。另外是在還沒有硬件的情況下,如何在理想的環境中做一些算法模塊的開發和調試。我們將就這些大家比較感興趣的問題進行講解。

??????????????????????????????????????????????????????????????????????????????? ????????????????????????圖1 Apollo問題列表統計

1.Docker

???????????????????????????????????????????????????????????????????????????????????????????????????????????????圖2 Docker模塊

Docker是一種容器的技術,它在是Linux內核的基礎上做了一些輕量級和隔離機制的優化,讓環境更小,部署起來更快。利用Docker可以使整個工程的安裝更加簡單。Docker鏡像通常是一個配置好的運行環境,包括依賴的第三方庫等,使得用戶不需要對環境編譯做過多復雜的操作。例如,在Release版本中,Apollo各個模塊是一個已經編譯好的二進制文件,可以直接運行;如果是開發版本,通常已經加載了所需的第三方庫,用戶只需要執行對應的編譯指令。

另一方面,假如你對官方提供的運行環境有疑問,或者你想在自己的硬件上部署Docker,我們也提供了對應的Docker file。


2.硬件接入

很多開發者關心如何將不同于參考硬件的傳感器繼承到Apollo平臺。要完成自己硬件的集成,需要遵循以下三步,如圖3所示:第一需要原始的 UDP(User Data Packet,用戶數據包)。第二是做一個ROS Driver方法,把驅動編譯到Apollo里面。第三是把數據發布出來。下面舉兩個例子講述具體如何操作。

???????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????圖3 Apollo環境中如何使用不同參考硬件傳感器

第一個例子是如何使用一個新型號的Camera,假設是USB接口的相機。如圖4所示,最下層是相機硬件;往上一層是一個標準的底層驅動,即Video for Linux driver;?再上一層是一個ROS Driver,最上層是Apollo可以接收到的內容。要使用該相機,主要的工作是底層硬件的解析,使得Apollo可以接收到相應的數據。

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????圖4 添加不同的相機

第二個例子是激光雷達。它大致的工作流程是:硬件通常以基于內核Socket的方式把數據傳輸給PC,PC端做一些數據處理之后發布對應的消息類型。對于激光雷達來而言,發布的是Pointcloud消息類型,該消息將被最上層的Apollo感知模塊接收如圖5所示。右圖給出了ROS Driver如何解析UDP數據包的過程。

????????????????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ????????????????圖5 如何添加不同于參考的激光雷達


3.編譯

編譯安裝Apollo的步驟大概分為三個階段,如圖6所示:第一階段是在Ubuntu環境下進行操作,包括下載Apollo源碼,安裝Docker。Docker的安裝方式有在線和離線兩種方式,大家可以根據網絡環境選取合適的安裝方式。第二階段是進入Docker,拉取Apollo鏡像,并以此鏡像創建容器。第三個階段是進入創建的容器,編譯Apollo源碼。

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????圖6 Apollo編譯過程

編譯結束之后可以做RTK循跡測試。循跡比較簡單,它包含兩個文件,核心就是一個Record,用來錄制軌跡的信息,也就是一些GPS點;另外記錄車輛底盤返回的速度信息、加速度信息、曲率、朝向等。RTK循跡測試就是把車輛底盤發出的這些主題和定位輸出進行融合。


4.高精地圖

????????????????????????????????????????????????????????????????????????????????????????????????圖7 高精地圖和實時相對地圖

圖7左側是一個高精度地圖,右側是實時相對地圖。實時相對地圖是車輛通過傳感器來感知車身周圍環境,可以幫助開放者更友好、方便地運行Apollo。


5.工具鏈

Apollo提供了一些非常有用的工具,幫助開發者提供效率,如圖8所示。

???????????????????????????????????????????????????????????????????????? ? ? ? ?????????????????圖8 Apollo提供的工具鏈列表

例如Relative_map_viewer是一個對實時相對地圖的查詢工具,可以根據Rosbag包繪制出實時相對地圖。中間的紅色是導引線,左右兩側是道路的邊界,斷斷續續是因為車道線有虛線。

此外還提供了DBC文件轉換工具、Teleop、主題監控工具、配置工具等。DBC轉換工具解析車輛DBC文件,生成對應的Protobuf。Teleop工具可以通過鍵盤控制的方式實現車輛的信號發布。主題監控工具可以同時需要監聽多個ROS topic。Configuration工具明確標識出來修改了哪些字段。另外,Apollo還提供了面向Rosbag的一些工具,包括分析規劃模塊、驅動以及統計信息等,如圖9所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????圖9 Apollo工具包中的Rosbag工具

交通燈模擬工具可以通過腳本的方式控制地圖里面的紅綠燈變化情況,對車輛進行測試,如圖10所示。

???????????????????????????????????????????????????????????????????????????????????????????????????????圖10 交通燈模擬工具


6.模擬和Dreamview

該模塊是整個Apollo項目可視化的一個模塊,基于該模塊,開發者可以在沒有車和傳感器的情況下使用Apollo各個軟件模塊,如圖11所示。

???????????????????????????????????????????????????????????????????????????? ? ?????????????????圖11 模擬和Dreamview模塊

總結

以上是生活随笔為你收集整理的Apollo进阶课程㊳丨Apollo平台的快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

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