本文為馬薩諸塞大學(xué)阿默斯特分校實(shí)驗(yàn)室研究助理Neil Nie的自動(dòng)駕駛高爾夫球車項(xiàng)目,兩個(gè)人花了一年半的時(shí)間,實(shí)現(xiàn)了自動(dòng)巡航、避障等功能,盡管目前的方案還不夠成熟,但他們一路鉆研自動(dòng)駕駛的熱情值得學(xué)習(xí)。
Neil Nie 是馬薩諸塞大學(xué)阿默斯特分校Joshua J. Yang實(shí)驗(yàn)室的研究助理,在電子工程和微控制器方面有豐富的經(jīng)驗(yàn)。他在App Store上發(fā)布了數(shù)十款應(yīng)用,曾在一次TEDx講座中,向大眾科普過機(jī)器學(xué)習(xí)算法。
從2017年9月開始,他和他的朋友邁克爾一直在開發(fā)一款自動(dòng)駕駛高爾夫球車。現(xiàn)在,車輛可以在某些道路上完成自動(dòng)跟隨,同時(shí)避開障礙物,物體檢測(cè)、交通燈檢測(cè)、車道檢測(cè)、路徑規(guī)劃以及本地化和地圖等內(nèi)容也在逐步實(shí)現(xiàn)。在Neil 的博客上,他們公布了開發(fā)的過程以及處理的模塊/組件列表。智車科技整理了其博客的主要內(nèi)容,以供研究者參考。
一、線控驅(qū)動(dòng)系統(tǒng)
線控驅(qū)動(dòng)系統(tǒng)(DBW)是自動(dòng)駕駛汽車最基礎(chǔ)的部分之一,Neil也碰了很多次壁。擅長(zhǎng)硬件的他,首選了通過硬件去控制車輛轉(zhuǎn)向。在方向盤的底部安裝了 TETRIX齒輪,并制作了一個(gè)電機(jī)支架,將電機(jī)安裝在轉(zhuǎn)向柱上,使用高扭矩直流電機(jī)來控制車輛,然而硬件控制并不可靠。
歷時(shí)三個(gè)月的探索,Neil決定換一種思路,他拆開了原來的轉(zhuǎn)向系統(tǒng),用買來的ServoCity執(zhí)行器換掉了原有的線性執(zhí)行器,然后將其連接到 Arduino(黑客加速器),來控制車輛。
二、具有深度學(xué)習(xí)的自主轉(zhuǎn)向系統(tǒng)
完成了線控改裝后,Neil 將整個(gè)系統(tǒng)整合在高爾夫球車上。改裝組件主要包括:NVIDIA Jetson(車輛的主控制器)、車輛前部的網(wǎng)絡(luò)攝像頭、電腦顯示器、鼠標(biāo)鍵盤、用于轉(zhuǎn)向的直流電機(jī)、帶有電機(jī)控制器模塊的Arduino、用于為轉(zhuǎn)向電機(jī)供電的NiMH電池、外部電源等,不同布線將各個(gè)元件安裝在車上。
車輛改裝完畢后,自然要讓無人車動(dòng)起來。Neil選擇了有名的NVIDIA 端到端控制,使用深度學(xué)習(xí)預(yù)測(cè)轉(zhuǎn)向角度,將單個(gè)前置攝像頭的原始像素直接映射到轉(zhuǎn)向命令。在自主轉(zhuǎn)向系統(tǒng)神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)中,分別參考了Comma.AI、NVIDIA、小型VGG網(wǎng)絡(luò)、以及訓(xùn)練的 ConvNet 網(wǎng)絡(luò)。
三、使用分割和檢測(cè)的基本避障系統(tǒng)
自動(dòng)駕駛汽車最重要的一個(gè)方面是了解周圍的世界。Neil深信使用相機(jī)和計(jì)算機(jī)視覺技術(shù)就可以實(shí)現(xiàn)這一目標(biāo),而不是使用傳統(tǒng)的雷達(dá)或激光雷達(dá)。
多年來,在FCN(完全卷積網(wǎng)絡(luò))的初始提議之后,存在許多用于圖像分割的不同網(wǎng)絡(luò)架構(gòu),如SegNet和DeepLab。盡管它們具有出色的性能,但這些網(wǎng)絡(luò)并不適合所有情況,處理能力非常有限。Neil最終選擇了使用由普渡大學(xué)和波蘭華沙大學(xué)的研究人員提出的實(shí)時(shí)圖像分割網(wǎng)絡(luò)ENet。
ENet的好處是它可以在Jetson上以~10fps的速度運(yùn)行。這是一個(gè)巨大的好處,特別是在自動(dòng)駕駛車等應(yīng)用中。使用CityScapes數(shù)據(jù)集進(jìn)行培訓(xùn),拿到在模擬軟件中訓(xùn)練好的模型,邁克爾和Neil 開始測(cè)試車輛的自動(dòng)轉(zhuǎn)向和巡航控制系統(tǒng)。不幸的是,測(cè)試基本上沒有成功。在系統(tǒng)和測(cè)試條件方面遇到很多問題。這促使他們開始思考系統(tǒng)的魯棒性,特別是語義分割系統(tǒng)。
首先是陰影,卷積神經(jīng)網(wǎng)絡(luò)在處理陰影方面非常糟糕。他們的訓(xùn)練數(shù)據(jù)集沒有很多陰影圖像訓(xùn)練模型,導(dǎo)致圖像分割網(wǎng)絡(luò)感覺是根據(jù)顏色和形狀來執(zhí)行像素分類。
右邊是原始圖像,部分區(qū)域有陰影。左邊是分割結(jié)果。帶圓圈的區(qū)域表明網(wǎng)絡(luò)將陰影既視為道路,也認(rèn)為是障礙。
再一個(gè)是路面積水,在測(cè)試期間遇到潮濕路面時(shí),網(wǎng)絡(luò)表現(xiàn)極差。可能是太陽的反射和道路的奇怪色彩。
還有太陽眩光,神經(jīng)網(wǎng)絡(luò)可以通過眩光正確地分割道路。然而,空中的部分往往會(huì)被略過,車輛在這條路上行駛時(shí),誤分類不會(huì)影響性能。
陰影的問題是困擾大多數(shù)ConvNets的問題。最直接的解決方案是使數(shù)據(jù)集多樣化,并包含更多帶陰影和反射的圖像。但是,創(chuàng)建該數(shù)據(jù)集非常困難。第二種解決方案是使用更好的網(wǎng)絡(luò)進(jìn)行分段,例如RCNN。更準(zhǔn)確的權(quán)衡是速度和記憶。使用更好的網(wǎng)絡(luò)將意味著需要升級(jí)當(dāng)前的車輛計(jì)算機(jī)。
有了語義分割圖像,Jetson簡(jiǎn)單地處理來自攝像機(jī)的視覺輸入,并運(yùn)行分段分析,然后利用串行通信從Jetson發(fā)送到Arduino,根據(jù)圖像輸入逐步控制車輛的不同狀態(tài),實(shí)現(xiàn)自動(dòng)巡航。
目前,Neil 已完成了第一階段的開發(fā),第二階段將更專注于使系統(tǒng)更安全,更可靠。逐步實(shí)施本地化系統(tǒng),寫一個(gè)路徑規(guī)劃器,在地理圍欄環(huán)境中收集更多數(shù)據(jù),改善計(jì)算機(jī)硬件并改進(jìn)傳感器系統(tǒng)。定位模塊使用GPS(全球定位系統(tǒng))來找到車輛的精確位置遠(yuǎn)遠(yuǎn)不夠。需要開發(fā)使用激光雷達(dá)和雷達(dá)(傳感器融合和粒子濾波器)的定位。
盡管Neil的方案還比較粗糙,但是他們對(duì)無人駕駛的熱情值得肯定,期待他們逐步完善系統(tǒng),打造更可靠的無人駕駛高爾夫球車。
-
電機(jī)
+關(guān)注
關(guān)注
142文章
8884瀏覽量
144895 -
驅(qū)動(dòng)系統(tǒng)
+關(guān)注
關(guān)注
3文章
365瀏覽量
26876 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
782文章
13633瀏覽量
165992
原文標(biāo)題:自動(dòng)駕駛高爾夫球車項(xiàng)目
文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論