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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

百度Apollo 2.5 导航模式 使用方法

發布時間:2024/3/26 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百度Apollo 2.5 导航模式 使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Apollo 2.5版導航模式的使用方法

本博客參考百度apollo官方開發手冊,部分進行理解修改。

導航模式--官網開發手冊

?

在`Apollo`之前的版本中,感知、預測、導航、規劃模塊均依賴于高精地圖,而高精地圖的制作方法繁瑣且不透明,對于很多開發者而言,這是一個難以逾越的障礙。

基于相對地圖(`relative map`)導航模式(`navigation?mode`),利用該模式可順利實施測試道路上的實車調試。

相對地圖是Apollo2.5引入的新特性。從架構層面,相對地圖模塊連接高精地圖(`HD Map`)、感知(`Perception`)模塊和規劃(`Planning`)模塊的中間層。相對地圖模塊會實時生成基于車身坐標系的地圖(格式與高精地圖一致),并且輸出供規劃模塊使用的參考線

解釋:1)導航模式使用相對地圖; 2)如果在導航模式下,相對地圖的參考線等數據會代替高精地圖;

?

導航模式的基本思路是:

1. 通過人工駕駛方式錄制測試道路上的行駛軌跡

2. 利用`Apollo`工具對原始軌跡進行處理得到平滑軌跡,該軌跡既用于替代路由(`routing`)模塊輸出的導航路徑,也是規劃(`planning`)模塊用到的參考線(或稱指引線、中心線,`reference line`),還是生成相對地圖(`relative map`)的基準線。

此外,平滑軌跡還可用于替換高精地圖內某些車道的參考線(默認情況下,高精地圖將車道中心線作為參考線,在道路臨時施工等特殊情形下該方式很不合適,需使用人工錄制并平滑處理的軌跡替換特殊路段的車道參考線);

3. 駕駛員將車輛行駛到測試道路起點,在`Dreamview`中打開導航(`Navigation`)選項及相關功能模塊,切換到自動駕駛模式并啟動車輛;

4. 自動駕駛過程中,感知(`perception`)模塊的相機(`camera`)動態檢測道路邊界及障礙物,地圖(`map`)模塊下的相對地圖(`relative map`)子模塊基于參考線及道路邊界實時地生成相對地圖(使用以車輛當前位置為原點的相對坐標系),規劃(`planning`)模塊依據地圖模塊輸出的相對地圖和感知模塊輸出的障礙物信息,動態輸出局部行駛路徑給控制(`control`)模塊執行。

5. 目前,導航模式僅支持單車道行駛,可完成加減速、跟車、遇障礙物減速停車或在車道寬度允許的情形下對障礙物繞行等功能,后續版本的導航模式將會進一步完善以支持多車道行駛、交通標志和紅綠燈檢測等。

