モーションプログラムの作成

 モーションプログラムの作成機能を使えばロビのモーションプログラムを簡単に作成する事ができます。
 シミュレーター画像をモーションコントローラーで動かしながらモーションデータを作成していきます。
 作成したモーションは実行させて動きを確認する事ができます。



 モーション作成コマンドを実行するとモーション作成ダイアログが表示されます。
 追加ボタンを押すと現在のロビのポーズがモーションリストに追加されます。
 リストにはモーション番号、ブロック名、目LEDの色、口LEDの点灯状態、サーボ移動時間、モーション保持時間が表示されます。

 ブロック名は自動的に設定されます。
 ブロック名はプログラムの実行には特に意味を持ちませんが後で変更する事もできます。

 口LEDチェックボックスはシミュレーター画像の口のLEDを点灯/消灯します。

 目LEDコンボボックスはシミュレーター画像の目のLEDの色をを変更します。
 色は黒、橙、赤、緑、青、桃、水、黄、白が設定できますが他を選択するとカラーダイアログが表示されて任意の色が指定できます。

 サーボ移動はモーションのサーボの速度を指定します。
 サーボの速度はそのポーズを作るのにサーボの移動時間を1/60秒単位(ロビのマイコン単位で6だと0.1秒)で指定します。

 ポーズ保持は次のポーズに移るまでの待ち時間を指定します。
 待ち時間を指定するとその時間ポーズを保持します。  1/60秒単位(ロビのマイコン単位で6だと0.1秒)で指定します。
 モーションを連続させる場合は0を指定します。

 モーションリストのモーションデータを選択(クリック)するとロビの画像が選択されたモーションデータで変更されます。
 またダイアログのブロック名、口LEDチェックボックス目LEDコンボボックス、サーボ移動時間、ポーズ保持時間の表示も選択されたモーションデータで変更されます。

 時間固定チェックボックスをチェックしておくとポーズを選択してもサーボ移動時間とポーズ保持時間の値は変わりません。
 ポーズをまとめて同じ値に変更する場合はいちいち値を設定し直す必要がなくなるので便利です。

 追加ボタンは現在のモーションデータをモーションリストの最後に追加します。
 追加する前にモーションコントローラーでロビのポーズやダイアログの口LED、目LED、サーボ移動時間、ポーズ保持時間を追加したいモーションに設定しておきます。

 挿入ボタンは現在選択されているモーションデータの前にモーションデータを挿入します。
 この時挿入されるモーションデータは追加の時と同じく現在設定されてるモーションが挿入されます。

 追加ボタンおよび挿入ボタンはリストでサウンドまたサブプログラムを選択されている場合はサウンドまたサブプログラムを追加挿入する事ができます。
 ポーズを追加挿入する場合はファイルダイアログでキャンセルボタンを押してください。

 変更ボタンは現在選択されているモーションデータを現在表示されているシミュレーターとポーズ、LEDの状態やサーボ移動時間とポーズ保持時間に変更する事ができます。
 またブロック名を変更する事ができます。
 リストの下のテキストボックスにブロック名が表示されるのでこれをキーボードで違う名前に変更して変更ボタンを押すとブロック名が変更されます。

 削除ボタンは現在選択されているモーションデータを削除します。

 ▲▼ボタンはモーションの順序を変更します。
 選択しているモーションを上または下のモーションと入れ替えます。

 コピーボタンはモーションをブロック単位でコピーする事ができます。
 コピーは現在のモーションすべてをそのままコピーして最後に追加するか選択しているモーション以降をコピーして最後に追加するかを選択します。
 「選択されているブロックから最後のブロックまでコピーして最後に追加しますか?
 いいえを答えると最初のブロックから最後のブロックまでコピーされます。」
 上記のダイアログメッセージに対してはいを答えると選択モーション以降、いいえを答えるとすべてのモーションが最後にコピーされます。

 反転ボタンはモーションをブロック単位で順番を反転させる事ができます。
 反転は現在のモーションすべての順番を反転するか選択しているモーション以降の順番を反転するかを選択します。
 「選択されているブロックから最後のブロックまでの順番を反転しますか?
 いいえを答えると最初のブロックから最後のブロックまで反転されます。」
 上記のダイアログメッセージに対してはいを答えると選択モーション以降、いいえを答えるとすべてのモーションの順番が反転されます。

 PLAY/CALLボタンは音声を再生させるブロックあるいはサブプログラムをコールするブロックを挿入または追加する事ができます。
 モーションデータが選択されている場合はその前に挿入されます。
 モーションデータが選択されていない場合は最後に追加されます。
 PLAY/CALLボタンを押すとファイルダイアログが表示されるので再生する音声ファイル(拡張子.wav)またはサブプログラム(拡張子.RM4)を指定してください。



 サブプログラム(拡張子.RM4)を指定する場合はファイルの種類を切り替えてください。
 サウンドブロックまたはコールブロックが挿入されるとそのファイルパスがリスト上に表示されます。
 パラメーター設定で指定したプログラムフォルダー内のファイルを指定した場合はプログラムフォルダー以降のパスが設定されます。
 プログラムフォルダー外のファイルを指定した場合はC:などドライブ名からのパスが設定されます。
 ドライブ名からのパスが設定されているモーションプログラムも本プログラムでは実行する事ができますがロビで動かす事ができないので注意してください。

 リストのサウンドブロックやコールブロックが選択されてた場合はボタン名が「PLAY確認」または「CALL確認」に変わります。
 このボタンを押すと実際に音声ファイルが再生されたりサブブログムが実行して確認することができます。
 サウンドブロックまたはコールブロックを選択した状態で変更ボタンを押すとファイルを変更することができます。

 

 出力したフォルダーまたは設定コマンドで指定したプログラムフォルダーに音声ファイルまたはプログラムファイルが見つからない場合は上記のダイアログが表示されます。
 また先頭がドライブ名(F:など)の場合もこのプログラムを実行するとロビが止まってしまいます。
 下のエデットボックスをキーボードでプログラムに書き込むファイル名に修正してOKボタンを押してください。
 ロビのプログラムではファイル名は通常はvoice等SDカードの直下のフォルダー名から指定します。
 後から出力したプログラムをロビのSDカードに転送するそのままOKボタンを押してください。
 なおプログラムを書き出した後でもメモ帳等で変更できます。

 実行ボタンでモーションリストを最初から実行させることができます。
 モーションリストは実行中のモーションが選択状態になります。
 なおモーションコントローラーのスライダーとダイアログの表示は実行中では変更されません。

 実行中に停止ボタンを押すと実行を途中で止めることができます。

 リモート接続中の場合は実行中の各ポーズがロビに転送されます。
 そのため速い動きはロビが反応しないことがありますので必要な時のみにしてください。

 ステップ実行ボタンは現在選択中のモーションだけ実行させる事ができます。
 ステップ実行が終了すると次のモーションが選択されるので連続してボタンを押す事でモーションを連続して実行する事が出ます。

 直接実行ボタンを押すと現在のモーションがプログラムとしてロビに転送され実行されます。
 この場合は停止ボタンで停止させる事はできません。
 またシミュレーション画像は動きません。
 この機能を使うにはリビジョン4.50以降のリモート接続用ロビプログラムをのロビに入れておく必要があります。
 ロビを接続してモーションを作成する方法についてはこちらを参照してください。

 ロビ2の場合はファイル転送が伴うのでBluetoothによる接続の場合はこの機能は使えません。
 なおロビ2のリモート接続対応はロビ2のココロに含まれるSTARTUP.BINに対してロビ設定ファイルエディタ2を使って行ってください。
 またFlashAirでリモート接続を行う場合はMergeFile.luaをFlashAirに入れて設定ファイルの設定が必要です。

 サーボ設定ボタンはサーボ設定ダイアログを表示してサーボの値を数値で変更する事ができます。
 モーションリストの項目をダブルクリックしてもこのボタンを押したのと同じ動作をします。
 詳しくはこちらを参照してください。

 名前一括変換ボタンはブロック名を一括して変更する事ができます。
 新しく付けられるポーズブロックはポーズ-番号、サウンドブロックはサウンド-番号、コールブロックはサブプログラム-番号となります。
 モーションの名前などをブロック名の先頭に付ける事ができます。
 名前一括変換ボタンを押す前にリストの下のテキストボックスに共通で付ける名前をキーボードで入力しておきます。



 はいを答えると共通の名前が各ブロック名の先頭に付けられます。
 いいえを答えるとブロック名は共通の文字列は付けられません。

 モーションマージボタンは別のモーションプログラムのモーションデータを読み込む事ができます。
 例えば下半身の動きを買えたい場合は下半身を動かす別のモーションプログラムを作成しておいてに下半身のサーボのデータだけ取り込む事ができます。
 また現在のシミュレーション画像のサーボの位置を作成中のモーションのすべてのポーズに適用させる事もできます。
   詳しくはこちらを参照してください。

 補間挿入ボタンは現在選択されているモーションデータの前にモーションデータを挿入します。
 挿入ボタンと違うのは選択されているポーズとその前のポーズから途中のポーズを計算して挿入します。
 サーボ位置は両方のポーズの中間点に設定してサーボ移動時間は選択されているサーボ移動時間の半分に設定します。
 選択されているポーズの移動時間も半分に変更されます。
 ポーズ間の移動で手などが体にぶつかる場合はこの機能で途中にポーズを挿入してぶつからないように位置に変更する事ができます。

 モーション読込みボタンはモーション書出しで出力したCSVファイルを読み込みます。
 すでにモーションデータが作成されている場合はその後に追加されます。



 読み込む時にモーションリストが選択されている場合は上記のダイアログが表示されます。
 「はい」を答えると選択されているモーションの前に読み込んだモーションが挿入されます。
 「いいえ」の場合は最後に追加されます。

 ファイルの種類をモーションキャプチャーデータ(BVH)に切り替えるとBVH形式のモーションキャプチャーデータファイルを読み込めます。
 なおロビのサーボデータに変換するためデータの姿勢と異なる場合があります。
 また予め決められたチャネル名(部位名)しか対応していませんのでBVH形式でも読み込めない場合があります。

 モーション書出しボタンは作成したモーションでモーションデータをCSV形式またはロビのプログラム(.RM4)を出力します。
 ファイルダイアログが表示されるの出力するモーションデータのフォルダーとファイル名を指定します。

 CSV形式で出力されるのでExcel等の表計算ソフトで読み込めます。
 またロビ2のプログラム(STARTUP.BIN)に出力する場合もこのボタンで行います。
 詳しい操作方法は
