[紀錄] 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 的開源無人小車專案介紹投影片下載
 
我們預計在十二月還會在舉辦一次小鴨車的工作坊,活動時間與地點近期會公佈,歡迎大家一起來玩。

[活動] Raspberry Pi社群聚會 #21 會後資料(樹莓派在物聯網上的應用案例,從 Maker 到 Mass Production)

第二十一次 Raspberry Pi 社群聚會會後資料,希望透過社群活動的分享和交流,找到更多 Raspberry Pi 的可能。本次主題是「樹莓派在物聯網上的應用案例,從 Maker 到 Mass Production」。過往資訊可看共筆


這次的主題是分享使用樹莓派(Raspberry Pi)量產的經驗或是產品。第一位講者 Henry 將介紹使將樹莓派做成尿素加注機的商業化應用經驗談。


產品的需求是從空污而來。空氣污染的來源之一是柴油引擎的排放物,其組成主要是氮氧化物(NOx)和微粒(包含碳煙),其次是碳氫化合物(HC) 。如果能使用氨氣作為還原劑,可以讓氨氣和氮氧化物反應生成氮氣和水,就可以無害的排放到大氣中。但由於使用氨氣需要一套複雜的控制系統,因此使用尿素(環保汽車尿素,Diesel exhaust fluid)會更為方便,因為尿素的水溶液在 200°C 的溫度以上,會產生 NH3 可達到和氨氣一樣的效果。


由 Henry 所設計的尿素加注機的硬體組成有 Raspberry Pi 和 Arduino。讀取油料的高低和加注尿素是由 Arduino 負責,其資訊會透過 UART 和 Pi 傳輸,而 Pi 則負責顯示畫面,並將加注結果傳回伺服器。


圖為尿素加注機內部的線路。使用 Pi 或是 Arduino 這類硬體的好處,就是在於開發快速。只要設計好適當的線路圖,就可以用麵包板和杜邦線等電子零件驗證想法。如果初步的測試沒問題,就可以手工焊接讓雛型系統更穩固。經過一段時間的實測猴,就能再進行 PCB 的生產等後續量產動作。


產品量產後的問題之一,就是蒐集 log。如果是一開始就有先考慮到的都不會是問題,但你永遠不知道使用者會怎麼用這產品。因此 Henry 曾經接到尿素加注資料讀取錯誤的問題回報,為了第一時間瞭解狀況,就在半夜從台北直奔彰化花壇,只為了取回 log 和釐清問題所在。


大部分的人還是只拿 Pi 做概念驗證,因此提問的人很多,都想多瞭解可能會發生的問題,看能不能少踩幾個坑。

Henry 的投影片下載

 


第二位講者 sosorry 也分享國內外使用樹莓派做產品的幾個要點。第一個案例是使用樹莓派做監控系統。
目前市面上大多數的監控設備都是使用可見光的 Camera,但這會受到天候或是光線等影響,因此為了能降低環境影響,有廠商使用可見光的相機模組熱紅外線影像相機模組融合成監視系統。這是使用雙相機做 alpha blending 的效果。


第二個案例是使用樹莓派做能源監控系統。這是國外所發起的 OpenEnergyMonitor 專案,整體架構包含了可單獨運作的溫度監控模組(emonTH)、可偵測電流消耗的能源監控模組(emonTx)、使用了 Pi 和 ATmega328 擴充板做為系統核心的物聯網閘道器(emonPi),和最後資料分析與視覺化的儀表板(emonCMS)。

特別介紹這專案不只是這已經是量產的產品,而是觀摩別人怎麼經營開源專案。這專案所有的項目都是開源的,包括了硬體開源,但也提供線上購買現成的模組。其次是軟體開源,包括了前端韌體到網頁後台都可以在 github 下載。再來是所有的訊息傳遞都使用開放標準,可方便各種軟體的串接與硬體擴充。當然教學文件教學影片也是必備的,還有線上社群可以作為你最後的支援。以上所有專案資料可以到網站上取得。

最後還分享了一些使用樹莓派量產的注意事項。完整內容可參考投影片
樹莓派在物聯網上的應用案例 from raspberrypi-tw

 