解釋:1)錄制分為兩種方式:

  • 實際上車錄制
  • 使用之前錄制好的bag數據包
  • 2)導航模式,不單需要參考線為基礎的相對地圖,還需要獲取感知障礙物信息。

    ?

    本文對`Apollo2.5`版的構建、參考線數據采集與制作、`Dreamview`前端編譯配置、導航模式使用等內容進行全面闡述,希望能給各位開發者正常使用`Apollo 2.5`版帶來一定的便利。

    ?

    ## 一、Apollo 2.5版的構建

    ### 1.1 在Visual Studio Code中構建

    打開`Visual Studio Code`,執行菜單命令`文件->打開文件夾`,在彈出的對話框中,選擇`Apollo項目`源文件夾,點擊“確定”,如下圖所示:

    ?

    ?

    之后,執行菜單命令`任務->運行生成任務`或直接按快捷鍵`Ctrl+Shift+B`(與`Visual Studio`和`QT`的快捷鍵一致)構建工程,若之前沒有啟動過`Docker`,則編譯時會啟動`Docker`,需在底部終端窗口輸入超級用戶密碼。命令執行完畢,若在底部終端窗口出現`終端將被任務重用,按任意鍵關閉。`信息(如下圖所示),則表示構建成功。整個過程**一定要保持網絡暢通**,否則無法下載依賴包。構建過程可能會遇到一些問題,

    ?

    ?

    ### 1.2 在命令行中構建

    按快捷鍵`Ctrl + Alt + T`打開命令行終端,輸入如下命令啟動`Docker`:

    cd?your_apollo_project_root_dir

    ?#從中國大陸訪問,最好加上“ -C”選項,直接訪問中國大陸主機服務器以獲取恢復的下載速度?

    bash docker/scripts/dev_start.sh -C

    (網絡不好,難以拉docker;實在不行可以嘗試改docker軟件源(改為國內)

    如果不行,就不用-C

    bash docker/scripts/dev_start.sh

    ?

    輸入如下命令進入Docker

    bash docker/scripts/dev_into.sh

    ?

    Docker內部,如下執行命令構建Apollo項目:

    bash apollo.sh build

    整個操作如下圖所示:

    ?

    ?

    ?

    ### 1.3 修改定位模塊UTM區域ID

    `Apollo`項目定位(`localization`)模塊默認使用美國西部UTM坐標,在國內需要修改該值。在`Docker`外部,使用`vi`或其他文本編輯器,打開文件`[apollo項目根目錄]/modules/localization/conf/localization.conf`,將下述內容:


    --local_utm_zone_id = 10

    修改為下述內容(這是 廣東廣州地區的UTM區域ID,中國UTM柯林斯分區參考該|網頁):

    --local_utm_zone_id = 49

    具體的位置可以點擊查看,例如廣東廣州

    ?

    **注意:**如果錄制數據時未修改上述內容,則線下模擬測試回放數據包時只能將錯就錯,千萬不能再修改該值,否則地圖上的參考線定位會出錯!有一次我采集數據時,忘了修改該值,回放數據時又進行修改,結果導致參考線定位到了美國西海岸!我取消修改,按`F5`鍵刷新瀏覽器后顯示就恢復正常了。

    ?

    ### 1.4 配置Dreamview使用的UTM區域ID

    打開文件[apollo項目根目錄]/modules/common/data/global_flagfile.txt,在最后一行添加如下語句(這是長沙地區的UTM區域ID,中國UTM柯林斯分區參考該|網頁):

    --local_utm_zone_id=49

    ?

    ## 二、參考線原始數據的采集

    將構建好的`Apollo`項目文件導入車內工控機,并按照**步驟1.2**的方法進入`Docker`,再執行如下命令,啟動`Dreamview`服務端程序:

    bash scripts/bootstrap.sh

    在瀏覽器中打開網頁http://localhost:8888(注意不要使用代理),進入Dreamview界面,如下圖所示:

    ?

    **1** ?駕駛員將車輛駛入待測試路段起點;

    **2** ?操作員點擊`Dreamview`界面左側工具欄中的`Module Controller`按鈕,進入模塊控制頁面,選中`GPS`、`Localization`、`Record Bag`選項,**注意:如果采集的數據包需用于線下模擬測試,還需加上`CAN Bus`選項。**

    ?

    **3**??駕駛員從起點啟動車輛并按預定路線行駛至終點;

    **4** ?操作員關閉`Dreamview`界面中的`Record Bag`選項,此時會在`/apollo/data/bag`目錄(這是`Docker`中的目錄,宿主機上對應的目錄為`[你的apollo根目錄]/data/bag`)中生成一個類似于`2018-04-01-09-58-00`的目錄,該目錄中保存著類似于`2018-04-01-09-58-00.bag`的數據包。這就是我們所需的數據包,請記住它的路徑及名稱。**注意:**單個數據包文件的默認錄制時長為1分鐘,默認文件大小為2048MB,可通過修改文件`/apollo/scripts/record_bag.sh`來改變默認值。

    ?

    為后文闡述方便起見,假設我包數據2018-04-01-09-58-00.bag直接存放于/apollo/data/bag目錄。

    ?

    ## 三、參考線的制作

    參考線的制作既可在車內工控機內完成,也可在其他計算機上實施。無論在哪臺計算機上制作,我們首先假定已按**步驟1.2**的方法進入`Docker`,并按照**步驟二**中錄制的數據包放置在`/apollo/data/bag`目錄中,且假定該文件名為`2018-04-01-09-58-00.bag`(在你的機器上并非如此,這樣做只是為了后文闡述方便而已)。

    ?

    ### 3.1 從原始數據包提取裸數據

    在`Docker`內部,使用如下命令從原始數據包提取裸數據:

    cd?/apollo/modules/tools/navigator

    python extractor.py /apollo/data/bag/2018-04-01-09-58-00.bag

    ?

    上述命令會在當前目錄(易知我們在`/apollo/modules/tools/navigator`目錄中)生成一個提取后的裸數據文件:`path_2018-04-01-09-58-00.bag.txt`。

    ?

    為了驗證裸數據的正確性,可以使用如下命令查看:

    python viewer_raw.py ./path_2018-04-01-09-58-00.bag.txt

    docker中沒有相關的python庫,建議放到其他電腦中(pyCharm開發環境)進行運行

    會顯示類似下圖的路徑圖:

    ?

    ?

    ### 3.2 對裸數據進行平滑處理

    如果錄制數據時,車輛行駛不夠平順,提取的裸軌跡數據可能會不光滑,有必要對其進行平滑處理。繼續在`Docker`內部使用如下命令完成平滑處理:

    bash smooth.sh ./path_2018-04-01-09-58-00.bag.txt 180

    ?

    注意:上述命令中`200`是平滑處理的長度,該值一般為`150-200`,如果執行失敗,可嘗試調整該參數,再次進行平滑。

    ?

    為了驗證平滑結果的正確性,可以使用如下命令查看:

    python viewer_smooth.py ./path_2018-04-01-09-58-00.bag.txt ./path_2018-04-01-09-58-00.bag.txt.smoothed

    ?

    其中,第一個參數`./path_2018-04-01-09-58-00.bag.txt`是裸數據,第二個參數`./path_2018-04-01-09-58-00.bag.txt.smoothed`是平滑結果,顯示效果類似下圖:

    ?

    ?

    ## 四、Dreamview前端的編譯

    `Dreamview`前端默認使用`Baidu`地圖,也可修改為`Google`地圖,但需重新編譯`Dreamview`前端,具體方法如下(**注意**:如不需修改地圖設置,可忽略該節內容):

    ?

    ### 4.1 更改導航地圖 (可以不更改,默認使用百度地圖)

    打開文件`[apollo項目根目錄]/modules/dreamview/frontend/src/store/config/ parameters.yml`,根據需要將下述內容替換為`Google`地圖或`Baidu`地圖:

    navigation:

    ??# possible options: BaiduMap or GoogleMap

    ??map: "BaiduMap"

    ??# Google Map API: "https://maps.google.com/maps/api/js"

    ??# Baidu Map API: "https://api.map.baidu.com/api?v=3.0&ak=0kKZnWWhXEPfzIkklmzAa3dZ&callback=initMap"

    ??mapAPiUrl: "https://api.map.baidu.com/api?v=3.0&ak=0kKZnWWhXEPfzIkklmzAa3dZ&callback=initMap"

    ?

    ### 4.2 重新編譯Dreamview前端

    按照**步驟1.2**的方法進入`Docker`,運行如下命令編譯`Dreamview`前端:

    # 安裝Dreamview前端依賴包,注意:該步驟只需執行一次,不必每次執行

    Install Dreamview front end dependent package. Note: you only need to execute it once, not every time.

    cd?/apollo/modules/dreamview/frontend/

    yarn install

    # Compile Dreamview front end

    cd?/apollo

    bash apollo.sh build_fe

    ?

    編譯過程可能會出現如下錯誤:

    ERROR in ../~/css-loader!../~/sass-loader/lib/loader.js?{"includePaths":["./node_modules"]}!./styles/main.scss*

    *Module build failed: Error: ENOENT: no such file or directory, scandir '/apollo/modules/dreamview/frontend/node_modules/node-sass/vendor'*

    ...

    (The error continues, but we have the information we need to debug it)

    ?

    這是內部依賴包不一致造成的,**解決方法如下:**

    在`Docker`內部,運行如下命令(注意:**一定要保持網絡暢通**,否則無法重新下載依賴包):

    cd?/apollo/modules/dreamview/frontend/

    rm -rf node_modules

    yarn install

    cd?/apollo

    bash apollo.sh build_fe

    ?

    ## 五、導航模式的使用

    ### 5.1. 打開Dreamview并開啟導航模式

    進入`Docker`,啟動`Dreamview`,命令如下:

    cd?your_apollo_project_root_dir

    # If you haven’t opened Docker, do it first or ignore that step

    bash docker/scripts/dev_start.sh -C

    # Enter Docker

    bash docker/scripts/dev_into.sh

    # Start Dreamview and monitoring process

    bash scripts/bootstrap.sh

    若是線下模擬測試,則將**步驟二**中錄制好的數據包`/apollo/data/bag/2018-04-01-09-58-00.bag`(這是我機器上的錄制數據)循環播放;**若是實車調試,則忽略該步驟**。

    rosbag play -l /apollo/data/bag/2018-04-01-09-58-00.bag

    ?

    在瀏覽器中打開網頁[http://localhost:8888](http://localhost:8888)(注意不要使用代理),進入`Dreamview`界面,點擊右上方下拉框,將模式設置為`Navigation`(導航模式),如下圖所示:

    ?

    ### 5.2 啟用導航模式下的相關功能模塊

    點擊`Dreamview`界面左側工具欄中的`Module Controller`按鈕,進入模塊控制頁面。**若是線下模擬測試**,選中`Relative Map`、`Navi Planning`選項,其他模塊根據需要開啟,如下圖所示(圖中顯示空白文本的模塊是`Mobileye`模塊,需安裝配置好相關硬件后才可見)):

    ?

    **若是實車調試**,建議除`Record Bag`、`Mobileye`(若`Mobileye`硬件未安裝,則會顯示為空白文本)和`Third Party Perception`模塊外,其余模塊全部開啟,如下圖所示:

    ?

    ?

    ### 5.3 發送參考線數據

    在`Docker`內部,使用如下命令發送**步驟三**中制作的參考線數據:

    cd?/apollo/modules/tools/navigator

    python navigator.py ./path_2018-04-01-09-58-00.bag.txt.smoothed

    ?

    下圖是**線下模擬測試情形下**`Dreamview`接收到參考線后的界面,注意界面左上角已出現了百度地圖界面,我們發送的參考線在百度地圖中以紅線方式、在主界面中以白色車道線的方式展現。

    ?

    ?

    下圖是**實車調試情形下的**`Dreamview`接收到參考線后的界面,注意界面左上角已出現了百度地圖界面,我們發送的參考線在百度地圖中以紅線方式、在主界面中以黃色車道線的方式展現。

    ?

    需注意以下幾點:

    (1) 如果發送參考線數據后,`Dreamview`界面不能正確顯示參考線,可能有以下方面的原因:一是參考線數據未正確發送,解決辦法是再次執行發送命令;二是瀏覽器緩存不一致,解決辦法是按`Ctrl + R`或`F5`鍵刷新顯示,或者清理瀏覽器緩存;三是`Dreamview`后臺服務程序運行異常,解決辦法是在`Docker`內部重啟`Dreamview`后臺服務,命令如下:

    # Stop Dreamview and monitoring process

    bash scripts/bootstrap.sh stop

    # Restart Dreamview and monitoring process

    bash scripts/bootstrap.sh

    ?

    ?(2) 每次車輛重新回到起點后,無論是線下模擬測試還是實車調試情形,**均需再次發送參考線數據**。

    ?

    希望對你有幫助。

    總結

    以上是生活随笔為你收集整理的百度Apollo 2.5 导航模式 使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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