こちらを参照してください。
 また本ダイアログのモーション読込みでモーションデータを読み込む事ができます。

 ロビのプログラムを出力する場合はファイルの種類をロビプログラム(.RM4)に切り替えてください。



 プログラムの出力が成功すると上記のダイアログが表示されるので出力したプログラムを開く場合は「はい」を答えます。
 本機能で出力したモーションプログラムはメモ帳等で編集する事ができます。
 書き出したプログラムはプログラムの読込みでモーションデータとすることができるのでモーション作成を中断する場合もプログラムに書き出しておいてください。



 モーション書出し時にファイルの種類をバイナリにするとバイナリー形式でプログラムを書き出す事ができす。
 ロビ2のプログラムはバイナリー形式なのでこの形式で出力します。



 ロビの標準プログラムを置き替えて作成したモーションを動かします。
 どの音声認識語のプログラムと置き換えるかこのダイアログで指定してください。
 プルダウンリストから音声認識語を選択するか音声認識語番号を直接入力して指定してください。
 置き替えたモーションはロビ2の音声認識、USBやFlashAirのリモート接続またはQ-boのBluetooth送信で動かす事ができます。

 閉じるボタン本ダイアログを閉じてモーション作成を終了します。
 本プログラムの終了時点でダイアログが開いている場合は本ダイアログは自動的に閉じられます。

 サーボデータ設定機能



 サーボ設定ボタンを押すと上記のダイアログが表示されます。
 サーボのデータをキーボードで入力するか横のスピンボタンで変更する事ができます。

 OKボタンを押すと現在表示中のデータが適用されて本ダイアログが閉じられます。

 キャンセルボタンを押すと現在表示中のデータが破棄されて本ダイアログが閉じられます。

 適用ボタンを押すと現在表示中のデータが適用されてシミュレーター画像が変更されたデータのポーズになります。

 次ボタンを押すと現在表示中のデータが適用されて次のポーズのサーボデータを表示します。
 この時右の値固定のチェックをしておくと前のポーズのサーボデータの値をそのままにしておくことができます。
 修正したポーズをそのまま次のポーズにも適用する場合に使います。

 足サーボ定型設定は足のサーボの値を決められた設定します数値に設定されます。
 原点は原点ポーズの足のデータを設定します。
 前屈小と大はヒザを折り曲げたポーズの足のデータを設定します。
 ヒザを伸ばす時は原点のポーズを設定してます。
 これを繰り返すと体を上下させる動きのモーションが作れます。
 左右傾きの大と小は体を左右に振らすポーズをの足のデータを設定します。
 左右の設定を繰り返すと体を左右に動かすモーションが作れます。

 左右反転/倍率変更の反転ボタンを押すと左右のサーボの値を入れ替えます。
 例えば右手を上げて左手を下げるポーズに対しては左手を上げて右手を下げるポーズに変更します。
 手足腰頭のチェクボックスで反転対象のサーボを指定します。
 全サーボ完全に左右反転の場合は全てのチェックをそのままで反転ボタンを押してください。

 一括反転ボタンを押すと全てのポーズデータの左右のサーボの値を入れ替えます。
 反転ボタンと同様、チェックされているサーボのみ反転対象となります。

 左右反転/倍率変更の倍率変更ボタンを押すと指定した倍率(%)に変更します。
 例えば50%に変更するとサーボの移動角度は半分になるのでロビの動きを小さく抑えられます。
 ロビが転んでしまう場合はそのポーズの角度の倍率を下げると転ばなくする事ができます。

 手足腰頭のチェクボックスで倍率変更の対象のサーボを指定します。
 全サーボ完全に左右反転の場合は全てのチェックをそのままで倍率変更ボタンを押してください。
 この場合もチェクされているサーボの倍率が変更されます。
 100%以上の倍率も指定する事ができますがサーボの動きが大きくなりロビが転倒してしまいますので十分注意してください。
 なおサーボの稼働範囲を超えた場合は可動範囲内に収まるようにサーボの値を調整します。

 一括変更ボタンを押すと全てのポーズデータのサーボの値を指定した倍率(%)で変更します。
 倍率変更ボタンと同様、チェックされているサーボのみ変更対象となります。

 原点ボタンを押すとサーボの値を全て0にします。
 適用する場合は適用ボタンまたは次ポーズボタンかOKボタンを押してください。

 モーション作成ダイアログのリモート送信がチェックされている場合はサーボの値を適用するとリモート接続されているロビにもサーボの値が送信されロビを動かす事ができます。

 
