前回、座った姿勢から直立姿勢へ移行するモーション作りで『座ったポーズから立ちポーズに繋ぐだけではできない』と書きました。今回は、まずその理由を説明するところからはじめましょう。
第一の原因は、サーボが動作する角速度が一定でないという点にあります。
前の日記にあるロボットの画像『座ったポーズ』から直立姿勢に移行する場合、脚が伸びて立ち上がるのと同時に、腕が身体の前から横へ移動します。
立ち上がるためにサーボが回転しなければならない角度はまちまちですが、全てのサーボがRobovieMaker2で指定されたステップ数で動作を終えるようになっています。
具体的にいうと、脚部のサーボは非常に早く動き、腕を動かすサーボはゆっくり動きます。このため、立ち上がる途中で膝のあたりと手の先端部分が接触して「ガチャン」という不快な音を立てるのです。
このモーションの場合は単にぶつかって音を立てるだけですが、場合によっては部品同士が引っかかって動けなくなり(サーボロックとかモーターロックとか呼びます)、結果サーボに過大な負担がかかって故障の原因になりかねません。
そんなわけで、脚を伸ばす前にまず、両腕を広げるポーズを作らなければなりません。

次にここから脚を伸ばして立ち上がるのですが、ここでまた問題発生です。今度の原因は、サーボの動作角度の違いです。

右図を見るとわかるように、脚を動かす3つのサーボのうち、腰部と足首部は90°弱動けばいいわけですが、膝部分は180°近く回転する必要があります。膝の動作角度は倍になるのです。
ところでサーボの動作する角速度は、サーボに内蔵されているモーターとギア比によって上限が決まっています。見た目に「スッ」と立ち上がっているように見せるために、ステップ数は少なめにしてあるのですが、このステップ数では膝のサーボがきちんと回転しきれないようです。
結果、右図の一番右のように腰と足首は立ち上がったポーズになっているのに、膝はまだ曲がっているために、立ち上がる途中で後ろ向きに倒れるようになってしまいました。立ち上がり動作の勢いの影響もあるのでしょう。
そこで、膝サーボの動作に合わせてステップ数を増やすよりはすばやく直立姿勢に移行できるように、立ち上がる直前で少し前重心のポーズを挟むことにしました。

足首のサーボだけをわずかに前重心になるようにして、膝サーボの動きを待ちつつ立ち上がり動作の慣性を打ち消すようにしてみたのです。
ここまで立ち上がれば、あとは足首をわずかに起こすだけ。

これで、『座った姿勢からの立ち上がり』モーションが完成しました。
ホビーロボットのモーションの作り方が、なんとなくわかっていただけたでしょうか?
続く。