●基準姿勢を調整する


ロボットを組み立て終わりましたらいよいよ電源を入れて立たせてみます。(4足なので何もしなくても立ちますが。)
"ms03"で作った90°静止バージョンをもう一度作ってください。あるいは、"ms03"の最終形の繰り返し部を「コード」ブロックで囲んでしまいます。上側には「/*」、下側には「*/」を入力します。囲まれたブロックは実行されなくなります。

microsaurus_tutorial_visual_5-1

この状態でロボットに転送して実行します。左右の足をつなぐパーツがメイン基板と平行になっていれば問題ありません。もしそうではなく地面に置いた時にガタガタしてしまう場合にはソフト的にこれを修正します。下記のように修正用の変数"offset1,offset2"(名前はなんでも良い)を使います。

変数は「変数」→「変数を作成」から"offset1"と名前を入力し、「変数__に代入」となっているものをドラッグ&ドロップしてサーボの上にくっ付けます。右側の凹になっている所には「変数」から"0"を持ってきて配置します。変数をもう一つ作成して"offset2"と命名します。

現在サーボブロックに入っている角度ブロックは削除し、代わりに「数値」から「__+__」のブロックを設置します。この足し算ブロックの2つのますに、数値"90"と、「変数」に新しくできている変数(offset1/offset2)を入れてやります。
角度を使うのをやめたのは、普通に数値を使ってもArduinoのコードに変換されたときには結局同じで、角度の場合には正の値のみでoffsetに負の値を設定できないためです。

microsaurus_tutorial_visual_5-2

サーボの角度指定のところに補正値を足して実際に出力される角度を修正しています。offset1とoffset2の値をいろいろ変えてロボットを立たせてみてほどよい値を見つけてください。とは言え、いちいち数値を変更するごとにコンパイルしてコピー&ペーストして、というのはかなり面倒ですので、少し楽になるツールを用意しました。

こちらのArduinoプロジェクトms_correctorをダウンロードしてください。ms_corrector.inoをダブルクリックして実行し、矢印ボタンでロボットに書き込んでください。

シリアルモニタを起動して上部の送信窓から角度補正値を送るとすぐに補正された位置にサーボが動きます。フォーマットは、a,bという形でaはサーボの番号(1 or 2)bはaサーボに与える補正値です。下の受信エリアには、#1サーボの補正値,#2サーボの補正値というふうに表示されます。だいたい良い感じ(ガタガタしない)になったところで補正の値をメモしておきます。今後はいつもプログラムにはこの補正値を使います。

microsaurus_tutorial_visual_5-7

サーボホーンをはめる時にサーボ90°でそこそこ平行に取り付けていれば、プラスマイナス30°ぐらいの範囲に収まると思います。補正値を変数offset1とoffset2に適用して実行してみてください。

●歩行させる

調整が終わりましたら歩かせてみます。4足歩行をサーボ(関節)2個で実現しますので実際の動物の動きとは異なり、工夫が必要です。下に示しましたアルゴリズムは、前足を上下に動かして後ろ足を片足づつ浮かせ、着地している方の足で前方に推進するという方法です。
「/* */」と「シリアル通信」は削除しました。
"ms05-1"で保存します。

microsaurus_tutorial_visual_5-3
または、ブロックの「マイクロサウルス」の中の「前進」ブロックを使って下図のようにしても同じです。
microsaurus_tutorial_visual_5-8

いかがでしょうか。足がちゃんと動いているのに前に進まない等の問題は、地面との摩擦が少ない(滑ってしまう)のが原因である場合があります。紙を敷いてみるなどして確認してみてください。また、滑り止めシールを後ろ足先端に張り付けても効果があります。

●練習問題

後ろに歩かせてください。(恐竜はそういう歩き方はしないと思いますが。)
ヒント:並び順を上下逆に
プログラム例

microsaurus_tutorial_visual_5-4
または
microsaurus_tutorial_visual_5-9
"ms05-2"で保存します。

●練習問題

左右旋回させてください。
ヒント:左右の後ろ足の動きを非対称にします。
・左旋回
プログラム例

microsaurus_tutorial_visual_5-5
または
microsaurus_tutorial_visual_5-10
*必ずしもこれが「正解」というわけではありません。
"ms05-3"で保存します。

・右旋回
プログラム例

microsaurus_tutorial_visual_5-6
または
microsaurus_tutorial_visual_5-11
"ms05-4"で保存します。

<= マイクロサウルス チュートリアル(4)
チュートリアルベース
マイクロサウルス チュートリアル ビジュアル版(6) =>