今回はロボットに起き上がり動作をさせます。
ちなみに、「よさイチつくロボ」本にはp.181にざっとした説明があるだけで、正直、これだけで起き上がり動作を完成させることは難しそうでした。
そこで、本の著者のページを探してみると起き上がり動作について詳細な解説が載っていました。以下のページを参考にしながら進めていきます。ソースコードもダウンロードして「mr6-1」のプログラムを参照します。
予算1万円でつくる二足歩行ロボット | cog | Meuse Robotics
足のネジを短いものに変える件については既にこのブログでも紹介していますので割愛します。
手先を延長するために付ける部品ですが、これは余った基板があるはずですのでそこから調達します。具体的にはロボットの手先についている部品と全く同じものを先端に接着します(私はエポキシ系の接着剤を使いました)。
上記の著者のページに「Hip Pitch軸をより前方に曲げられるようにサーボホーンの取り付けセンターを前側にひと歯ずらす」とありますが、ひと歯だけだと著者ページの写真と比較して十分な角度が得られない感じだったのでふた歯ずらしました。ずらした分、プログラム中のオフセットを調整します(私の場合、offset[1]の値が-32、offset[10]の値が+32変わりました)。
次は、プログラムの変更です。前回まで作成したソースコードをエディットしていきます。
具体的には、
- 「mr6-1」から「#define STDUP 7」をコピペ。
- 「mr6-1」からint16_t stdupの値を初期化している部分をコピペ。
- 足を曲げた際になるべく前方に足が来るように(ロボットのボディ前面のプレートに足がギリギリ接触しない位置になるように)Hip Pitch軸を調整。具体的には、stdupの[5][1]、[6][1]、[5][10]、[6][10]4つの値を変更。デフォルトではそれぞれ220と-40が入っている。
- 「mr6-1」からリモコンの「↘」に反応する部分(case 129:)をコピペして、さらに処理の中に「nextKeyFrame = 1;」を加える。
- // サウンド出力 のコメントの1行上に、 if(action[nextKeyFrame][12] == 127)actionMode=STOP; を加える。
ちなみに、私の場合上記の220と-40はそれぞれ195と-15になりました。足を曲げすぎてボディに接触してしまうと過電流が流れてマイコンが落ちる可能性がありますし、逆に曲げが足りないとちゃんと起き上がれませんので頑張ってベストな値を探しましょう。
以上の変更後、ロボットを起動してうつ伏せ状態にしてからリモコンの「↘」キーを押します。
はい、上手く起き上がれました。
若干、真っ直ぐ起き上がれていないのは腕のオフセットを全く調整していないためと思われますが、とりあえず起き上がれたのでこのままで良しとします。
次回は、ロボットの電源回路の改良を行う予定です。
0 件のコメント:
コメントを投稿