前回は、KHR-2HV付属のモーション作成ソフト「HeartToHeart3J」を使って、モーション作成を行なう基本的な手順を説明した。HeartToHeart3Jは、高機能なモーション作成ソフトであり、モーション作成の手間を減らし、より高度なモーションを作成するための機能がたくさん用意されている。そこで今回は、モーション作成方法の後編として、HeartToHeart3Jの便利な機能を紹介することにしたい。
● 教示機能を活用して、モーションを作成する
KHRシリーズは、初代KHR-1から教示機能を搭載していることがウリであった。教示機能とは、サーボモーターの位置情報(回転角)を、モーション作成ソフトで取り込む(キャプチャ)機能のことである。通常、モーションを作成する場合、モーション作成ソフト上でスライダーを動かして各サーボモーターの位置を決め、ポーズを作成していくことになるが、教示機能を利用すれば、サーボモーターを脱力させた状態で手でロボットの関節を動かして、ポーズを作っていくことができる。イメージとしては、関節可動型のプラモデルや人形で遊ぶような感覚だ。
教示機能は、近藤科学が世界に先駆けて実現した機能であり、初代KHR-1でも利用できたが、KHR-2HVのHeartToHeart3Jでは、さらに使いやすく改良されている。教示機能で大まかにポーズを作り、スライダーで微調整するようにすると、効率よくモーションを作成することが可能になる。
・教示機能用の設定を作成する
HeartToHeart3Jで、教示機能を利用するには、最初に教示機能用の設定を作る必要がある(ここがKHR-1のHeartToHeartとは違う部分だ)。一度作った設定は保存されるので、2回目からはその設定を利用することができる。
まず、データシート上にPOSオブジェクトを1つ配置し、ダブルクリックしてPOSウィンドウを開く。POSウィンドウを開いたら、左下の「LINK」で「組み合わせの設定」を選択する。すると、「指定動作の設定」ウィンドウが表示されるので、教示機能を有効にしたいサーボモーターの設定を「TCH」にする。TCHは、ティーチングの略で教示機能を意味する。
同様にして、教示機能を有効にしたいすべてのサーボモーターの設定を「TCH」にする。教示機能の設定は、標準状態で17個あるサーボモーターのうち、どのサーボモーターの教示機能を有効にするかを決めるもので、設定を複数作ることができる。教示機能を有効にしたサーボモーターは、脱力して保持力がなくなるため、全てのサーボモーターの教示機能を有効にする設定だけでなく、上半身の教示機能を有効にする設定や下半身の教示機能を有効にする設定など、数パターン作っておき、作りたいポーズに応じて選ぶようにすると便利だ。
教示機能用の設定ができたら、設定名を入力する。例えば、上半身だけ教示機能を有効にした場合は、「上半身教示」などにすればよい。設定名を入力しないと設定が保存されないので注意すること。
|
|
POSウィンドウを開いて、右下の「LINK」で「組み合わせの設定」を選ぶ
|
「指定動作の設定」ウィンドウで、教示機能を有効にしたいサーボモーターの設定を「TCH」にする
|
|
|
上半身の教示機能を有効にするには、CH1~4とCH6~8を「TCH」にすればよい。名前に「上半身教示」のように設定名を入れて、「OK」ボタンをクリックする
|
下半身の教示機能を有効にするには、CH11~15とCH17~21を「TCH」にすればよい。このように教示機能の設定を複数作っておくと便利
|
● KHR-2HVを手で動かしてポーズを作る
次に、教示機能を使ってポーズを作る手順を説明する。まず、POSウィンドウを開いて、右下の「LINK」で、先ほど作成した教示設定を選択する。次に、POSウィンドウ下部のシャッターボタン(カメラの形のアイコン)をクリックすると、教示機能が有効になり、教示対象のサーボモーターの保持力がなくなり、手で自由に動かせるようになる。
保持力がなくなったサーボモーターを手で動かして、取り込みたいポーズができたら、再びシャッターボタンをクリックすると、教示対象のサーボモーターの位置情報がHeartToHeart3Jに取り込まれる。対象サーボモーターのスライダーの位置や角度表示の数値が変わっていることを確認すること。位置情報の取り込みが完了したら、POSウィンドウを閉じれば、ポーズが1つできたことになる。この作業を繰り返していくことで、モーションを作ることができる。
|
|
教示機能を利用するには、POSウィンドウを開いて、右下の「LINK」で作成した教示設定を選ぶ
|
シャッターボタンをクリックすると、教示対象のサーボモーターの表示がスライダーからラジオボタンに変わり、そのサーボモーターの保持力がなくなる
|
|
|
保持力がなくなったサーボモーターを手で動かして、目的のポーズを作る
|
ポーズができたら、再びシャッターボタンをクリックすることで、サーボモーターの位置情報が取り込まれる。この場合だと、CH6~CH8(右腕)のサーボモーターを動かしたので、その情報が取り込まれている
|
● ループ機能を使えば、繰り返しモーションも楽にできる
KHR-1のモーション作成ソフトHeartToHeartでは、順番にポーズを実行していく単純なモーションしか作成できなかったが、KHR-2HVのHeartToHeart3Jでは、ループや条件分岐などの機能が用意されており、より複雑なモーションを簡単に作ることができる。
まずは、ループの使い方を説明しよう。KHR-1のHeartToHeartでは、ループ機能がなかったので、1つのモーションの中で同じ動きを繰り返すには、そのポーズを繰り返して記述する必要があった。しかし、HeartToHeart3Jなら、同じポーズを繰り返して並べなくても、モーションの一部や全体を、指定した回数(ループ回数)だけ繰り返すことができる。
例として、前回作成した「手の運動」(両手を上げてから左右に広げ、両手を下げる)モーションを修正して、上げ下げを3回繰り返すようにしてみよう。
まず、「手の運動」モーションファイルを読み込み、データシート上にSETオブジェクトを配置する。SETオブジェクトは、パラメータなどの設定を行なうためのオブジェクトで、ループ機能を使う場合は、ループ回数を設定するために利用する。
SETオブジェクトをダブルクリックして、SETウィンドウを開き、「ループカウンタにループ回数をセットする」ラジオボタンを選択し、回数を3にして、SETウィンドウを閉じる。わかりやすくするために、SETオブジェクトを右クリックしてプロパティを選択し、名前を「繰り返し回数の設定」にしておくとよいだろう。モーションの始点をこのSETオブジェクトに変更し、SETオブジェクトと最初のポーズ「両手を上」を線で繋ぐ。
次に、データシート上にCMPオブジェクトを配置する。CMPオブジェクトは、条件分岐を行なうためのオブジェクトであり、回数を指定したループも条件分岐の一種となる。
CMPオブジェクトをダブルクリックして、CMPウィンドウを開き、「ループカウンタが0でなければジャンプする」ラジオボタンを選択する。CMPオブジェクトが実行されるたびに、SETオブジェクトで指定したループカウンタが1つずつ減っていくので、繰り返したいポーズの最後にCMPオブジェクトを配置すれば、指定した回数だけ、そこまでのモーションが繰り返し実行されることになる。
CMPオブジェクトは、条件分岐を行なうオブジェクトであるから、フローチャートの流れも2つに分岐することになる。条件を満たしたときには分岐配線(点線)で結ばれたオブジェクトにジャンプし、条件を満たしていないときには、通常の接続配線(実線)で結ばれたオブジェクトに処理が移る。
ループの設定が完了したら、修正したモーションをRCB-3Jに転送し、実行してみよう。手の上げ下げを3回繰り返すようになったはずだ。
|
|
SETボタンをクリックし、データシート上でもう一度クリックすることで、SETオブジェクトを配置できる
|
SETオブジェクトをダブルクリックして、SETウィンドウを開き、「ループカウンタにループ回数をセットする」を選択し、回数を3にする
|
|
|
SETオブジェクトの名前を「繰り返し回数の指定」に変更する
|
モーションの始点を「繰り返し回数の指定」に変更し、最初のポーズ「両手を上」と線で繋ぐ
|
|
|
CMPボタンをクリックし、データシート上でもう一度クリックして、CMPオブジェクトを配置する
|
CMPオブジェクトをダブルクリックして、CMPウィンドウを開き、「ループカウンタが0でなければジャンプする」ラジオボタンを選択する
|
|
|
3つめのポーズと4つめのポーズ(ホームポジション)の間に、CMPオブジェクトを配置するため、3つめのポーズと4つめのポーズを結ぶ線の三角形部分を右クリックしてメニューを開き、「削除」を選択する
|
3つめのポーズ→CMPオブジェクト→4つめのポーズ(ホームポジション)の順に、接続配線で結ぶ
|
|
CMPオブジェクトと最初のポーズを、分岐配線で結ぶ
|
|
|
【動画】ループを設定する前のモーション。腕を1回上下に動かしている
|
【動画】ループ機能を使うと、モーションの一部を繰り返すことができる。この例では、ループ回数を3にしたので、腕が3回上下に動く
|
● 分岐機能を使ってボタンを押し続けている間、動作を行なわせる
分岐機能を利用すれば、オプションの無線コントローラー「KRC-1」の特定のボタンを押し続けている間、モーションを繰り返し実行させることも可能になる。例えば、上ボタンを押している間前進を続け、ボタンを放すと止まるという動作だ。
例として、先ほど作成した手の上げ下げを行なうモーションを、KRC-1のボタン(シフト1)を押している間のみ繰り返すようにする方法を紹介する。
まず、先ほどのSETオブジェクト(「繰り返し回数の指定」という名前が付いている)をダブルクリックしてSETウィンドウを開き、「比較レジスタに数値をセットする」ラジオボタンを選んで、数値を512にしてリターンキーを押す。
512というのは、KRC-1のシフト1ボタンに割り当てられているコントロール入力の数値だ。ボタンとコントロール入力の関係は、近藤科学のWebサイトで公開されている「RCB-3J 操作説明書・上級編」のP10に掲載されている。このSETオブジェクトの名前を「シフト1のコントロール入力」に変更しておくとよいだろう。
次に、CMPオブジェクトをダブルクリックして、CMPウィンドウを開き、「ボタン入力=比較レジスタならジャンプ」ラジオボタンを選択する。
さらに、KRC-1のシフト1を押すと、このモーションがスタートするように修正する必要がある。データシート上の空白部分をダブルクリックしてデータダイアログを開き、コントロール入力の数値を512にすれば完了だ。
修正したモーションをRCB-3Jに転送して、KRC-1のシフト1を押せば、両手を上げ下げするモーションがスタートする。シフト1を押し続けている間、両手を上げ下げしつづけ、シフト1を放すと、モーション実行が終了してホームポジションに戻ることを確認しよう。
|
|
先ほどのSETオブジェクト(「繰り返し回数の指定」)をダブルクリックして、SETウィンドウを開く。「比較レジスタに数値をセットする」ラジオボタンを選び、数値を512にしてリターンキーを押す
|
このSETオブジェクトの名前を「シフト1のコントロール入力」に変更する
|
|
|
CMPオブジェクトをダブルクリックして、CMPウィンドウを開き、「ボタン入力=比較レジスタならジャンプ」を選択
|
データシート上の空白部分をダブルクリックして、データダイアログを開き、コントロール入力の数値を512にしてリターンキーを押す
|
これで4回にわたって紹介してきたKHR-2HVレビューは一応終了となる。KHR-2HVは、初代KHR-1に比べて、ハードウェア、ソフトウェアともに大幅に強化されており、初めて二足歩行ロボットを組み立てるという初心者にもお勧めできる。
最後に一つ宣伝をさせていただきたい。筆者とロボットフォースの岩気氏によるKHRシリーズの活用本「KHRパーフェクトブック」が発刊された。本書には、オプションによる拡張や、腕ヨー軸追加やLED追加などの改造、実践的なモーション作成のコツや外装作りなど、KHRシリーズをとことんしゃぶり尽くしたいという人に役立つ情報が満載されている。特に、岩気氏担当の外装作りのパートは、KHRシリーズ以外のロボットにもそのまま当てはまる。興味を持たれた方は、書店で手にとっていただければ幸いだ。
■URL
近藤科学
http://www.kondo-robot.com/
製品情報
http://www.kondo-robot.com/html/KHR2HV_KIT.html
■ 関連記事
・ 石井英男のロボットキットレビュー ~近藤科学「KHR-2HV」(第3回)(2006/12/27)
2007/02/14 00:03
- ページの先頭へ-
|