日本遠隔制御のロボットキット「RB1000」は、10万円前後のロボットキットとしては唯一、標準で19自由度を実現していることが魅力だ。前回までで、ハードウェアの組み立ては完了したので、今回は、付属のモーション作成ソフト「RobovieMaker」を利用して、モーションを作成する手順を解説したい。
● 初期ロットは背面保護用ゴムの高さが足りないので注意
モーション作成方法を解説する前に、RB1000初期ロットのユーザーにお伝えしたいことがあるので、そちらからまず説明しよう。RB1000では、背面に保護用ゴムが貼られており、転倒時の衝撃がマイコンボードに伝わらないようにしているのだが、実は初期ロットに付属している保護用ゴムは高さが足りないのだ。
付属のシリアルケーブルをマイコンボードに接続したまま、後ろに倒れ込むとケーブルのコネクタがゴムより先に床面にあたってしまい、その衝撃がもろにマイコンボードのシリアル端子にかかってしまうことがある。何度も倒れていると、マイコンボードを壊してしまう可能性が高い。
なお、セカンドロット以降では、保護用ゴムの形状が変更されているので、この問題も解決されている。セカンドロット以降に付属している保護用ゴムを装着した写真も下に載せておくので、比べて見てほしい。初期ロットの保護用ゴムの高さが約12mmなのに対し、セカンドロット以降の保護用ゴムの高さは約21mmであった。
初期ロットユーザーは、付属している保護用ゴムの上にさらにゴム足などを貼り付けて高さをかせぐか、付属の保護用ゴムを使わずに、代わりに十分な高さのゴム足などを貼り付けるなど、シリアル端子に衝撃がかからないように工夫する必要がある。筆者は、高さ11mmほどのウレタン樹脂製クッション(東急ハンズで購入、8個入りで357円)を、付属の保護用ゴムの上に貼り付けることにした。このウレタン樹脂製クッションは、裏側に強力な粘着剤が貼られているので、そのまま保護用ゴムの上に貼り付けることができる。
|
|
初期ロットに付属する背面保護用ゴムを取り付けたところ
|
初期ロットの背面保護用ゴムの高さは約12mm
|
|
|
初期ロットの背面保護用ゴムを取り付けた状態で、シリアルケーブルを接続したところ。背面保護用ゴムの高さよりも、シリアル端子のほうがわずかに高い
|
セカンドロット以降に付属する背面保護用ゴムを取り付けたところ
|
|
|
セカンドロット以降の背面保護用ゴムの高さは約21mm
|
セカンドロット以降の背面保護用ゴムを取り付けた状態で、シリアルケーブルを接続したところ。背面保護用ゴムのほうがシリアル端子よりも高いので、後ろに倒れてもシリアル端子に衝撃がかかることはない
|
|
|
ゴムの高さを補うために、iteckの「PUクッション」(KU-212)を利用した
|
PUクッションは4個が1セットになって、全部で8個入っている。裏面には粘着剤が貼られており、そのまま貼り付けることができる
|
|
|
初期ロットに付属する背面保護用ゴムの上にPUクッションを貼り付けたところ
|
PUクッションを上に貼り付けたことで、背面保護用ゴムの高さがシリアル端子よりも高くなり、シリアル端子を衝撃から守ることができる
|
● 1つ前のポーズをコピーして、次のポーズを作成する
それでは、今回の本題であるモーション作成方法を解説する。RB1000では、付属のモーション作成ソフト「RobovieMaker」を利用して、モーションを作成することができる。ちなみに、RobovieMakerは、ヴイストンの二足歩行ロボットキット「Robovie-MS」や「Robovie-i」でも使われているソフトであり、機能的にも充実している。RobovieMakerを使ってモーションを作成する手順は、以下のようになる。
まず、PCとRB1000を付属のケーブルで接続し、RobovieMakerを起動する。このとき、マイコンボードのDIPスイッチの1~4が全て上側になっていることを確認すること。RobovieMakerを起動したら、RB1000の電源スイッチをオンにする。次に、ツールバーの「Line」ボタンをクリックしてRB1000との通信を開始し、ツールバーの電球の形をしたボタンをクリックすることでサーボモーターの電源がオンになり、RB1000が初期位置(ホームポジション)へと移行する。
RobovieMakerの画面は、大きく2つの領域に分かれており、左側(RB1000の正面図が描かれているエリア)がポーズエリア、右側(背景が濃いグレーのエリア)がモーションエリアと呼ばれる。RB1000に限らず、一般的な二足歩行ロボットは、1つ1つのポーズを作り、そのポーズを並べていくことでモーションを作成する。パラパラ漫画のようなイメージだ。ただし、ポーズとポーズの間は自動的に補完して動いてくれるため、それほど途中のポーズを細かく作る必要はない。
右側のモーションエリアには、全部で19個のスライダーやスピンボタンが用意されている。これらのスライダーは1つ1つが各サーボモーターに対応しており、マウスで操作する(数値を変える)ことで、そのサーボモーターを動かすことができる。
モーションを作る作業は、1つ前のポーズをコピーして、サーボモーターを動かして次のポーズを作成するという手順を繰り返していくことになる。全てのモーションはホームポジションから始まり、ホームポジションで終わるように作るのが基本だ(ホームポジション以外のポーズで終わると、続けて他のモーションを実行するときに倒れてしまったりする)。
RobovieMakerの場合は、ツールバーの「DUP」ボタンをクリックすることで、1つ前のポーズがコピーされ、新しいポーズ番号として登録される。次に、動かしたいサーボモーターに対応するスライダーの数値を変えることで、新しいポーズを作成。ポーズができたら、再び「DUP」ボタンを押して、次のポーズを登録するという作業を繰り返していく。
|
|
PCと接続してモーションを作成する際には、DIPスイッチの1~4を全て上側にする
|
PCとRB1000を接続して、RobovieMakerを起動する
|
|
|
RobovieMakerの基本画面。画面は大きく2つの領域に分かれており、左側がポーズエリア、右側がモーションエリアと呼ばれる
|
ツールバーの「DUP」ボタンをクリックすることで、1つ前のポーズがコピーされて、新しいポーズ番号(この場合は01)として登録される
|
|
動かしたいサーボモーターに対応するスライダーの数値を変えることで、サーボモーターが動く。この例では、1番のサーボモーター(右肩)を動かしている
|
● 遷移時間や繰り返し回数などを指定する
モーションは一気に作ろうとせずに、新しいポーズを追加するごとに、頭から再生してちゃんとイメージ通りに動くかを確認していくのがコツだ。ツールバーの再生ボタンをクリックすれば、頭からモーションが再生される。
左右対称なポーズを作る場合は、片側のポーズを作ってから、ツールバーの「L←R」ボタン(右半身のポーズを左半身にコピー)か「L→R」ボタン(左半身のポーズを右半身にコピー)をクリックすればよい。
ポーズからポーズへの遷移時間は、右側のモーションエリアのスライドバーの数値を変えることで変更できる。デフォルトでは48となっているが、この数値を小さくすれば、それだけ短い時間でそのポーズへと遷移することになる。遷移にかかる実時間は、設定値×20msecだが、あまり値を小さくすると遷移が間に合わなくなることがある。
また、サーボモーターの関節値は、右クリックで開くポップアップメニューを利用して、コピーや貼り付けなどが可能だ。ポップアップメニューで「すべて選択」を選べば、ポーズ全体のコピー&ペーストを行なうことができる。
モーションを作っていると、一連の動作(例えば1歩前に歩くとか)を繰り返し実行させたいことがよくある。RobovieMakerでは、特定のポーズを繰り返して実行させるために、モーションの中でループ構造を作ることができる。ループ構造をうまく使えば、少ない数のポーズで、効率よく長いモーションを作ることができる。ただし、ループ構造は、1つのモーションの中で1つしか作れないという制限がある。
ループ構造を作るには、モーションエリアで、nextポーズとbreakポーズを指定してやればよい。nextポーズとは、そのポーズの次に実行されるポーズのことで、通常は次の番号のポーズが自動的に指定されている(例えば、5番のポーズの次には6番のポーズがnextポーズとなる)。そのnextポーズを、前の番号のポーズにすれば、ループ構造ができる。
例えば、6番のポーズのnextポーズを5番に設定すると、6番まで実行されると次が5番になり、その次は6番になり、また5番に戻りというように、永久にこのループが繰り返されることになる。BASICなどのプログラム言語でいうgoto文のような役割を果たすわけだ。
永久ループが含まれたまま、モーションを再生させようとすると、その旨が警告される(実際に実行させると無限に動作を繰り返すが、停止ボタンをクリックすることでストップできる)。nextポーズを前の番号のポーズに設定しただけでは、永久ループになってしまうので、指定したループ回数を実行したら、別の番号(その番号よりも後ろの番号)のポーズにジャンプさせる必要がある。その指定を行うのがbreakポーズだ。
breakポーズは、スライドバーの一番右側の数値で、通常は何も指定する必要がない。nextポーズを指定したときのみ、breakポーズを指定する必要がある。例えば、5番と6番の動作を何回か繰り返したあとで、7番のポーズにジャンプさせるには、breakポーズを7番に設定すればよい。
繰り返し回数は、モーションエリアの上のツールバーで指定できる(デフォルトでは3が指定されている)。nextポーズにジャンプするたびにループカウンタが減算され、ループカウンタが0になれば、breakポーズにジャンプするため、3を指定した場合は、最初の1回+ループが3回で合計4回、その動きが繰り返されることになる。
このようにして、モーションが完成したら、ツールバーの保存ボタンをクリックして、モーションデータをファイルとして保存すればよい。
モーション作成は文章で書くと、結構面倒なようだが、実際にやってみるとそれほど難しい作業ではない。もちろん、重心を移動して歩くモーションを作るのはなかなか難しく、根気とセンスが必要になってくるが、最初は添付されているモーションをベースに、少しずつカスタマイズしていくのもよいだろう。
近藤科学のKHR-1/2HVや、ハイテックマルチプレックスジャパンのROBONOVA-Iのように、教示機能(サーボモーターを脱力させて手で動かし、その角度を取り込む機能)が用意されていないのは残念だが、RobovieMakerの使い勝手はなかなかよい。自分でモーションを作成して、うまくロボットが動いたときの喜びは格別だ。是非、オリジナリティあふれたモーションの作成に挑戦していただきたい。
|
|
新しいポーズを追加したら、ツールバーの再生ボタンをクリックすることで、モーションが再生される
|
【動画】3つのポーズ(1つめはホームポジション)からなるモーションを再生したところ
|
|
|
左右対称なポーズを作る場合は、まず片側のポーズ(この場合は手を上げた右半身)を作る
|
ツールバーの「L←R」ボタンをクリックすれば、右半身のポーズが左半身に左右対称な形でコピーされる
|
|
|
6つのポーズから構成される、モーションを一通り作った
|
【動画】このモーションを再生したところ
|
|
|
ポーズからポーズへの遷移時間は、右側のモーションエリアのスライダーを動かすことで変えることができる。遷移時間をデフォルトの半分の24にしてみた
|
【動画】遷移時間を半分にしたモーションを再生したところ。先ほどと動きは同じだが、高速に動いていることがわかる
|
|
|
ポーズエリアを右クリックすることで、ポップアップメニューが表示される
|
一番最後にホームポジションに戻るポーズを追加した
|
|
|
6番目のポーズで、nextポーズを5番目に設定して、モーションを再生させようとすると、無限ループになるという警告が表示される
|
6番目のポーズで、nextポーズだけでなく、breakポーズを設定(この場合のbreakポーズは7番)
|
|
|
繰り返し部分の遷移時間を少し遅くして、モーションが完成。ファイル名を付けて保存する
|
【動画】最終的に完成したモーション。左右に開いた手を上に上げて、また広げるというのを4回繰り返している
|
■URL
日本遠隔制御
http://www.jrpropo.co.jp/
製品情報
http://www.jrpropo.co.jp/robot/
ヴイストン
http://www.vstone.co.jp/
製品情報
http://www.vstone.co.jp/~robo-pro/rb1000/rb1000.html
■ 関連記事
・ 石井英男のロボットキットレビュー~JR PROPO「RB1000」(第2回)(2006/06/23)
2006/08/11 00:11
- ページの先頭へ-
|