一臺可被稱作機器人的機器,必須要能感應環境并對其產生影響。這也是傳感器做為機器人學關鍵的原因,而懂得使用傳感器打造智能機器人,對有心打進機器人學圈子的各位而言至關重要。
在本文中,我們要認識的是稱為「感知>判斷>動作」(sense > think > act)的機器人運作。這個運作在機器人學的應用相當廣泛,也是了解如何編寫機器人程序一個很好的切入點。讓我們開始吧!
選擇傳感器
我們有多少物理特性可以測量,就有多少傳感器可以使用,但我們先從HC-SR04超音波距離傳感器開始,因為它便宜、單純,而且在機器人學中用途廣泛(它還有很方便的Arduino數據庫)。
定義機器人模型
這個傳感器可以偵測距離,所以我們先做一個會閃避障礙物的簡單機器人吧。這種機器人可以前進、后退,并定點旋轉到任何方向。距離傳感器就安裝在機器人的正面。有了這個機器人的概念之后,讓我們來看如何讓它運作。
什么是感知、判斷、動作?
感知、判斷、動作是一種決策循環,可以用來為機器人解決很多問題,而且非常地簡單。在我們的例子中,機器人必須感測前方是否有障礙物,接著判斷是否可以前進、或是否應該轉彎或后退,之后便會依照決定來動作。這樣的邏輯可以套用在任何機器人上,適用任何傳感器,幾乎可以進行任何動作。
了把這種邏輯寫成用來控制機器人的程序代碼,我們必須描述得更加精確,讓我們由以下的方法來創造簡單的機器人行為模式:
1. 機器人感應前方3cm內是否有任何障礙物。
2. 若無障礙物,則前進。
3. 若有障礙物,則后退。
這很容易轉換為程序代碼,但我們可以預見這套邏輯會讓機器人在遇到墻壁時卡在前后來回的循環。它會先前進直到偵測到墻壁,接著后退到偵測不到墻壁,然后再前進,不斷重復。我們可以用以下的方式來改良它的行為模式。
1. 機器人感應前方3cm內是否有障礙物。
2. 若無障礙物,則前進。
3. 若有障礙物,則右轉,再返回第1步。
機器人會重復這個循環,直到找出3cm內沒有墻面的方向。
現在我們就有了一個可以確實讓機器人避開障礙物的感知、判斷、動作模型。這并不是很精密的模型,我們還可以增加很多細節來提升閃避障礙物的能力。
即使是簡單的機器人,只要運用復雜的感知、判斷、動作模型,還是可以設計出非常聰明的行為模式。這就是機器人學的精隨:聰明的都在軟件里!
我們目前的行為模式效率有點低,因為機器人要右轉的時候需要先左轉三次。現在我們在前面的三步驟后面加上第四步來改良行為模式:
4. 若有障礙物,則左轉,再返回第1步。
1. 機器人偵測前方3cm內是否有障礙物。
2. 若無障礙物,則前進。
3. 若有障礙物,則左轉并再次偵測。
4. 若無障礙物,則前進并重設循環。
5. 若有障礙物,則右轉并再次偵測。
6. 若無障礙物,則前進并重設循環。
7. 若有障礙物,則機器人繼續右轉,直到無障礙物。
樣一來機器人就會檢查左右兩邊有沒有墻面,代表它的移動會更有效率。我們現在可以發現連這樣簡單的行為,在描述上也開始變得復雜,但如果把這套行為模式想成一系列的感知、判斷、動作循環,就更容易理解了。
就這樣,我們已經把一套簡單的感知、判斷、動作行為模式建構成可以實際應用的障礙閃避程序。接下來要把這套行為模式轉換成程序代碼很容易,而我們也就可以開始做各種機器人學的嘗試了。再加裝更多距離傳感器,甚至不同種類的傳感器,便能讓機器人的行為模式更加精密。只要記得把動作分解成感知、判斷、動作的循環,就能做到很多事!
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753077 -
機器人
+關注
關注
211文章
28380瀏覽量
206916
發布評論請先 登錄
相關推薦
評論