精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Apollo 2.5版基于相對地圖的新導航模式

YB7m_Apollo_Dev ? 來源:未知 ? 作者:李倩 ? 2018-04-20 10:37 ? 次閱讀

Apollo項目以其優異的系統架構、完整的模塊功能、良好的開源生態及規范的代碼風格,受到眾多開發者的喜愛和好評。不過在Apollo之前的版本中,感知、預測、導航、規劃模塊均依賴于高精地圖,而高精地圖的制作方法繁瑣且不透明,對于很多開發者而言,這是一個難以逾越的障礙。因為沒有高精地圖,很多人只能使用Apollo提供的模擬數據包進行走馬觀花式的觀賞,而無法在測試道路上完成真槍實彈式的實車調試,這極大降低了Apollo項目帶來的便利,也不利于自動駕駛開源社區的發展和壯大。顯然,Apollo項目組已注意到該問題,經過他們幾個月的艱苦努力,終于在2.5版開發了一種新的基于相對地圖(Relative Map)的導航模式(Navigation Mode),利用該模式可順利實施測試道路上的實車調試。

相對地圖是Apollo2.5引入的新特性。從架構層面,相對地圖模塊是連接高精地圖(HD Map)、感知(Perception)模塊和規劃(Planning)模塊的中間層。相對地圖模塊會實時生成基于車身坐標系的地圖(格式與高精地圖一致),并且輸出供規劃模塊使用的參考線。從開發者友好性角度看,基于相對地圖的導航模式,讓開發者可以不依賴高精地圖便可實施測試道路的實車調試,極大降低了開發者的使用門檻。

導航模式的基本思路是:

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

利用Apollo工具對原始軌跡進行處理得到平滑軌跡,該軌跡既用于替代路由(Routing)模塊輸出的導航路徑,也是規劃(Planning)模塊用到的參考線(或稱指引線、中心線,Reference line),還是生成相對地圖(Relative Map)的基準線。此外,平滑軌跡還可用于替換高精地圖內某些車道的參考線(默認情況下,高精地圖將車道中心線作為參考線,在道路臨時施工等特殊情形下該方式很不合適,需使用人工錄制并平滑處理的軌跡替換特殊路段的車道參考線,當然本文不討論該項內容);

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

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

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

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

{ 一 }

Apollo 2.5版的構建

首先從GitHub網站【https://github.com/ApolloAuto/apollo】下載Apollo2.5版源代碼,可以使用git命令下載,也可以直接通過網頁下載壓縮包。源代碼下載完成并放置到合適的目錄后,可以使用兩種方法構建:1.在Visual Studio Code中構建(推薦);2.使用命令行構建。

當然,兩種方法都有一個前提,就是在你的機器上已經順利安裝了Docker。Apollo之前版本提供了一個install_docker.sh腳本文件,因為很多開發者反映可能出錯,Apollo項目組已將該文件移除。現在要安裝Docker就只能參考Docker官方網站的幫助文檔了。

1.1在Visual Studio Code中構建

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

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

1.2在命令行中構建

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

123 cd your_apollo_project_root_dir# 從中國大陸訪問,最好加上“-C”選項,直接訪問中國大陸鏡像服務器以獲取更快的下載速度bash docker/scripts/dev_start.sh -C

輸入如下命令進入Docker:

1 bash docker/scripts/dev_into.sh

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

1 bash apollo.sh build

整個操作如下圖所示:

1.3修改定位模塊UTM區域ID

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

1 --local_utm_zone_id=10

