|
|
|
|
モーションジェネレータについて 概要 ロボットデータの詳細画面 歩行パラメータ管理詳細画面 自動生成されるプログラムとデータについて ユーザーコメントと動画 |
KHR-2HV歩行テスト動画 パラメータを調整する事で標準的な歩行から大股歩きまで、色々な歩行モーションを生成してみました。 上り坂歩行動画 下り坂歩行動画 前傾姿勢での駆け足動画 膝ダブルサーボ対応テスト動画 |
|
| モーションジェネレータについて |
|
モーションジェネレータって、何ですか? みんな、2足歩行ロボットを作って、やっぱりつまづくのが歩行モーションつくりですね。 そこで、SK-PANG&H.S.W.で2足歩行モーションを自動生成する追加アプリケーションを作りました。 これを使用すると、左右の足にそれぞれ重心移動ができる人型2足歩行ロボット(KHRシリーズ型、もしくは股関節、足首関節に直行軸配置を持つ人型ロボッ ト)であれば(モータートルク不足などで片足で立てない!などがない限り)ほぼ、ほとんどのロボットを歩行させることができるようになっています。 必要なパラメータはすねの長さ、腿の長さ、初期状態の屈伸量、歩幅、左右の重心移動量です。 これらを入力するとMotionProcessor2用のスクリプトやデータを自動的に算出してくれます。 このプログラムで作成されたデータは逆運動学を基にしており、左右の体重移動の際も腰部の高さは一定です。 もちろん、前進する場合にも腰部の高さは一定です。 同じ歩幅で歩行し続ける限り、腰部の進行方向への速度は等速度運動になっているので上体が揺らぐ恐れもとても少なくなっています。 このプログラムを使用した例が 下記の歩行動画です。 前進だけでなく、歩幅にマイナス値を入れれば後退もできます。 前進しながらの方向転換はロボットによって方法が異なる場合が多いのでモーションデータには含んでいませんが、解説書には詳しく解説しているのでデータを下に取り組めば容易にS時歩行なども実現できます。 また、歩行だけではなく、階段昇降や横歩きなどにも適した座標指定型モーションジェネレータも同梱されています。 これを用いれば15ミリの階段を上るなど、簡単に実現できます。 ぜひ、MotionProcessor2と一緒にご利用ください。 |
| 概要 |
![]() |
| ロボットデータの詳細画面 |
![]() |
右足データの登録
|
RightHipJoint ロボットの右股関節を前後に動かすモータの番号を入力します。 PWMサーボの場合は「01」から「32」を入力します。 シリアルサーボの場合は「R01」から「R48」を入力します。 RHJP ロボットの右股関節を前後に動かすモータの係数を入力します。 左図の回転矢印方向が+側とMotionGeneretorでは規定されているのでMotionProcessor2上のPoseEditorで+側(数値増加側)への回転方向がこれにあっていれば正数、逆方向であれば負数を入力します。 係数となる部分は1度を回転させるために必要なMotionProcessor2側の動作数です。 KONDO-REDシリーズの2350シリーズなどはおよそ1ポイントが1度なので1ないしは-1を入力しますが、精密な値を計測の上入力すると精度のよいMotionを生成することができます。 KONDO-REDシリーズのシリアルサーボの場合は260度ほどの動作角を8000ポイントの分解能で指定できるので増加側の回転方向が一致していれば 「30.7692」、回転方向が逆であれば「-30.7692」を入力しますが、この値も精密な値を計測の上入力すると精度のよいMotionを生成する ことができます。 RightKneeJoint ロボットの右ひざ関節を前後に動かすモータの番号を入力します。 RKJP ロボットの右ひざ関節を前後に動かすモータの係数を入力します。 RightAnkleJoint ロボットの右足首関節を前後に動かすモータの番号を入力します。 RAJP ロボットの右足首関節を前後に動かすモータの係数を入力します。 |
左足データの登録
|
LeftHipJoint ロボットの左股関節を前後に動かすモータの番号を入力します。 PWMサーボの場合は「01」から「32」を入力します。 シリアルサーボの場合は「R01」から「R48」を入力します。 LHJP ロボットの左股関節を前後に動かすモータの係数を入力します。 左図の回転矢印方向が+側とMotionGeneretorでは規定されているのでMotionProcessor2上のPoseEditorで+側(数値増加側)への回転方向がこれにあっていれば正数、逆方向であれば負数を入力します。 係数となる部分は1度を回転させるために必要なMotionProcessor2側の動作数です。 KONDO-REDシリーズの2350シリーズなどはおよそ1ポイントが1度なので1ないしは-1を入力しますが、精密な値を計測の上入力すると精度のよいMotionを生成することができます。 KONDO-REDシリーズのシリアルサーボの場合は260度ほどの動作角を8000ポイントの分解能で指定できるので増加側の回転方向が一致していれば 「30.7692」、回転方向が逆であれば「-30.7692」を入力しますが、この値も精密な値を計測の上入力すると精度のよいMotionを生成する ことができます。 LeftKneeJoint ロボットの左ひざ関節を前後に動かすモータの番号を入力します。 LKJP ロボットの左ひざ関節を前後に動かすモータの係数を入力します。 LeftAnkleJoint ロボットの左足首関節を前後に動かすモータの番号を入力します。 LAJP ロボットの左足首関節を前後に動かすモータの係数を入力します。 thigh ロボットの腿(股関節からひざ関節まで)の長さを入力します。 単位はmmです。 SHIN ロボットのひざ(ひざ関節から足首関節まで)の長さを入力します。 単位はmmです。 |
左右ロール軸の登録
|
RHJR 右股関節ロール軸のモータ番号を入力します。 RHJRP 右股関節ロール軸の係数を入力します。 RAJRP 右足首関節ロール軸の係数を入力します。 RAJP 右足首関節ロール軸のモータ番号を入力します。 LHJR 左股関節ロール軸のモータ番号を入力します。 LHJRP 左股関節ロール軸の係数を入力します。 LAJRP 左足首関節ロール軸の係数を入力します。 LAJR 左足首関節ロール軸のモータ番号を入力します。 |
| 歩行パラメータ管理詳細画面 |
![]() |
詳細
|
RECNO 登録管理番号が自動的に設定され表示されます。 ROBOTNUM 設定対象になっているロボットデータの管理番号が表示されます。 ROBOTNAME 設定対象になっているロボットデータの名前が表示されます。 ロボット選択ボタン 本ボタンをクリックすると登録されているロボットデータの一覧が表示されます。 表示された一覧から任意の1件をダブルクリックして選択します。 選択されたロボットデータの情報が上記各欄に表示されます。 |
|
COMMENT 本パラメータについてのコメントを登録することができます。 モーション番号 スクリプト及びデータを生成する際に設定するモーション番号を入力します。 モーション番号によって生成されたデータを格納する配列変数範囲が自動設定されます。 標準的な1モーション16ポーズの場合に合わせて配列変数が確保されるように設定されているので1モーションあたりのポーズ数を変更した際は参照範囲について注意してください。 DATATYPE 本欄にチェックが入っていないときは歩行モーションを自動生成し「軌道データエリア」内のデータを再作成し、そのデータを使用してモーションを生成します。 本欄にチェックが入っているときは軌道データの自動生成は行わず、軌道データエリア内のデータを使用してモーションを生成します。 基本屈伸姿勢 歩行開始など基本となる姿勢の屈伸姿勢を「脚を縮める距離(単位mm)」で指定します。 この値が0のとき、歩行することはできません。 この値が大きくなると1歩の長さを大きく取れるようになりますが、大きすぎると関節の稼動域が限界を超える場合があり、正常に歩行できなくなります。 通常、直立から最大屈伸した場合の最大距離の3分の1程度に設定するときれいに歩行することができるようです。 左右体重移動量 歩行の際に左右に体重移動を行う距離を単位mmで入力します。 モーション生成及びテスト実行時、外側に倒れる場合は本欄の値を小さくし、遊脚引き上げ時、遊脚側に倒れる場合は本欄の値を大きくします。 循環速度 2歩歩くときの循環時間を単位秒で入力します。 小さすぎるとモーターの動作速度がついてこれなくなる場合があるので最小で0.01秒程度までにしてください。 通常、1から2秒を指定し、ゆっくり歩行させるほうがロボットのモータ及び電池に優しいです。 循環分解能 1循環2歩を何ステップのデータに分解するかを指定します。 通常、12を指定します。(4、6を指定するとデータが間引かれ高速なモーションを再生することができますが、左右体重移動量などを再調整する必要があります。) |
|
X軸補正 通常、足首関節の循環軌道は直立時の足首位置を中心に行われますが、この値を修正するとその中心位置をこの値が正であれば前方に、負であれば後方に指定mmだけ移動させる事ができます。 これにより、ロボットのバランスを調整したり、歩行速度による上体の遅れ(慣性力)の受け止めなどに調整が可能になります。 後方に歩く際もかかとが短いロボットなどの場合、本欄に負のパラメータを設定すると転倒しなくなる方向に調整することが可能です。 調整量は大きくありませんので小さな値から順次調整してください。 通常は0のままでよいです。 右足遊脚時左股関節補正 右足を引き上げた際、左足股関節モータのスリップを抑えるための補正値を入力します。 単位はサーボモータの動作ポイント数です。 この値を大きくすると誘客を引き上げた時、支持脚側に跳ね上がって倒れる恐れがあるので小さい値から調整を行ってください。 左足遊脚時右股関節補正 左足を引き上げた際、右足股関節モータのスリップを抑えるための補正値を入力します。 単位はサーボモータの動作ポイント数です。 この値を大きくすると誘客を引き上げた時、支持脚側に跳ね上がって倒れる恐れがあるので小さい値から調整を行ってください。 足上げ量 歩行動作時に引き上げる足の高さを単位mmで入力します。 本欄を0にするとすり足歩行になります。 本欄を大きくしすぎると各関節の稼動域を超えて正常に動作しない場合があるので小さい値から調整を行ってください。 歩数 循環動作を繰り返す回数を指定します。 循環動作自動生成時のみ有効です。 |
|
メッセージ欄 基本屈伸姿勢を入力すると設定可能な最大歩幅などの情報が表示されます。 軌道データエリア 自動算出された歩行モーションの足首関節軌道データが表示されます。 手入力により修正可能ですが、DATATYPEのチェック欄をONにしなければ修正結果は初期化されてしまいます。 DATATYPEをONにし、手動で軌道データを入力すると階段昇降、横歩きなどに応用することができます。 座標データ追加ボタン 軌道データエリアに手動でデータ欄を追加します。 座標データ削除ボタン 任意の軌道データを手動で削除するときに使用します。 試験データ生成 基本屈伸姿勢をとるためのプログラムを生成します。 このボタンとプログラムテスト実行ボタン等を利用してロボットの基本姿勢を確認します。 基本姿勢になったとき、ロボットが直立状態より基本屈伸姿勢欄に入力した値だけ「しゃがみ」股関節前後軸と足首関節の前後軸が地面(接地面)から垂直上に並んでいることを確認します。 この結果、正しい姿勢をとっていない場合はロボットデータを修正する必要があります。 モーション生成 設定に応じてプログラム欄とデータ欄にそれぞれの情報を自動生成します。 |
|
プログラム部 自動生成されたプログラムが表示されます。 編集可能な状態になっていますので、任意の修正を行うことができます。 データ部 自動生成されたプログラムが表示されます。 編集可能な状態になっていますので、任意の修正を行うことができます。 |
|
|
|
腕振り連動 本欄にチェックを入れると自動歩行モーション生成時に腕(肩関節前後軸)を振るプログラムを追加します。 DATATYPEにチェックが入っているときは無視されます。 右肩サーボ番号 腕振り時に使用する右肩のモータ番号を指定します。 PWMサーボの場合は01から32、シリアルサーボの場合はR01からR48を指定します。 右肩係数 肩関節の回転方向を調整します。 自動生成されたモーションで肩の回転方向が逆になっている場合、本欄に-1を入力します。 左肩サーボ番号 腕振り時に使用する左肩のモータ番号を指定します。 PWMサーボの場合は01から32、シリアルサーボの場合はR01からR48を指定します。 左肩係数 肩関節の回転方向を調整します。 自動生成されたモーションで肩の回転方向が逆になっている場合、本欄に-1を入力します。 |
|
|
BOARD Linkボタン 本欄にチェックを入れるとロボット(MotionProcessor2)との通信を開始します。 ロボットにシリアルケーブル等で接続、電源を投入しておく必要があります。 ホームポジション設定が有効になり、ロボットが動作、直立するので指などを挟まないように注意してご使用ください。 |
|
Return to Homeボタン 本ボタンをクリックするとロボットの姿勢がホームポジションに戻ります。 プログラムテスト実行 データ部及びプログラム部の内容でプログラムを実行します。 歩行動作などを始めるのでロボットの姿勢などに注意してください。 STOP ロボットの動作を強制的に止める再使用してください。 |
|
プログラムのみL3PGへ転送ボタン プログラム部の内容をL3Programとして登録します。 データのみL3PGへ転送ボタン データ部の内容をL3Programとして登録します。 プログラム&データをL3Programへ転送ボタン データ部とプログラム部の内容をL3Programとして登録します。 |
| 自動生成されるプログラムとデータについて |
自動生成されたプログラムの例;CALL MOTION |
自動生成されるプログラムはモーションを呼び出すメイン部分とサブルーチン2個から構成されています。 メインプログラムは再生するモーションの番号及び歩数を変数に設定し、MOTIONサブルーチンを呼び出すとそのモーションが実行されます。 MOTIONサブルーチン及びMOTIONPLAYサブルーチンはメインプログラムと同一のスクリプト内に記述されている必要があります。 L3Programなどに転送し、必要に応じて処理内容(特にMOTIONを呼び出す部分)を編集し、自動生成されたモーションを利用してください。 注意事項 本プログラムを使用する前にデータ部のプログラムをあらかじめ実行し、配列変数に歩行モーション情報を登録しておく必要があります。 配列変数にデータを設定するデータ部のプログラムはモーションを呼び出すプログラムと同一のスクリプトに存在する必要はありません。 |
以下のように利用されると効率よく運用できます。
|
| KHR-2HVによる歩行テスト動画 |
|
|
|
|
|
![]() |
|
|
|
|
|
|
|
|
|
|
|
|
| ユーザーコメント |
|
