本文章配套原始碼地址:

https://

github。com/Little-Potat

o-1990/localization_in_auto_driving

測試資料:

https://

pan。baidu。com/s/1TyXbif

oTHubu3zt4jZ90Wg

提取碼: n9ys

本篇對應程式碼Tag為 2。0

程式碼在後續可能會有調整,如和文章有出入,以實際程式碼為準

========================================

一、資料集介紹

1. 整體介紹

做演算法,首先要先搞資料,開原始碼自然用公開的資料集最好,本系列文章的程式碼就選KITTI資料集為測試資料。

KITTI資料集由德國卡爾斯魯厄理工學院和豐田美國技術研究院聯合創辦,是目前國際上最大的專門面向自動駕駛的資料集。該資料集用於評測鐳射里程計(lidar odometry),視覺里程計(visual odometry),立體影象(stereo),光流(optical flow),3D物體檢測(object detection)和3D跟蹤(tracking)等演算法在車載環境下的效能。KITTI包含市區、鄉村和高速公路等場景採集的真實影象資料。

2. 採集平臺

一張圖可以解釋。

從零開始做自動駕駛定位(二): 資料集

這張圖可以看出它的感測器組成,包括一個64線鐳射雷達,在車頂的正中心,鐳射雷達兩側各放一個彩色攝像頭和一個黑白攝像頭,也就是一共四個攝像頭。在雷達左後方,有一個組合導航系統(OXTS RT 3003),它可以輸出RTK/IMU組合導航結果,包括經緯度和姿態,同時也輸出IMU原始資料。

各個感測器之間的安裝關係如下圖所示

從零開始做自動駕駛定位(二): 資料集

根據這張圖可以很容易計算各個感測器之間,以及他們和車之間的相對位移。不過不需要自己計算,KITTI為每組資料都提供了對應的標定檔案。

3. 選擇與使用

我們的主要目的是利用鐳射雷達點雲資料和RTK資料做融合,所以只使用資料集裡的RawData資料,它包含RTK、IMU、鐳射雷達、攝像頭等感測器的資料和他們之間的標定關係,並且時間戳已經對應好。

由於我們是使用ROS作為除錯環境,所以我把一部分資料轉成了ROS的bag檔案,放在百度網盤裡,如果不想自己轉換資料,就可以直接下載這裡面的bag檔案使用,檔案在“轉換後的bag檔案/2011_10_03”資料夾裡。由於百度網盤單個檔案大小有限制,所以我做了分卷壓縮,下載完成之後需要在當前目錄下輸入如下指令,把他們再合成一個檔案才能解壓

cat bag_file*>bag。tar。gz

本文章後半部分會介紹資料轉換的方法,如果想用資料集裡其他資料做測試,可以根據介紹的方法自行生成bag檔案。

二、KITTI資料轉成ROS的bag檔案

轉換是透過一個開源工具kitti2bag來完成,它可以透過pip安裝。

1. 升級numpy

這一步很重要,不然後面執行會報錯。kitti2bag要求numpy版本>=1。12,ubuntu 16。04預設的是1。11,升級可以透過一條指令來完成

sudo pip install -U numpy

升級之後,我的版本是1。16

2. 安裝kitti2bag

也是一條指令

sudo pip install kitti2bag

如果遇到問題,可以上網查一查,一般都是常見問題,都很好解決。

3. 下載檔案並設定目錄

從我給的百度網盤連結裡找到“RawData原始資料”資料夾,找到檔案“2011_10_03_drive_0027_sync。zip”和檔案“2011_10_03_calib。zip”,下載下來,並解壓縮。

最終檔案應該按照這樣的目錄存放

從零開始做自動駕駛定位(二): 資料集

4. 轉換檔案

在系統中開啟終端,cd進入上一步目錄對應的“2011_10_03”資料夾的上一級目錄,輸入下面的指令,就會自動開始轉換

kitti2bag -t 2011_10_03 -r 0027 raw_synced

如果指令正常執行,會出現下面的畫面,耐心等他執行完就好了

從零開始做自動駕駛定位(二): 資料集

執行結束之後,會生成一個檔案“kitti_2011_10_03_drive_0027_synced。bag”,這個就是使用KITTI資料集生成的bag檔案了。

三、bag檔案測試

製作完bag檔案之後,要播放檔案測試以下,看顯示出來的資料對不對。

我們就直接用rviz了。製作好的rviz檔案放在了github上的程式碼裡,在kitti_test資料夾下。

執行步驟如下:

1) 啟動ros

roscore

2) 啟動rviz

開啟終端,cd到“kitti_test”資料夾下,輸入指令

rviz -d display_bag。rviz

3) 播放bag

再次強調一下

由於百度網盤單個檔案大小有限制,所以我做了分卷壓縮,需要下載資料夾中bag_file所有的分卷,即bag_file00,bag_file01…,下載完成之後需要在當前目錄下輸入如下指令,把他們再合成一個檔案才能解壓

cat bag_file*>bag。tar。gz

開啟終端,cd到bag所在目錄,輸入指令

rosbag play kitti_2011_10_03_drive_0027_synced。bag

如果不出意外,此時我們就會在rviz上看到下面的畫面了,手託香腮,靜靜地欣賞一會兒吧

從零開始做自動駕駛定位(二): 資料集

上一篇:從零開始做自動駕駛定位(一): 開篇

下一篇:從零開始做自動駕駛定位(三): 軟體框架