Apollo
導(dǎo)航模式教程
1
教程簡(jiǎn)介
無人駕駛系統(tǒng)利用實(shí)時(shí)感知信息和靜態(tài)地圖信息構(gòu)建出完整駕駛環(huán)境,并在構(gòu)建的環(huán)境中,依據(jù)routing數(shù)據(jù),規(guī)劃出行車軌跡,并由控制模塊執(zhí)行完成。Apollo導(dǎo)航模式在上述的框架下,針對(duì)高速、鄉(xiāng)村道路等簡(jiǎn)單道路場(chǎng)景,進(jìn)行了以下的提升:
Apollo導(dǎo)航模式以提高安全性和穩(wěn)定性為目的,在駕駛環(huán)境中加入了靜態(tài)引導(dǎo)信息,引導(dǎo)在駕駛環(huán)境中的軌跡規(guī)劃,使其更安全更舒適。同時(shí),引導(dǎo)信息也降低了對(duì)駕駛環(huán)境的完整性的要求 -- 即降低了對(duì)地圖信息的要求。
Apollo導(dǎo)航模式使用了相對(duì)/車身坐標(biāo)系。減少了sensor數(shù)據(jù)的轉(zhuǎn)化。同時(shí)也支持各種駕駛模式之間的轉(zhuǎn)化,以應(yīng)對(duì)不同的駕駛場(chǎng)景和條件。
Apollo導(dǎo)航模式引入了百度地圖的Routing功能,考慮實(shí)時(shí)路況信息,使得Routing的結(jié)果更實(shí)用,更精確,更穩(wěn)定。也使得Apollo系統(tǒng)更易于落地和商用。
在本教程中,你將完成
▼
學(xué)習(xí)完本教程后,你將能夠在導(dǎo)航模式下進(jìn)行規(guī)劃模塊(planning)的線下調(diào)試和開發(fā)。
在本教程中,你將掌握
▼
如何設(shè)置Apollo導(dǎo)航模式
如何利用云端指引者發(fā)送指引線
如何利用錄制的ros bag產(chǎn)生指引線并用線下指引者發(fā)送
如何進(jìn)行規(guī)劃模塊的調(diào)試
在本教程中,你需要如下準(zhǔn)備
▼
https://github.com/ApolloAuto/apollo/tree/master/docs/demo_guide
下載Apollo2.5 demo bag
2
配置導(dǎo)航模式
在導(dǎo)航模式下,有以下幾個(gè)參數(shù)需要進(jìn)行配置:
感知方案:目前支持?jǐn)z像頭方案(CAMERA)和基于Mobileye的方案(MOBILEYE)
Apollo UTM Zone
規(guī)劃模塊的Planner:目前支持EM, LATTICE, 和NAVI三種
系統(tǒng)限速:?jiǎn)挝粸槊?秒
在Docker下修改配置文件
配置文件位于:
1 | /apollo/modules/tools/navigation/config/default.ini |
默認(rèn)配置為:
12345678910111213 | [PerceptionConf]# three perception solutions: MOBILEYE, CAMERA, and VELODYNE64perception = CAMERA[LocalizationConf]utm_zone = 10[PlanningConf]# three planners are available: EM, LATTICE, NAVIplanner_type = EM# highest speed for planning algorithms, unit is meter per secondspeed_limit = 5 |
該默認(rèn)配置為Apollo 2.5 Demo bag錄制時(shí)的配置,在此教程中,我們直接使用。
生效配置信息
為了使配置生效,在Docker內(nèi)的Apollo根目錄下,運(yùn)行如下命令:
12 | in_dev_docker:/apollo$ cd /apollo/modules/tools/navigation/config/in_dev_docker:/apollo/modules/tools/navigation/config$ python navi_config.py default.ini |
3
云端指引者的使用
回放Demo bag:
在進(jìn)入Docker,啟動(dòng)Apollo之前,我們把Apollo2.5 demo bag拷貝到Apollo代碼根目錄下的data目錄中。
在Docker內(nèi)編譯成功后,我們用如下命令啟動(dòng)Dreamview:
1 | in_dev_docker:/apollo$ ./scripts/bootstrap.sh start |
并在本地瀏覽器中打開:
1 | http://localhost:8888 |
如下圖所示,在模式框中選擇“Navigation”。
然后在Docker內(nèi)的apollo根目錄下運(yùn)行如下命令進(jìn)行bag播放:
12 | in_dev_docker:/apollo$cd datain_dev_docker:/apollo/data$rosbag play demo_2.5.bag |
播放開始后,可以看到Dreamview界面如下:
請(qǐng)求云端指引線
在地圖中選擇一個(gè)目的地(沿canada路),點(diǎn)擊地圖視圖中的紅色Route按鈕,云端指引者會(huì)接收到這個(gè)請(qǐng)求,并返回指引線,該指引線會(huì)被顯示在地圖視圖中。如下圖所示。以上就是云端指引者的調(diào)用過程。
4
離線指引者工具的使用
目前云端指引者只覆蓋了有限的區(qū)域。除了云端的服務(wù)之外,我們還提供了離線指引者工具來制作和發(fā)送線下指引線。在本教程中,我們以Apollo2.5 demo bag為例來生成指引線。
指引線的制作
生成指引線的步驟為:
從bag中提取路徑數(shù)據(jù)
12 | in_dev_docker:/apollo$cd modules/tools/navigatorin_dev_docker:/apollo/modules/tools/navigator$python extractor.py /apollo/data/demo_2.5.bag |
提取出來的路徑數(shù)據(jù)在路徑
1 | in_dev_docker:/apollo/modules/tools/navigator$ |
中的
1 | path_demo_2.5.bag.txt |
平滑路徑數(shù)據(jù)
1 | in_dev_docker:/apollo/modules/tools/navigator$bash smooth.sh path_demo_2.5.bag.txt 200 |
平滑后的的數(shù)據(jù)在
1 | in_dev_docker:/apollo/modules/tools/navigator$path_demo_2.5.bag.txt.smoothed |
指引線的發(fā)送
得到平滑后的數(shù)據(jù)就可以發(fā)送到Apollo系統(tǒng)中,作為指引線,步驟為:
1 | in_dev_docker:/apollo/modules/tools/navigator$python navigator.py path_demo_2.5.bag.txt.smoothed |
發(fā)送完成后,Dreamview的地圖視圖中的紅色指引線會(huì)更新為如下圖所示:
5
規(guī)劃模塊的調(diào)試
調(diào)試數(shù)據(jù)準(zhǔn)備
利用bag來進(jìn)行模塊調(diào)試,首先要把bag中的相應(yīng)ros message過濾掉。假設(shè)我們想要調(diào)試規(guī)劃模塊,我們需要把消息
1 | /apollo/planning |
過濾,使用以下命令
12 | in_dev_docker:/apollo$cd datain_dev_docker:/apollo/data$rosbag filter demo_2.5.bag demo_2.5_no_planning.bag "topic != '/apollo/planning'" |
過濾后的bag位于
1 | in_dev_docker:/apollo/data$demo_2.5_no_planning.bag |
規(guī)劃軌跡的產(chǎn)生
我們播放沒有規(guī)劃的bag,用下面的命令
1 | in_dev_docker:/apollo/data$rosbag play demo_2.5_no_planning.bag |
在Dreamview中我們會(huì)看到車輛的規(guī)劃軌跡沒有輸出,如下圖
我們?cè)贒reamview中打開Navi Planning模塊,如下圖
我們看到實(shí)時(shí)計(jì)算的車輛的規(guī)劃軌跡顯示在Dreamview中。這時(shí)你可以試著更改一些規(guī)劃模塊的配置
1 | in_dev_docker:/apollo/modules/planning/conf$planning_config_navi.pb.txt |
去了解,這些參數(shù)會(huì)對(duì)規(guī)劃結(jié)果有什么影響。或者修改規(guī)劃算法的代碼,進(jìn)行調(diào)試。
6
結(jié)束
恭喜你完成了本教程。現(xiàn)在你應(yīng)該了解:
如何設(shè)置Apollo導(dǎo)航模式
如何利用云端指引者發(fā)送指引線
如何利用錄制的ros bag產(chǎn)生指引線并用線下指引者發(fā)送
如何進(jìn)行規(guī)劃模塊的調(diào)試
你也可以試著利用Demo bag對(duì)其他一些模塊進(jìn)行調(diào)試。
-
導(dǎo)航
+關(guān)注
關(guān)注
7文章
533瀏覽量
42552 -
無人駕駛
+關(guān)注
關(guān)注
98文章
4089瀏覽量
121006
原文標(biāo)題:技術(shù)干貨 | Apollo導(dǎo)航模式教程
文章出處:【微信號(hào):Apollo_Developers,微信公眾號(hào):Apollo開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論