インターネット経由でロボットを動かす
ロボットのモーションを作成する「モーションエディタ」
ロボットのモーションを作る場合、SPC-101Cでは「モーションエディタ」というソフトを使います。モーションエディタでは、ロボットにデータを送信し、ロボットを実際に動かして、またはパソコン上の3Dアニメーションで、作成したモーションを確認できます。
絵や人形などを少しずつ位置や形をずらして1コマずつ撮影し、映写すると動いているように見えますね。いわゆるアニメーションです。ロボットのモーションを作成する作業は、まさにこれと同じです。
アニメーションのコマにあたるものを「ポーズ」といい、複数のポーズをつなげたものを「モーション」といいます。
例えば、「片足でバランスを取って立つ」という動作を「コマ=ポーズ」に区切って考えてみるとどうなるでしょうか。大まかに分解してみると次のようになります。
1)直立して安定した姿勢
↓
2)右足に重心を移動する
↓
3)左足を上げる
↓
4)左足を下ろす
↓
5)重心を体の中心に戻す
このような5つの動きがつながって「片足でバランスを取って立つ」という動作になることがわかります。モーションは、ポーズを時系列に並べて連続させたものなのです。
しかし、モーションエディタで見るとうまく動くのに、ロボットで再生してみたら転んでしまった、ということがあります。これは、パソコン画面の3D画像のロボットは実際の地面に立っておらず、体の中心を基点として動作を行うためです。一方、実際のロボットは足で着地して立っているので、足を基点とした動作を行います。
また、ロボットには重さがあります。人間が重心を考えてバランスを取らないとふらついたり倒れたりするように、ロボットも重心が大事なのです。
ロボットの動作をモーション単位で制御する
ロボット用コマンドサーボの制御の基本は「ポーズ」と「モーション」です。実際の例を見ながら説明していきましょう。
・ポーズ:各サーボが原点からxx°の指定角度で静止した状態のこと。アニメーションに例えると「原画」。
・モーション:ポーズとポーズをxx秒で動くように指示した結果のこと。アニメーションに例えると「動画」。
ポーズファイルの一例の中身をリスト1に示します。これをモーションエディタで見ると図1のようになります。ご覧のようにバンザイしただけの単純なポーズです。右肩サーボが+135°、左肩サーボが-135°になっているのがわかります(時計回りが+符号、半時計回りが-符号です)。
次に直立不動からバンザイまで1秒(1,000ms)で動くモーションの中身をリスト2に示します。一応、同期サウンドも付けてみました。ご覧のように総ポーズ数、ポーズ時間軸を示すキーフレームなど、それぞれポーズが含まれています。
モーションファイルとは、このようにポーズをずらっと並べて時間軸を与え、同期するLED表示やサウンド再生のタイミングを記述したものです。テキストをベタ打ちしてもポーズやモーションは作れます。しかしそれでは相当煩雑になるので、モーションエディタで生成するわけなのです。