修改為下述內容(這是長沙地區的UTM區域ID,中國UTM分區可參考該網頁【http://www.360doc.com/content/14/0729/10/3046928_397828751.shtml】):

1 --local_utm_zone_id=49

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

{ 二 }

參考線原始數據的采集

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

1 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內部,使用如下命令從原始數據包提取裸數據:

12 cd /apollo/modules/tools/navigatorpython 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。

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

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

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

3.2對裸數據進行平滑處理

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

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

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

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

1 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前端,并正確設置UTM區域,具體方法如下(**注意:如不需修改地圖設置,可忽略4.1-4.2步,直接執行4.3步):

4.1更改導航地圖

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

1234567 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前端:

123456 # 安裝Dreamview前端依賴包,注意:該步驟只需執行一次,不必每次執行cd /apollo/modules/dreamview/frontend/yarn install# 編譯Dreamview前端cd /apollobash apollo.sh build_fe

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

1234 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'*...(后面還有一長串,不再一一列出)

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

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

12345 cd /apollo/modules/dreamview/frontend/rm -rf node_modulesyarn installcd /apollobash apollo.sh build_fe

4.3配置UTM區域ID

打開文件[apollo項目根目錄]/modules/common/data/global_flagfile.txt,在最后一行添加如下語句(這是長沙地區的UTM區域ID,中國UTM分區可參考該網頁【http://www.360doc.com/content/14/0729/10/3046928_397828751.shtml】):

1 --local_utm_zone_id=49

{ 五 }

導航模式的使用5.1打開Dreamview并開啟導航模式

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

1234567 cd your_apollo_project_root_dir# 如果沒有啟動Docker,首先啟動,否則忽略該步bash docker/scripts/dev_start.sh -C# 進入Dockerbash docker/scripts/dev_into.sh# 啟動Dreamview后臺服務bash scripts/bootstrap.sh

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

12 # 模擬測試情形下,循環播放錄制數據;實車調試情形忽略該步驟rosbag play -l /apollo/data/bag/2018-04-01-09-58-00.bag

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

5.2打開Dreamview導航模式選項

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

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

5.3發送參考線數據

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

12 cd /apollo/modules/tools/navigatorpython navigator.py ./path_2018-04-01-09-58-00.bag.txt.smoothed

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

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

需注意以下幾點:

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

1234 # 停止Dreamview后臺服務bash scripts/bootstrap.sh stop# 重新啟動Dreamview后臺服務bash scripts/bootstrap.sh

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

本文介紹了Apollo 2.5版基于相對地圖的新導航模式,新特性將有效降低開發者的使用門檻。希望本文對大家有所幫助!

自Apollo平臺開放已來,我們收到了大量開發者的咨詢和反饋,越來越多開發者基于Apollo擦出了更多的火花,并愿意將自己的成果貢獻出來,這充分體現了Apollo『貢獻越多,獲得越多』的開源精神。為此我們開設了『開發者說』板塊,希望開發者們能夠踴躍投稿,更好地為廣大自動駕駛開發者營造一個共享交流的平臺!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 導航
    +關注

    關注

    7

    文章

    522

    瀏覽量

    42375
  • 自動駕駛
    +關注

    關注

    783

    文章

    13682

    瀏覽量

    166139
  • Apollo
    +關注

    關注

    5

    文章

    340

    瀏覽量

    18405

原文標題:開發者說 | 全新Apollo2.5版導航模式來了!讓Apollo上車調試更便捷!

文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Apollo相對地圖在自動駕駛中的使用及實際應用

    相對地圖是在Apollo 2.5的時候第一次對外開放。在3.0的時候我們和長沙智能駕駛研究院一起合作研發,對相對地圖進行了功能和架構上的升級。
    的頭像 發表于 08-01 08:55 ?6292次閱讀

    GPS北斗衛星+慣性組合導航模塊的優勢分析

    GPS北斗衛星+慣性組合導航模塊有哪些優勢呢?普通GPS北斗模塊在環境復雜的城市環境中定位沒有那么精確,時常出現漂移、定位慢、無法定位等情況,比如在高架橋下,在穿山隧道里面,衛星信號微弱或者完全沒有
    發表于 07-15 04:35

    慣性導航模塊特征和 優勢有哪些?

    +慣性導航模塊,公交車可以在地下準確報站;(2)隧道里面提供速度校準,避免剛出隧道時非正常超速;(3)提高地下停車場的定位,結合停車場地圖,可以準確尋車。(4)高端前裝車輛開始追求更高精度的定位,特別是城市峽谷和高架橋下等弱信號場景。更多詳情可訪問天工測控或天工測控阿里店
    發表于 08-13 01:29

    請問如何實現滑動導航模型SwipeView?

    如何實現滑動導航模型SwipeView
    發表于 11-23 06:56

    PDOP因子在相對導航航路分析中的應用研究

    基于分析相對導航定位精度受到PDOP因子影響的目的,采用MapX電子地圖軟件設計測試程序,計算出地圖中各個位置的PDOP值,以此為依據設計外場試驗航路,通過對試驗航路進行仿真測試,分析
    發表于 12-24 15:43 ?11次下載

    北斗導航模塊UM220

    北斗導航模塊UM220北斗導航模塊UM220北斗導航模塊UM220北斗導航模塊UM220
    發表于 03-03 11:39 ?0次下載

    激光導航模塊定位模塊

    LNM-vl.o激光導航模塊是一款基于室內復雜壞境的導航模塊,該模塊通過激光雷達對室內環境進行掃描自主構建地圖。LNM模塊只要配合激光雷達或者二維深度傳感器就可以自主構圖并自主規劃路徑,可在室內真正
    發表于 11-17 11:37 ?5次下載
    激光<b class='flag-5'>導航模</b>塊定位模塊

    慣性導航和GPS衛星導航結合的車載組合導航模塊資料

    文檔介紹了慣性導航和GPS衛星導航結合的組合導航模塊,車載組合導航模相對于單純的衛星導航模塊應
    發表于 03-21 14:10 ?14次下載

    慣性導航+GPS北斗導航一體的車載組合導航模塊規格書

    文檔是慣性導航+GPS北斗導航一體的車載組合導航模塊規格書,里面詳細介紹了車載組合導航模塊的模塊特征,應用細節,分享出來供產品開發工程師設計參考之用
    發表于 03-22 15:39 ?19次下載

    Apollo 2.5推出了基于動態的實時相對地圖的解決方案

    導航線在自動駕駛中扮演著多種角色。第一,導航線作為出發點與目的地點的連接線,提供車道級別導航;第二,導航線可以生成Reference line用于駕駛決策;第三,為高精
    的頭像 發表于 06-22 09:53 ?4023次閱讀
    <b class='flag-5'>Apollo</b> <b class='flag-5'>2.5</b>推出了基于動態的實時<b class='flag-5'>相對地圖</b>的解決方案

    相對地圖導航線在自動駕駛場景中是如何工作的?

    2018年6月23日,由百度主辦、佐思產研、佐智汽車承辦的第4期《Hello Apollo,自動駕駛公開課》——“Apollo2.5限定場景低成本技術方案解析”在上海市徐匯區COCOSPACE成功
    的頭像 發表于 07-16 11:40 ?4497次閱讀

    Apollo定位、感知、規劃模塊的基礎-高精地圖

    與普通地圖不同,高精地圖主要服務于自動駕駛車輛,通過一套獨特的導航體系,幫助自動駕駛解決系統性能問題,擴展傳感器檢測邊界。目前 Apollo 內部高精
    的頭像 發表于 08-12 11:15 ?9595次閱讀

    Apollo與海航共同打造“小巨人”海航自動駕駛物流車

    海航量子智能機器人技術總監霍光磊帶領團隊通過機場物流、倉儲物流實景調研,最后確認采用基于Apollo 2.5攝像頭的相對地圖方案,設計了自動裝卸貨艙的小型自動駕駛物流車。
    的頭像 發表于 08-13 17:06 ?5607次閱讀

    分析高精度道路導航地圖的發展現狀

    高精度道路導航地圖的數據量是普通地圖的105倍甚至更多,目前以云計算為核心的集中式大數據處理模式不能滿足需求。高精度道路導航
    的頭像 發表于 09-03 15:26 ?7587次閱讀

    Apollo導航模式詳細教程

    Apollo導航模式以提高安全性和穩定性為目的,在駕駛環境中加入了靜態引導信息,引導在駕駛環境中的軌跡規劃,使其更安全更舒適。同時,引導信息也降低了對駕駛環境的完整性的要求 -- 即降低了對地圖信息的要求。
    的頭像 發表于 10-02 11:18 ?7794次閱讀