淺談Arduino機器人與機器視覺(二) - CAVEDU教育團隊

文章推薦指數: 80 %
投票人數:10人

在結合視覺的機器人控制中,影像處理所需要的運算量算是較高的,而我介紹的第一種方法是電腦與Arduino控制板的硬體分工. 想當然之,最麻煩的影像處理工作我們 ... Skiptocontent 在上一篇淺談Arduino機器人與機器視覺(一)的文章中,我們談到Arduino機器人結合機器視覺的可行性,並在最後點出了Arduino在硬體上無法即時回傳影像(圖片)的問題.如果有朋友點進此文章觀看,也建議您從上一篇開始看起以免遺漏某些精彩的討論內容. 而雖然我們解讀說是硬體上的速度不夠快,但其實各方面多少會彼此影響.我們能保證調整攝影機中影像的大小後,它更新影像的速度仍是30FPS嗎?? 我們能保證Arduino要同時控制機器人動作又要讀取感應器,速度上不會受到影響嗎?? 這些可能都是必須考慮進去的問題,而其中兩個裝置之間的資料要能互相傳遞勢必要建立好兩者的通訊. 其中在Arduino上有支援的通訊方式有I2C和TTL兩種,根據不同的通訊方式,資料傳輸的速度也會不同. 既然有這麼多因素會影響,而大家又希望可以將機器人與機器視覺相結合來創造更多有趣的應用與研究,也因此大家對硬體的要求也會相對的增加. 我們會希望控制板有像電腦般的運算能力,我們希望官方提供如同電腦般多的資源與OpenSource等.像是DSP.FPGA.ARM等等的控制板是大部份人的選擇,除了具備媲美電腦的運算能力與通訊周邊,更擁有較大的記憶體空間並能使用Arduino所沒有的平行處理功能來加快運算的速度. 然而Arduino的熱潮在這幾年席捲各個領域的Maker們,甚至是一躍成為主流的控制板,很多人說不定在還沒聽過8051.PIC前已經先聽到Arduino的名號了.雖然Arduino無法單獨做到上述談論的事情,但有許多研究單位與Maker們願意憑著對它的熱愛找出合適的方法放手一搏,而大家其實最常使用的方法不外乎就是四個字~~ 硬體分工 在前面我們已經提過Arduino硬體本身的運算量無法達到我們的要求,那麼最好的方法就是把機器人必須完成的各種任務根據運算量的大小來決定硬體分工的標準.而根據硬體的功能不同,分工的方式也會有所差異,但其實主要的型式是一樣的,以下偉民老師將主流的硬體分工方式分成兩種進行介紹:   一.電腦(筆電)與Arduino控制板的硬體分工 在結合視覺的機器人控制中,影像處理所需要的運算量算是較高的,而我介紹的第一種方法是電腦與Arduino控制板的硬體分工.想當然之,最麻煩的影像處理工作我們會希望是由電腦來幫我們做,畢竟電腦本身的資源最多,像是OpenCV.Matlab.Labview.Processing等等.也因此我們不用再將整個圖片傳送到Arduino控制板造成運算量不足的問題,只要將處理的結果像是像素.座標.特徵點.目標位置等資訊傳輸給Arduino即可. 其中為了提高機器人的機動性,大部份的玩家選擇使用無線訊號傳送資料,像是WIFI.ZigBee.Bluetooth等.這時可能會有人想問這樣速度不會太慢嗎?? 當然不會,因為資料不再是整張圖片,而是處理完的結果. 優點:電腦本身運算量大且資源豐富,在使用較深入的影像演算法較易實現且不易有運算延遲的問題. 缺點:不論是使用無線訊號或是訊號線連接兩裝置,都會使機器人的機動性受到無線訊號接收範圍或訊號線長短的影響. 講到這裡或許有人會不同意我的說法,如果機器人的馬達夠力空間夠大,那我就直接把筆電放在機器人身上不就解決機動性不足的問題了嗎?? 沒錯,我完全同意這個說法,因為我的碩士論文也是這樣做出來的!!!(有興趣的朋友可以看一下,雖然還沒開放.實驗的結果在這裡) 這也是為什麼現今有很多機器人仍然那麼大台的原因,畢竟很多困難的演算法還是必須有電腦等級的運算量才能做到!!   二.視覺控制板與Arduino控制板的硬體分工 除了上述的方法外,方法二-使用視覺控制板與Arduino控制板的硬體分工可以說是方法一的簡化版.其實方法一是過去大部份玩家選擇的方法,甚至是在8051與PIC當紅的時候的做法.然而有許多的科技公司開始想說我何不把視覺感應器與處理影像的控制器相結合變成一塊視覺控制板呢?!也因此開始有這樣的產品出現在市面上了. 其中最有名的是SparkFun公司出產的CMUcam,目前已經研發至第四代的CMUcam4了.如有興趣也歡迎向CAVE團隊購買此產品(連結在此). CMUcam4的函式庫能完全支援Arduino與BasicStamp控制板,此外它的接腳能與Arduino控制板直接相結合,實在是太方便了!! 另外還有一款視覺控制器Pixy,其實它就是CMUcam5(後來才發現>



請為這篇文章評分?