[紀錄] Raspberry Pi社群聚會 #23 會後資料(樹莓派自走車)

第二十三次 Raspberry Pi 社群聚會會後資料,希望透過社群活動的分享和交流,找到更多 Raspberry Pi 的可能。本次主題是「樹莓派自走車」。過往資訊可看共筆,報名可到 KKTIX

天瓏書局(Tenlong Bookstore)
這次的活動是在天瓏書局 CodingSpace 舉辦,場地很新設備很好,小老闆很給力提供了很多協助。

Raspberry Pi社群聚會 #23(Raspberry Pi Meetup #23)
但這次因為報名人數爆棚所以略顯擁擠,下次聚會要吃 Pizza 應該會更擠吧?

樹莓派基金會贊助貼紙(Raspberry Pi Foundation donate stickers to us)
這次活動樹莓派基金會有贊助貼紙,所以來參加的朋友都很開心的拿了不同的貼紙做紀念。

如何玩Donkey Car(Donkey Car How to Play)
這次的講者李翼介紹 Donkey Car 怎麼玩。Donkey Car 是一個機器學習加上馬達控制的綜合型專案,也就是使用者先在車道上使用搖桿控制小車,並且將影像資訊和搖桿資訊記錄下來。再將蒐集到的資料訓練出對應的模型,之後再把訓練好的模型放到小車上試著讓它自走,並持續做蒐集資料、訓練模型、測試小車的動作直到符合預期結果。

Donkey Car硬體清單(The Donkey Car Hardware List)
Donkey Car 的硬體清單,包含了 Pi 3、車體、相機模組、搖桿以外,還用了冰棍做相機支架,非常有趣。


目前比較難取得的是 RC Car,還要再搭配專用擴充板,不過這都可以再進行改造的。對 Donkey Car 來說,相機模組是唯一的資料輸入來源。

Donkey Car軟體架構(The Donkey Car Software Architecture)
在 Donkey Car 的軟體架構中,包含了認知(Perception)、規劃(Planning)、控制(Control)和資料收集(Data Collection)等步驟。所謂的認知就是自駕車需要取得當前的狀態(state),包括是否正在前進還是後退?如果知道狀態以後,就可以根據條件做規劃,例如左轉、右轉或是避障等。有了規劃結果以後就可以發出控制訊號來控制馬達調整車子動作,最後就是持續把從相機讀進來的影像資料或是搖桿資料給保存下來。

Donkey Car身經網路(The Donkey Neural Network Model)
Donkey Car 的核心精神就是使用神經網路將影像和對應的動作做連結,因此選擇適合的模型與調整參數是很重要的。

Donkey Car資料類別(The Donkey Car Data)
除了有好的神經網路模型以外,如何挑選好的資料在機器學習領域也是非常重要的。對此李翼分享了自身的經驗,不能只給模型乖乖的控制資料,必須要加上一些錯誤再導正的控制資料,就像是我們人在開車時的行為。

Donkey Car車道設計(Donkey Car Lane Design)
車道設計也是大哉問,不論是地板材質、膠帶材質與顏色都會影響辨識結果,並且特別要注意車道轉彎角度必須要小於車子的迴轉半徑,才不會做出一個無法跑得賽道出來。

結語
最後的結論就是雖然神經網路是一個黑盒子,但多數的行為是可以根據訓練資料而得到的,因此除了模型設計以外,使用乾淨和有設計過的資料做訓練才會得到理想的結果,也就是 “餵什麼像什麼”。


李翼的分享非常精彩,中場休息時還被團團圍住。大家都想要在這次的分享吸收講者的經驗以減少自己摸索的時間。

驢車學走路(樹莓派在自駕遙控車的應用)的投影片下載

 

源自於MIT的小鴨車專案(Duckietown Project from MIT)
我們這次介紹小鴨城(Duckietown)專案,這是一個基於 Raspberry PiROS 的開源無人小車專案,源自於 MIT。在 2016 年課程初設計時,還是一個靠著影像辨識加控制理論所搭建的自走車平台,但到了 2017/2018 年已經可以結合機器學習做到多種環境識別與容器化等更適合在學校推廣的機器人平台。


這是在 2016 年課程(2.166)的架構,一開始會需要設定樹莓派(Duckiebot)和開發環境(Virtualbox),並且讓兩邊的網路透過名稱解析方式互通。一開始會做車輪校正(Wheel Calibration)確認小車能行走直線不偏移,再來從小車的視角去觀察世界可以看到如果要做到最簡單的車道跟隨(Lane Following)會需要找到左邊的黃色線段和右邊的白色車道,因此經過影像處理的技術,包括色彩空間轉換、濾波、邊緣偵測和找直線等可得到黃線和白線的線段座標。再經過相機校正(Camera Calibration)後,可以讓影像資訊從二維相機影像座標映射到真實世界三維座標。最後經過投票與條件機率可決定最適合的參數,再根據此一參數調整馬達控制訊號讓小車狀態改變達到能沿著車道行走的功能。

車道跟隨展示(Lane Following Demo)
sosorry 也展示了車道跟隨(Lane Following)的功能。但當天的光線太暗,黃線的部份並沒有清楚的看到,但在經過亮度補償後有改善,可以完整跑完一圈。

採果機器人展示(FarmHarvestBot Demo)
我們在之前的工作坊有遇到 FarmBotTUG 的朋友,他們開了一個新的採果機器人專案(FarmHarvestBot) ,希望能做到可以自動採收水果的機器人。我們也根據他們的想法做了一個簡單的展示,可以一邊自走 S 型車道,再一邊進行手臂控制夾取物品。未來將會做成原型車,能透過影像辨識再使用機器手臂自動抓取物品。

小鴨城(Duckietown)一個基於Raspberry Pi和ROS 的開源無人小車專案介紹投影片下載
 
我們預計在十二月還會在舉辦一次小鴨車的工作坊,活動時間與地點近期會公佈,歡迎大家一起來玩。

[MagPi] 六月份的 MagPi 出來了(Issue 34)

六月份的 MagPi 出來了。

這期最精彩的應該就是介紹 Windows 10 IoT 是什麼? 如何安裝 Windows 10 IoT 在 Raspberry Pi 上。其他有趣的內容還包括:
- 使用 Pi + L293D 控制傳統鬧鐘。
- 使用 Openbox 視窗管理員客製化外觀。
- 如何在 Raspberry PiCUPS 設定印表機。
- 用 Pygame 寫遊戲。
- 產品新知,包括 4tronix AgoboKanoMaArm 還有 Ubuntu Mate 15.04

詳細內容請看:https://www.raspberrypi.org/magpi/issues/34/