アミューズメントロボットの企画開発販売 株式会社エスケイパン

エスケイパン

モーションジェネレータ

モーションジェネレータについて
概要
ロボットデータの詳細画面
歩行パラメータ管理詳細画面
自動生成されるプログラムとデータについて


ユーザーコメントと動画
KHR-2HV歩行テスト動画
パラメータを調整する事で標準的な歩行から大股歩きまで、色々な歩行モーションを生成してみました。

上り坂歩行動画
下り坂歩行動画
前傾姿勢での駆け足動画
膝ダブルサーボ対応テスト動画
KHR-2HV

モーションジェネレータについて

モーションジェネレータって、何ですか?

みんな、2足歩行ロボットを作って、やっぱりつまづくのが歩行モーションつくりですね。

そこで、SK-PANG&H.S.W.で2足歩行モーションを自動生成する追加アプリケーションを作りました。

これを使用すると、左右の足にそれぞれ重心移動ができる人型2足歩行ロボット(KHRシリーズ型、もしくは股関節、足首関節に直行軸配置を持つ人型ロボッ ト)であれば(モータートルク不足などで片足で立てない!などがない限り)ほぼ、ほとんどのロボットを歩行させることができるようになっています。
必要なパラメータはすねの長さ、腿の長さ、初期状態の屈伸量、歩幅、左右の重心移動量です。
これらを入力するとMotionProcessor2用のスクリプトやデータを自動的に算出してくれます。

このプログラムで作成されたデータは逆運動学を基にしており、左右の体重移動の際も腰部の高さは一定です。
もちろん、前進する場合にも腰部の高さは一定です。
同じ歩幅で歩行し続ける限り、腰部の進行方向への速度は等速度運動になっているので上体が揺らぐ恐れもとても少なくなっています。

このプログラムを使用した例が 下記の歩行動画です。
前進だけでなく、歩幅にマイナス値を入れれば後退もできます。

前進しながらの方向転換はロボットによって方法が異なる場合が多いのでモーションデータには含んでいませんが、解説書には詳しく解説しているのでデータを下に取り組めば容易にS時歩行なども実現できます。

また、歩行だけではなく、階段昇降や横歩きなどにも適した座標指定型モーションジェネレータも同梱されています。
これを用いれば15ミリの階段を上るなど、簡単に実現できます。

ぜひ、MotionProcessor2と一緒にご利用ください。



概要

MotionGeneratorはKONDO製MotionProcessor2専用の追加アプリケーションプログラムです。
本アプリケーションを使用するとロボットの規格を入力し、任意のパラメータ(歩幅など)を設定すると自動的に歩行モーションを生成します。
生成された歩行モーションはプログラム部とデータ部に分離され、MotionProcessor2でのスクリプトプログラム製作時に分離して登録すること が可能になり、コントロール部分のスクリプトにより大きくメモリを割り当てられ、高機能なプログラムを作成することが可能です。
パラメータ設定画面上で直ちに動作確認を行うことができ、調整を迅速に行うことが可能です。
設定可能なパラメータが豊富にあり、重心調整、歩行速度調整、歩幅調整、足上げ量調整などおよそ歩行モーションに設定できるパラメータを自由に設定できます。
設定によっては前進、足ふみ、後退など自由に定義できます。

Motion Generator使用の流れ

挿絵



ロボットデータの詳細画面

ロボットデータの詳細画面ではロボットに関するデータを登録します。

挿絵