這次 Noah 有給了一個 lightning talk,主要是推廣 FOSSASIAPSLab 的一些精神與產品,和樹莓派是相仿的。不過可惜的是沒有實機展出,也許下次可以結合樹莓派做更多的分享。

 

歡迎大家來參加社群聚會,相關活動我們都會在網頁facebook 公告,如果有主題想分享也請來信 service AT raspberrypi.com.tw。

[活動] Raspberry Pi社群聚會 #19 會後資料(特色相機技術與應用)

第十九次 Raspberry Pi 社群聚會會後資料,希望透過社群活動的分享和交流,找到更多 Raspberry Pi 的可能。本次主題是「特色相機技術與應用(Camera Technology and Application)」。過往資訊可看共筆


這次的活動有發放貼紙,要感謝 SZJapanese Raspberry Pi Users Group 的發起人 Masafumi Ohta 的幫忙。


活動還沒正式開始,就已經有很多人排隊簽到順便拿貼紙了。


今天第一場講者是義晶科技的 Aki。義晶科技做了第一台樹莓派的 360 相機,使用的 image sensor 是 OV10640。


由於樹莓派基金會的 GPU 目前只提供 OmniVision OV5647SONY IMX219 的 ISP 處理,但因為太多人有使用其他相機的需求,因此樹莓派基金會特別提供了一個 rawcam 的存取路徑。只要接上 MMAL 的 vc.ril.rawcam 的 component 就可以取得從 CSI-2 吐出的 raw 檔。更多資訊請參考論壇資訊
因此,使用非官方相機的資料存取路徑,就會是使用 rawcam 的存取路徑:Sensor => CPU memory => copy to GPU memory => GPU process,速度會比標準的存取路徑:Sensor => CPU memory => GPU process 慢了一些。


因為 360 相機是由兩個超過 180 度的魚眼相機所組成,因此如果直接取回 raw 並顯示可以看到兩個鏡頭各別的魚眼畫面結果,這樣的速度是最快。


如果需要將兩個魚眼畫面結果縫合成一張全景圖(Panorama),那還要透過 GPU 的運算後就會慢一些。


如果搭配 Live555 這樣的 RTSP Server,我們就可以將相機畫面轉成 RTSP 的串流。如果再註冊一個 youtube 的帳號,就可以用 360 相機開直播了,把樹莓派當作 Pi 360 直播盒。

AKi 的內容非常精實,如果有興趣的朋友們可以下載投影片。我們很快也會將這款 360 相機上架

 

Raspberry Pi特色相機介紹(熱成像攝影機+微距相機) from raspberrypi-tw


我們第一個展示的是熱成像相機的原理與應用,使用的是 FLIR Lepton LWIR Camera,小小一個鏡頭和橡皮擦差不多的大小卻價格驚人!


熱成像相機根據讀取到的不同波長的紅外線,透過波長與溫度的轉換,將溫度用色彩的方式轉成三維矩陣後回傳。因此我們可以看到溫度從白到黃到紅到紫到黑,顏色越深代表溫度越低。
熱成像相機的能量取得是靠紅外線的熱輻射,因此不受白天、晚上、煙霧、下雨等天候影響,過去是用在軍事上偵測敵人使用。


轉到商用上,就可以用在人型辨識或是人數計算等應用,但會需要透過影像處理的手法才能得到準確的結果。我們也展示了使用 Canny 邊緣偵測的方式,來得到人形邊緣結果。


我們第二個展示是使用微距相機搭配 OCR 做工業檢測,這源自於我們需要快速取得板子上的料號,希望能透過自動畫得方式進行光學文字辨識,並將結果儲存起來做為日後備料使用。
OCR 能使用的技術很多,我們是使用 Pytesseract 這套 Tesseract-OCR 的 wrapper。

 

相機與影像處理是 Raspberry Pi 的特色與強項,我們也會持續發展相關應用。下半年我們會有寵物小車二代,是一個結合行動+影像+機器人架構的專案。

歡迎大家來參加社群聚會,相關活動我們都會在網頁facebook 公告,如果有主題想分享也請來信 service AT raspberrypi.com.tw。