Udacity-datasheet of self-driving配置

(還存在圖片上傳失敗的問題,暫時先懶得管了emmm)
最近在實驗室在做基于深度學(xué)習(xí)的無人機的自主飛行控制,建立的神經(jīng)網(wǎng)絡(luò)模型需要一些數(shù)據(jù)集訓(xùn)練,所以就找到了Udacity開源的無人駕駛數(shù)據(jù)集(既然都是自動運行的系統(tǒng),所以可以有通用性)

環(huán)境:ubuntu16.04

數(shù)據(jù)集地址:

https://github.com/udacity/self-driving-car

這個數(shù)據(jù)集是rosbag的格式,解析rosbag也是一個挺難的東西吧(反正我沒搞出來),以下是幾種方法

一、使用ros中自帶的lunch工具

二、使用matlab

以上兩部分先占個坑,暫時還不想寫(反正此路不通)

然后進(jìn)入正題,善良的(劃掉)Udacity給我們提供了一個用于解析這個ros包的腳本,名為udacity-driving-reader,我去好感動(劃掉)是不是,好貼心還給了我們腳本?。ㄒ娨韵骆溄樱?/p>

https://github.com/rwightman/udacity-driving-reader

天真的人類 ----不知道出自誰

接下來仔細(xì)講一下這個的配置過程以及其中的坑:

三、進(jìn)入正題

step1:“reader”的官方文件以及docker的安裝

在github的README中,對于這個包的使用方式是這樣的:

[圖片上傳失敗...(image-b91e53-1536678333895)]

這是個什么意思呢,簡而言之就是要想解析rosbag包必須在ros環(huán)境里面(理論上說matlab也是可以的),因此這個大佬在docker容器中虛擬的ros環(huán)境以及配置該文件所需的其他環(huán)境(PS:不知道docker為何物的移步:[https://blog.csdn.net/abcdocker/article/details/53158210])

我假定你看了這個鏈接以后已經(jīng)知道如何安裝docker了(事實上也并不難,我在這一步并沒有遇到什么問題,真正的挑戰(zhàn)還在后面(吐血))

step2:真正開始運行指令

docker配置好以后,cdbuild.sh路徑之下,就可以開心的運行下面的代碼:

./build.sh

我在這一步遇到了如下問題:

[圖片上傳失敗...(image-17ad66-1536678333895)]

查了之后是沒有給docker命令root權(quán)限,在前面加一個sudo就好了,即:

sudo ./build.sh

然后會出現(xiàn)如下結(jié)果,這是在配置docker環(huán)境(實際上這個過程極慢,要執(zhí)行如圖所示的六步,只不過是我之前執(zhí)行過):

[圖片上傳失敗...(image-cfe3b2-1536678333895)]

這樣一個用于運行該腳本的docker容器就搞定了。

好戲還在后頭

step3:shall we begin?

(PS:這部分的begin是為了本次配置最大的bug而致敬,順便致敬龍媽(有人知道這句臺詞嗎2333))

如github所示,要想得到圖像集以及其標(biāo)注,需要運行這個代碼:

./run-bagdump.sh -i /data -o /output

ok,那我們開開心心運行一下吧!

等會,這個命令的參數(shù)是啥??

這個在另一個github項目中(也是Udacity的github(只不過我暫時找不到了))有解釋:

/data 是rosbag文件在計算機里的絕對路徑(注意這個路徑下面有且只能有一個bag文件)

/output是你想要輸出的結(jié)果的絕對路徑

妥~這個問題搞定了,接下來我們運行代碼(記得還是要加sudo

報錯

[圖片上傳失敗...(image-f63ea0-1536678333894)]

好吧這不是大問題,我之前配置的時候也沒有遇到,是為了寫博客重新跑了一遍代碼,不小心搞錯了(這個圖片不直觀,這個的意思是只運行了代碼,沒有輸出任何結(jié)果(沒有遇到這個問題的自行忽略?。。?。

出現(xiàn)這個的原因是路徑不對,沒有相應(yīng)的文件夾。

虛驚一場

改正錯誤以后,繼續(xù)運行代碼

報錯

[圖片上傳失敗...(image-4478d1-1536678333894)]

唔這個問題的出現(xiàn),代表著你遇到了一個壞消息,一個好消息:

好消息是你之前的配置都是對的;壞消息是這個問題很棘手(好吧其實找到方法以后也很簡單)

step4:處理問題

我不知道熟悉python的人遇到這個問題怎么搞,總之我這個小白最先想到的是這個dateutil的版本對不對,好吧不管對不對吧,先下載一個他要求的版本再說:

pip install python-dateutil==2.5.0

安裝好并沒有什么用....錯誤依然,所以怎么辦呢,看看這個run-bagdump.sh里面的代碼:

[圖片上傳失敗...(image-554cc8-1536678333894)]

可以看到,這個是要調(diào)用一個叫bagdump.py的python腳本,所以我們嘗試從源代碼方向解決問題。

(我才不會告訴你我把pandas給注釋掉了)

事實證明這個辦法是有點用的,把pandas注釋掉以后,這個腳本可以運行一半——圖片提取出來了,但是標(biāo)注提取不出來

(廢話,源代碼的重要的一個庫被注釋掉了,怎么可能能搞定!)

我們看一下代碼:

[圖片上傳失敗...(image-a39c78-1536678333894)]

這里pandas的作用是將標(biāo)注提取出來,并輸出到CSV——(我有一個想法,是否能用numpy實現(xiàn)這個功能,顯然我沒有實現(xiàn)....(哪位大佬要是搞定了給我說說哇))

step5:搞定了!

以上這些過程我用了三天你敢信?

我們繼續(xù)回到這個github,在issue里面有這樣一個問題:

[圖片上傳失敗...(image-554a76-1536678333894)]

哇塞這不就是我的問題?!

解決方案是:

在dockfile中加入如下代碼:

#update pandas RUN pip install python-dateutil==2.5.0

顯而易見了,這是要在docker環(huán)境里面構(gòu)建dateutil的2.5.0版本,改了以后重新build,會發(fā)現(xiàn)在之前build的基礎(chǔ)上確實install了一個dateutil 2.5.0

重新執(zhí)行run,執(zhí)行成功,如下圖所示:

[圖片上傳失敗...(image-fae8c2-1536678333894)]

[圖片上傳失敗...(image-82d6e3-1536678333894)]

當(dāng)出現(xiàn)這兩個圖片的時候,就意味著這個reader終于運行成功了,rosbag包終于解析出來了!

貼圖

[圖片上傳失敗...(image-44d5b4-1536678333894)]

最后

其實不是什么大問題了,但還是寫出來吧:

這個是只讀的文件,要運行如下命令才能去掉上面那個鎖子:

[圖片上傳失敗...(image-534156-1536678333894)]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容