右足データの登録
挿絵
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
V254 = 0
V255 = 5
CALL(MOTION) JUMP(EXIT) :MOTION 省略 ; CALL(MOTIONPLAY) 省略 RETURN :MOTIONPLAY 省略 AUTOMOVE(V252,V253,N) RETURN :EXIT 自動生成されたデータの例 (N500 = 16 (N501 = 0 - 30 (N502 = 73 (N503 = 42 (N504 = 30 (N505 = 0 - 73 省略


自動生成されるプログラムはモーションを呼び出すメイン部分とサブルーチン2個から構成されています。

メインプログラムは再生するモーションの番号及び歩数を変数に設定し、MOTIONサブルーチンを呼び出すとそのモーションが実行されます。

MOTIONサブルーチン及びMOTIONPLAYサブルーチンはメインプログラムと同一のスクリプト内に記述されている必要があります。

L3Programなどに転送し、必要に応じて処理内容(特にMOTIONを呼び出す部分)を編集し、自動生成されたモーションを利用してください。

注意事項
本プログラムを使用する前にデータ部のプログラムをあらかじめ実行し、配列変数に歩行モーション情報を登録しておく必要があります。
配列変数にデータを設定するデータ部のプログラムはモーションを呼び出すプログラムと同一のスクリプトに存在する必要はありません。

以下のように利用されると効率よく運用できます。
挿絵


KHR-2HVによる歩行テスト動画
動画
歩行テスト動画1
WMV(588KB)


基本屈伸姿勢15
左右体重移動量15
循環速度0.01
歩幅34
循環分解能12
X軸補正0
右足遊脚時左股間補正10
左足遊脚時右股間補正10
足上げ量15
歩数3
挿絵

動画
歩行テスト動画2
WMV(424KB)


基本屈伸姿勢15
左右体重移動量10
循環速度0.01
歩幅34
循環分解能6
X軸補正0
右足遊脚時左股間補正10
左足遊脚時右股間補正10
足上げ量15
歩数3
挿絵

動画
歩行テスト動画3
WMV(444KB)


基本屈伸姿勢15
左右体重移動量10
循環速度0.01
歩幅30
循環分解能8
X軸補正0
右足遊脚時左股間補正5
左足遊脚時右股間補正5
足上げ量20
歩数3
挿絵

動画
歩行テスト動画4
WMV(276KB)


基本屈伸姿勢15
左右体重移動量10
循環速度0.01
歩幅34
循環分解能4
X軸補正0
右足遊脚時左股間補正10
左足遊脚時右股間補正10
足上げ量15
歩数3
挿絵

動画
歩行テスト動画5
WMV(704KB)


基本屈伸姿勢33
左右体重移動量17
循環速度1
歩幅48
循環分解能10
X軸補正0
右足遊脚時左股間補正15
左足遊脚時右股間補正15
足上げ量15
歩数3
挿絵

傾斜歩行動画(上り)

動画
上り坂歩行動画
WMV(484KB)


基本屈伸姿勢30
左右体重移動量13
循環速度0.01
歩幅20
循環分解能8
X軸補正-20
右足遊脚時左股間補正10
左足遊脚時右股間補正10
足上げ量15
歩数3
上半身傾斜15
足首傾斜0
挿絵

傾斜歩行動画(下り)

動画
下り坂歩行動画
WMV(524KB)


基本屈伸姿勢30
左右体重移動量13
循環速度0.01
歩幅20
循環分解能8
X軸補正15
右足遊脚時左股間補正10
左足遊脚時右股間補正10
足上げ量15
歩数2
上半身傾斜-10
足首傾斜0
挿絵

駆け足

動画
前傾姿勢での駆け足
WMV(3.4MB)


Gogic Fiveの頭部パーツが付いていますが、それ以外は完全にノーマルなKHR-2HVです。
挿絵

膝ダブルサーボ対応テスト動画

動画
膝ダブルサーボに対応するオプション機能を使った動作テスト
WMV(7.4MB)


膝ダブルサーボテストに使用しているサーボモーターは全てKONDO製KRS2346です。
(じつは、、、メカボーナムの左右の足を縦に連結した物です)
挿絵

ユーザーコメント

はっし〜さん(ベータ版テストユーザー)

モーションプロセッサー2HV(以下MP2)を使用してみて、最初はその機能の多さに戸惑い慣れるまで少々時間がかかってしまいました。
しかし、だんだんと慣れ始めてくると、MP2のすばらしさがわかってきました。
スクリプトの許容量が以前の倍近くもあり、まさしく自分の思ったとおりのスクリプトの作成ができます。
センサー入力も豊富で、自立制御二足歩行ロボットを目指している方に、是非使用してもらいたいです。
MP2に慣れていく中で、自分のロボットはまともに歩いていないことに気づきました。
そんなときに歩行周期ジェネレータを中村さんから提供していただきました。

この歩行周期ジェネレータは、運動学についての知識を習得していなくても、自身のロボット専用の、逆運動学に基づいた歩行モーションを自動的に設計してくれるという、今までにない画期的なソフトです。
この歩行モーションを組み込んだロボットの歩行は今までの自分の作った歩行モーションとは比べものにならないほどの精密さで、MP2のサーボ制御をシリアルにすることで、その精密さは、さらに向上されました。
もはやMP2と歩行周期ジェネレータは手放せないものとなっています。



挿絵
動画
モーションジェネレータで
生成した歩行動画1
WMV(3.7MB)


挿絵
動画
モーションジェネレータで
生成した歩行動画2
WMV(1.2MB)

挿絵
動画
EXELIONビックリ高速歩行
WMV(2.5MB)


撮影はっし〜さん
挿絵

モーションプロセッサ2HV