Danny
(Daniele Benedettelli)在去年底(2013)出了一本教導以Lego Mindstorms EV3市售版(L31313)製作五個機器人專案的書:“The Lego Mindstorms EV3 Laboratory”。
Danny的書一向內容紮實、言之有物,這本書也不例外,無論是對EV3硬體、軟體的導引說明,亦或是機器人專案中的機構設計與程式技術,詳讀研究必定能獲益良多,作為工具書也非常合適。
本書所採用的EV3市售版(L31313)相較於教育版(L45544),雖然少了陀螺儀(Gyro)和超音波感應器(Ultrasonic
sensor),不過多了IR Sensor及IR
Beacon發射器,這兩者的組合可以提供EV3具有遙控、障礙迴避以及偵測IR信號源方位(Heading)與迫近程度(Proximity)等功能,而這些功能在本書的各個專案中都有相關的應用範例,這也是值得一提的內容特色。
在封面上的威猛機器暴龍(T-R3X)正是本書的五個專案之一,這是一種利用重心移位方式邁步的雙足步行機器人(Weight-shifting biped walker)。
下面的影片是它完成後的運作情形:
※ 從影片的00:40開始,可以觀察到控制T-R3X邁步的方式為:
(1)身體向右傾斜,
(2)以著地的右腳為支點抬起左腳向前,
(3)再將身體向左傾斜,
(4)以著地的左腳為支點抬起右腳向前。
(1)身體向右傾斜,
(2)以著地的右腳為支點抬起左腳向前,
(3)再將身體向左傾斜,
(4)以著地的左腳為支點抬起右腳向前。
※ 在01:30處開始,當T-R3X的IR Sensor偵測到前方有障礙物時,先以Sound Block撥放恐龍吼叫的聲音檔案,同時張合上下顎作出嘶吼的動作,接下來以IR Sensor判斷應該轉彎的方向,由影片可以看到T-R3X開始往它的左側轉彎。
※ 從01:40起到01:59可以看到T-R3X如何進行向左轉彎的動作,這裡需要一點想像力,據Danny在書中說明的原理和方法是這樣的:
(1)將身體向右傾斜,讓重心支點落在右腳,
(2)當正在移動左腳的同時突然再向右傾斜,這時基於角動量守恆定律,下半部的足部因重量較輕,所以會往左偏轉。
(1)將身體向右傾斜,讓重心支點落在右腳,
(2)當正在移動左腳的同時突然再向右傾斜,這時基於角動量守恆定律,下半部的足部因重量較輕,所以會往左偏轉。
T-R3X的機構設計:
(一)軀幹機構,包含使用L-Motor作為驅動的兩個機構:
(1)向左/右傾斜身體的重量位移機構。
(1)向左/右傾斜身體的重量位移機構。
(2)抬/放 雙足的機構。
(二)頭部機構,包含使用M-Motor驅動頭部上下顎張合的機構,以及上方的IR Sensor作為遙控、偵測障礙物與捕捉獵物等功能
(三)尾巴機構,連接在身體的重量位移機構,會隨著身體左/右傾斜時而擺動
完成後的威猛外觀:
T-R3X的程式設計:
Danny對於本書五個專案的程式設計強調了一個重要的觀念:
(1) 機構的設計應盡可能完善,以減輕或簡化程式所需要的檢查與控制功能。
(2) 將基本的運作功能封裝成My Block,以一方面簡化主程式的複雜性,另一方面可以重複利用這些My Block組合出不同的應用功能。
T-R3X充分落實了上面所提到的原則,將邁步、轉彎、嘶吼、咀嚼獵物、迴避障礙等功能製作成My Block,
並以這些My Block組合出三種應用:
(1) 漫步模式,就如同前面影片所展示的運作模式。
(2) 遙控模式,以IR Beacon遙控T-R3X執行對應動作。
(3) 自主意識模式,使用Finite State Machine讓T-R3X具有簡易的自主行為模式,可以對一些預設的事件作回應。
沒有留言:
張貼留言