定位技術(shù)橫跨好幾個(gè)專業(yè),包括測繪、導(dǎo)航、計(jì)算機(jī)視覺知識(shí)、以及點(diǎn)云處理的知識(shí)。業(yè)界所說的“多傳感器融合”,都是指對(duì)攝像頭、激光雷達(dá)、毫米波雷達(dá)、超聲波雷達(dá)等多種傳感器各自分別收集到的數(shù)據(jù)所做的「數(shù)據(jù)融合」。
其中,Apollo3.0多傳感器融合定位模塊的框架有:
定位模塊依賴的硬件以及數(shù)據(jù),包括慣性測量單元 IMU、車端天線、基站、LiDAR、以及定位地圖;
GNSS定位以及激光點(diǎn)云定位模塊,GNSS定位(基站和車端天線輔助)輸出位置及速度信息,點(diǎn)云定位(LiDAR和定位地圖)輸出位置及航向角信息;
融合框架:慣性導(dǎo)航解算、Kalman濾波(卡爾曼濾波器是核心模塊);融合定位輸出是一個(gè)6-dof的位置和姿態(tài),以及協(xié)方差矩陣,其結(jié)果會(huì)反過來用于GNSS定位和點(diǎn)云定位的預(yù)測。
由于無人車的感知和決策能力并沒有達(dá)到像「人」一樣聰明的程度,而定位系統(tǒng)可以與高精地圖配合提供靜態(tài)場景感知,可將感知得到的動(dòng)態(tài)物體正確放入靜態(tài)場景,而位置和姿態(tài)用于路徑規(guī)劃和車輛控制。因此定位系統(tǒng)對(duì)于無人駕駛至關(guān)重要。
In brief,一個(gè)無人汽車感知系統(tǒng)成功并不能保證整個(gè)系統(tǒng)成功,而感知系統(tǒng)有瑕疵足以讓使用它的軟件工程師持續(xù)陷入苦惱。
對(duì)大多數(shù)涉足自動(dòng)駕駛的公司來說,搞定一套傳感器方案,這個(gè)看似簡單的工作,卻往往需要耗費(fèi)一個(gè)小團(tuán)隊(duì)至少6-8個(gè)月的寶貴研發(fā)時(shí)間,才能勉強(qiáng)做到“不拖后腿”,而這又僅僅是“重復(fù)發(fā)明輪子”的一個(gè)過程。
百度Apollo所開發(fā)的自動(dòng)駕駛套件已可做到在硬件層面就將攝像頭、激光雷達(dá)集成到一起,然后再將采集到的數(shù)據(jù)統(tǒng)一輸送到計(jì)算平臺(tái)。
Apollo作為一個(gè)開放的平臺(tái),目的是將開發(fā)者從繁瑣的重復(fù)性工作中解放出來,更加專注于算法迭代本身,加快自動(dòng)駕駛技術(shù)的迭代速度,推進(jìn)整個(gè)無人駕駛行業(yè)的進(jìn)程。面對(duì)復(fù)雜多變、快速迭代的開發(fā)環(huán)境,只有開放才會(huì)帶來進(jìn)步,Apollo社區(qū)正在被開源的力量喚醒。
從GitHub網(wǎng)站下載Apollo源代碼
按照教程設(shè)置Docker環(huán)境并搭建Apollo工程
從Apllo數(shù)據(jù)平臺(tái)下載多傳感器融合定位數(shù)據(jù)(僅限美國地區(qū))
為了使定位模塊正確運(yùn)行,需要對(duì)地圖路徑和傳感器外參進(jìn)行配置。假設(shè)下載的定位數(shù)據(jù)的所在路徑為DATA_PATH。在進(jìn)行以下步驟前,首先確定你在docker容器中。
2.1 配置傳感器外參:
將定位數(shù)據(jù)中的傳感器外參拷貝至指定文件夾下。
cpDATA_PATH/params/ant_imu_leverarm.yaml/apollo/modules/localization/msf/params/gnss_params/cpDATA_PATH/params/velodyne64_novatel_extrinsics_example.yaml/apollo/modules/localization/msf/params/velodyne_params/cpDATA_PATH/params/velodyne64_height.yaml/apollo/modules/localization/msf/params/velodyne_params/
各個(gè)外參的意義:
ant_imu_leverarm.yaml: 桿臂值參數(shù),GNSS天線相對(duì)Imu的距離
velodyne64_novatel_extrinsics_example.yaml:Lidar相對(duì)Imu的外參
velodyne64_height.yaml: Lidar相對(duì)地面的高度
2.2 設(shè)置地圖路徑:
在/apollo/modules/localization/conf/localization.conf中添加關(guān)于地圖路徑的配置:
#Redefinethemap_diringlobal_flagfile.txt--map_dir=DATA_PATH
這將會(huì)覆蓋global_flagfile.txt中的默認(rèn)值。
./scripts/localization.sh
定位程序?qū)⒃诤笈_(tái)運(yùn)行,可以通過以下命令進(jìn)行查看。
ps-e|greplocalization
在/apollo/data/log目錄下,可以看到定位模塊輸出的相關(guān)文件。
localization.INFO : INFO級(jí)別的log信息
localization.WARNING : WARNING級(jí)別的log信息
localization.ERROR : ERROR級(jí)別的log信息
localization.out : 標(biāo)準(zhǔn)輸出重定向文件
localizaiton.flags : 啟動(dòng)localization模塊使用的配置
cdDATA_PATH/bag rosbagplay*.bag
從播放數(shù)據(jù)到定位模塊開始輸出定位消息,大約需要30s左右。
5.1記錄定位結(jié)果
該腳本會(huì)在后臺(tái)運(yùn)行錄包程序,并將存放路徑輸出到終端上。
./scripts/record_bag.sh
5.2可視化定位結(jié)果
./scripts/localization_online_visualizer.sh
該可視化工具首先根據(jù)定位地圖生成用于可視化的緩存文件,存放在/apollo/data/map_visual目錄下。
然后接收以下topic并進(jìn)行可視化繪制。
/apollo/sensor/velodyne64/compensator/PointCloud2
/apollo/localization/msf_lidar
/apollo/localization/msf_gnss
/apollo/localization/pose
5.3可視化效果如下:
如果發(fā)現(xiàn)可視化工具運(yùn)行時(shí)卡頓,可使用如下命令重新編譯可視化工具:
cd/apollo bazelbuild-copt//modules/localization/msf/local_tool/local_visualization/online_visual:online_local_visualizer
編譯選項(xiàng)-c opt優(yōu)化程序性能,從而使可視化工具可以實(shí)時(shí)運(yùn)行。
./scripts/localization.shstop
如果之前有運(yùn)行步驟5的錄包腳本,還需執(zhí)行
./scripts/record_bag.sh stop
假設(shè)步驟5中錄取的數(shù)據(jù)存放路徑為OUTPUT_PATH,桿臂值外參的路徑為ANT_IMU_PATH
7.1 運(yùn)行腳本:
./scripts/msf_local_evaluation.shOUTPUT_PATHANT_IMU_PATH
該腳本會(huì)以RTK定位模式為基準(zhǔn),將多傳感器融合模式的定位結(jié)果進(jìn)行對(duì)比。注意只有在GNSS信號(hào)良好,RTK定位模式運(yùn)行良好的區(qū)域,這樣的對(duì)比才是有意義的。
7.2 獲得如下統(tǒng)計(jì)結(jié)果:
可以看到三組統(tǒng)計(jì)結(jié)果,第一組是組合導(dǎo)航(輸出頻率200hz)的統(tǒng)計(jì)結(jié)果,第二組是點(diǎn)云定位(輸出頻率5hz)的統(tǒng)計(jì)結(jié)果,第三組是GNSS定位(輸出頻率約1hz)的統(tǒng)計(jì)結(jié)果。
表格中各項(xiàng)的意義:
error: 平面誤差,單位為米
error lon: 車前進(jìn)方向的誤差,單位為米
error lat: 車橫向方向的誤差,單位為米
error roll: 翻滾角誤差,單位為度
error pit: 俯仰角誤差,單位為度
error yaw: 偏航角誤差,單位為度
mean: 誤差的平均值
std: 誤差的標(biāo)準(zhǔn)差
max: 誤差的最大值
<30cm: 距離誤差少于30cm的幀所占的百分比
<1.0d: 角度誤差小于1.0d的幀所占的百分比
con_frame(): 滿足括號(hào)內(nèi)條件的最大連續(xù)幀數(shù)
-
傳感器
+關(guān)注
關(guān)注
2553文章
51427瀏覽量
756785 -
LIDAR
+關(guān)注
關(guān)注
10文章
328瀏覽量
29563
原文標(biāo)題:技術(shù)文檔│本地如何運(yùn)行多傳感器融合定位模塊
文章出處:【微信號(hào):Apollo_Developers,微信公眾號(hào):Apollo開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論