2018年3月11日 星期日

Otto機器人之簡易版的移動方式

Otto機器人動作之程式碼分析2一文中,使用了比較複雜的方式,本文要以比較簡易的方式來實現前後左右的動作。首先說明本文中的腳與腿的位置,腿是指在Otto身體腰部的那兩個Servo,腳是指在Otto腿部的那兩個Servo,見下圖:


為了方便說明,所有的動作先以站立時為中心,實際情況還得考慮機構的一些細節,例如Otto的重量分布的問題。

前進與後退以左腳為起點,讓Otto的重心往前,並讓Otto左右擺動,Otto就會前進了;讓Otto的重心往後,並讓Otto左右擺動,Otto就會後退了。

角度變化可以類似下面的例子。
前進與後退時腿的角度變化:
90 --> 75 --> 60 --> 75 --> 90 --> 105 --> 120 --> 105 --> 90

前進時腳的角度變化:
90 --> 80 --> 70 --> 80 --> 90 --> 100 --> 110 --> 100 --> 90

後退時腳的角度變化:
90 --> 100 --> 110 --> 100 --> 90 --> 80 --> 70 --> 80 --> 90

向左走與向右走的想法就是讓重心偏移,也較就是在向左走時,重心偏左;在向右走時,重心偏右,這想法會很像螃蟹橫著走。

方法之一:
向左走 ==> 將Otto的右腳撐起,然後上下擺動左腳。
向右走 ==> 將Otto的左腳撐起,然後上下擺動右腳。

方法之二:
向左走 ==> 將Otto的右腳撐起,然後同時上下擺動兩腳。
向右走 ==> 將Otto的左腳撐起,然後同時上下擺動兩腳。

在此可以下載mBlock的範例程式

示範影片:


以上兩個影片不同處是在向左右走的方式細節不一樣。