モーションマージ機能



 モーションマージボタンを押すと上記のダイアログが表示されます。
 データを取り込んで変更したいサーボまたはLEDをチェックします。
 各グループのチェックボックスをチェックするとそのグループのサーボに対してチェックされます。
 全て項目のチェックボックスをチェックすると全てのサーボとLEDに対してチェックされます。
 同様にチェックを外す事もできます。

 現在のシミュレーションポーズをマージするをチェックすると現在のシミュレーション画像のポーズが現在作成中のモーションすべてに適用されます。
 例えば座っているモーションを立たせたい時はモーションコントローラでシミュレーション画像を立たせておいて両足のサーボにチェックを付けてOKを押すと立ったモーションに変える事ができます。

 このチェックを付けないでOKボタンを押すとファイルダイアログが表示されます。
 これに対してマージするプログラムを指定して読み込んでください。

 読み込んだプログラムよりポーズコマンドを抽出して現在作成中のモーションに適用していきます。
 基本的にはお互いにポーズを順番に対応させていきます。
 読み込んだプログラムの3番目のポーズデータで現在作成中のモーションの3番目のポーズデータを置き換えていきます。
 ポーズの数は一致していなくても構いません。  読み込んだ方のポーズが多い場合は余ったポーズの分は適用されません。
 読み込んだ方のポーズが少ない場合は最後のポーズが残りのポーズに適用されます。

