モーション編集をを始める

手始めに、既存の初期化.RM4ファイルを修正してみる

初期化.RM4

  は、ロボの電源ON時に実行されるモーション・ファイルで、操作マップ画面でファイル指定する。MotionWorks取説「5-2.初期化モーションの例」を参考に編集してロボ電源ON時の思わぬ挙動を防ごうとしたのだが、どうも様子が違う。サーボをONすること無く初期化終了し、残りはサーボ補正演算用の変数初期化処理になっている。
 取説の周辺記載を頼りに探し出したサーボON/OFF.RM4と突き合わせた結果、サーボON時の挙動制御を一箇所に纏めたうえで初期化は変数初期化だけ、という処理分担に変更したようだ。変更に一理あるものの、これでは取説の意味ないねぇ。

 現状の処理分担を追認したうえで編集開始...

  1. Z軸ジャイロ補正演算用変数の初期化処理を追加
    前記事で新規追加したZ軸ジャイロ用の変数を準備。
  2. 自由歩行(?)用のサーボ補正演算変数の初期化処理を全て削除
  3. サーボON/OFF用の変数を陽に初期化
    同一変数をあちこちから触るのは好かないが、モーションから参照される以上は初期値の保証が必須だ。
    致し方ない。
  4. 全サーボOFFではあるが、基準姿勢モーションのP0は「お守り」として残しておく
  5. 「こんにちは」と話す発声処理を追加
    ROBOZAKと異なり電源LEDが筐体内で視認困難なので、これで電源ONが判りやすい。

編集済モーションをロボのCPUボードに書き込みがてら、操作マップのモーションファイル構成も編集して、コントローラ操作での自由歩行を削除。UART経由の自由歩行はラズパイ連携のサンプルとして残した。

USB接続を外して初期化処理を確認

 CPUボードに書き込み後、ロボの電源をOFFし再度ONしたのだが「こんにちは」と言ってくれない。
どうやらロボとPCをUSB接続したままでは、MotionWorksの通信を切ってもロボがスタンドアロン状態にならないらしい。そういえば、USBケーブルをPCに接続した途端にロボの電源が自動ONする。USB接続優先なんだろう。
USBケーブルを外してからロボを電源ONすると、無事ご挨拶してくれました。(笑)

初期化.RM4(オリジナル)




黄枠:自由歩行用変数の割当てと初期化

茶枠:X軸とY軸ジャイロ補正用変数の割当てと初期化

茶枠に続くP0は基準姿勢モーションだが、サーボON処理は見当たらない












初期化.RM4(編集後)

紫枠:サーボON/OFF変数の初期化(サーボOFF)

ピンク枠:Z軸ジャイロ補正用変数の割当てと初期化

赤枠:発声処理


















操作マップのモーションファイル構成を編集

  •  初期化モーション・ファイルの指定箇所が緑枠内
  •  コントローラ操作の指定が橙枠内(自由歩行.RM4の指定を削除)
  •  UART経由の指定が青枠内

※この記事が何かのお役にたつことを願っていますが、記事内容についてのいかなる保証もしません