プログラムの読込み

 プログラムを開いた状態でモーション作成コマンドを実行すると開いているプログラムからモーションコマンド、サウンドコマンド、プログラムコールコマンドを抽出して初期モーションとする機能があります。



 プログラムを開いた状態でコマンドを実行すると上記ダイアログが表示されます。
 はいを答えるとプログラムを実行してモーションコマンド、サウンドコマンド、プログラムコールコマンドを抽出してモーションリストの初期値とします。
 プログラムでモーションが繰り返されるとその回数分のモーションが抽出されます。
 またロビの姿勢で実行されるモーションが違う場合は現在のシミュレーター画像の姿勢分しか抽出されませんのでロビを抽出したいモーションの姿勢にしてから本コマンドを実行してください。

 いいえを答えるとプログラムの最初から順番にモーションコマンド、サウンドコマンド、プログラムコールコマンドを抽出されます。

 キャンセルを答えるとモーションリストは空の状態で開始されます。

 なお本機能の
モーション書出しで出力したプログラムを開いている場合は上記ダイアログは表示されません。
 モーションの作成を途中で終了する場合はプログラム書出しでプログラムとして出力しておいて作成を再開する時はプログラムを開くコマンドで読み込んでからモーション作成コマンドを行ってください。

 プログラムからモーションコマンド、サウンドコマンド、プログラムコールコマンドを抽出するのはモーションの作成を途中で終了する場合はモーション書出しでプログラムとして出力しておいて作成を再開する時はプログラムを開くコマンドで読み込んでからモーション作成コマンドを行ってください。

 なおプログラムの先頭から順番に抽出していくので必ずしもプログラムの実行順になるとは限りません。
 必要に応じてモーションを入れ替えたり削除してください。
 また標準のプログラムのようにブロックが正しく定義されていない場合はブロックの抽出ができません。

ロビ2のプログラム出力

 作成したモーションプログラムをする事ができます。
 またこの機能を使ってロビ1用に作成したモーションプログラム(.RM4)をロビ2用に変換する事もできます。
 出力する時にモーションプログラムに対応する認識語を指定します。



 モーション書き出しボタンで表示されるファイルダイアログのファイルの種類をバイナリーにします。
 ファイル名にSTARTUP.BINを指定して保存ボタンを押してください。



 認識語一覧が表示されるので割り当てたい認識語を選択します。
 実際にロビ2で動かす場合はこの認識語で動かします。
 認識語に割り当てられている本来のプログラムは動かせなくなるので注意してください。
 一部置き換えられない認識語があります。その場合はエラー表示されますので他の認識語を指定してください。

 モーションプログラムはSTARTUP.BINの最後に追加されるので書き込まれる度にSTARTUP.BINはファイルサイズが大きくなっていきます。
 同じ認識語に対して変更したモーションを書込みだ場合も新たに追加されて前のモーションプログラムはそのまま残ります。

リモート接続時のモーション確認

 USBやFlashAirでリモート接続したロビを動かしながらモーションを確認する事ができます。
 ロビのリモート接続については
こちらを参照してください。
 なおリモート送信されるのはモーションデータのみで音声再生はロビでは行われません。

 以下の操作でリモート接続時のモーション確認が行えます。

 1. リモート接続の設定をする
  設定メニューのパラメーター設定コマンドで設定ダイアログを開きます。



  接続先をUSB接続またはFlashAirにします。
  非脱力をチェックします。

  リモート接続フォルダー変更でロビのSDカードのADDONフォルダーのREMOTE.LOGを指定します。
  この時USBにロビをつないでおく必要があります。
  なおFlashAirで接続する場合はこの設定の必要はありません。

 2. リモート接続を開始する
  ファイルメニューのリモート開始コマンドまたはツールバーのでロビとのリモート接続を開始します。
  ロビでリモート接続が開始されるとロビが「準備OK」と言います。

  なおリモート接続がされていなくてもモーション作成ダイアログのリモート送信チェックをするだけでリモート接続を開始することができます。

 3. ロビとモーションの姿勢を合わせる
  ロビが急に立ち上がったりしないようにロビとモーションの姿勢と一致させておく必要があります。
  標準のロビのプログラムはロビの現在の姿勢を判断してそれに合わせてプログラムを動かしますがモーション作成ダイアログで作った場合はロビの姿勢を作ったモーションに合わせておく必要があります。

 4. モーションプログラムを開く
  ファイルメニューのプログラムを開くコマンドまたはツールバーのモーション書出しで出力したモーションプログラムやロビのプログラム(.RM4)を読込みます。
  なおモーションデータを開かなくても最初からモーションを作成する事ができます。

 5. モーション作成ダイアログを開く
  プログラムメニューのプログラムのモーション作成コマンドまたはツールバーのでモーション作成ダイアログを開きます。

  モーションリストからモーションを選択したりステップ実行を行うとポーズデータを転送してロビをそのポーズにする事ができます。
  また実行を行うとモーションプログラムを転送してロビを動かす事ができます。

 6. モーション作成を終了する

  モーション作成ダイアログの閉じるボタンを押して下さい。

  ファイルメニューのリモート終了コマンドまたはツールバーのでリモート接続を終了します。
  リモート接続が終了するとロビはアイドル状態(目が点滅)に戻ります。
  なおでプログラム終了メッセ―ジが表示された時、本プログラムを終了してもリモート接続は解除されます。

モーションプログラムの編集

 本機能で出力されたモーションプログラムはジャンプ命令が出力されていないのでメモ帳などのテキストエディターで簡単に編集する事ができます。
 モーション単位に分けたプログラムをコピーアンドペーストでひとつのプログラムに合成する事ができます。

 なお合成したプログラムでブロック名が重複していてもロビでプログラムを実行するのに影響はありません。
 またモーションプログラムを編集する場合はファイルの拡張子を.RM4のままにしておいてください。



 メモ帳で名前を付けて保存をする自動的に.txtという拡張子が付けられるのでファイルの種類をすべてのファイルに切り替えてファイル名に.RM4の拡張子を付けて保存してください。


 実際にこのプログラムを動かした動画です。上記のリンクをクリックするとYouTubeに接続します。

 
モーションの作成方法その1 基本操作

 モーションの作成方法その2 音声とLEDの制御

 モーションの作成方法その3 サーボ移動時間とポーズ保持時間

 モーションの作成方法その4 実機での実行

 モーションの作成方法その5 リモート接続

 モーションの作成方法その6 モーションマージ機能

 モーションの作成方法その7 サブプログラムのコール

 動画で使われている音声ファイルはこちらからダウンロードできます。

戻る