| |||||||||||||||||||||||||||||||||||||
新年1回目のDigital Lifeは、前回に引き続いて、二足歩行ロボットキット「KHR-1」を取り上げる。前回の記事では、キットの組み立て手順とサンプルモーションでの動作を紹介したが、今回は、付属ソフトを利用してオリジナルモーションを作る方法を解説したい。 ●歩行時などの安定性を高めるためにラージソールを装着
KHR-1は、付属ソフトを利用することで、オリジナルのモーション(動き)を作成できることも特徴だ。オモチャのロボットでは、あらかじめ決められたモーションを選択することしかできないのが普通だが、KHR-1ではモーションを自由に作れることが魅力だ。KHR-1は、17自由度を持ち、かなり複雑なモーションも作成できるので非常に面白い。 KHR-1は、標準キットだけでも十分楽しめるが、さまざまなオプションパーツを利用することで、さらにその世界が広がる。オプションパーツによる拡張やカスタマイズについては次回取り上げる予定だが、今回は、KHR-1用に用意されたオプションパーツの中でも、特に導入効果が大きい「オプションソール(ラージサイズ)」を紹介しよう。 前回、苦労したのは、歩行時のバランスであった。ホームポジションのバランスが適切でないと、歩行中に倒れてしまう。このバランスが予想以上にシビアだったのだ。 オプションソール(ラージサイズ)をKHR-1の足裏に装着することによって、足裏の面積が大きくなり、歩行時などの安定性が大きく向上する。その効果は大きく、同じモーションデータで歩かせてみても、左右へのふらつきがかなり小さくなった。オプションソールを装着した状態での二足歩行の様子を動画で撮影してみたので、前回の歩行の動画と比較してみてほしい。 また、近藤科学のサイトでは、さまざまな追加サンプルモーションが公開されているが、この中で、駆け足のモーションはオプションソールの装着を前提に作成されたモーションであり、ノーマルの足裏では倒れてしまうことが多い。 早速、追加サンプルモーションの早足や駆け足、前転を行なわせてみたが、動きが格段に安定し、安心して見ていられるようになった。価格も2,310円(税込)と安いので、KHR-1を購入する際にはオプションソールもあわせて購入することをお勧めしたい。 実はKHR-1では、姿勢安定に非常に大きな効果を発揮するジャイロセンサーを搭載することも可能なのだが、このジャイロセンサーについては次回紹介することにしたい。
それでは、実際にオリジナルモーションを作成する手順を解説しよう。KHR-1では、付属CD-ROMに収録されているコントロールソフト「HeartToHeart」を利用して、モーションの作成やKHR-1へのモーションデータの転送などを行なう。付属CD-ROMに収録されていたのはVer1.1だが、バグフィックスが行なわれたVer1.2が近藤科学のサイトで公開されているので、そちらをダウンロードして利用するのがよいだろう。 KHR-1に限らず、一般にこの種のロボットでは、使われているそれぞれのサーボモーターの位置を指定していくことで、モーションを作成する。例えば、右手を上げるというモーションを作成する場合を考えてみる。まず、手を下ろした状態(ホームポジション)を決め、次に右手を上げるために、右肩のサーボモーターを動かして、右手を上げた状態を決める。ロボットの現在の形(それぞれのサーボモーターの位置)をポジションと呼び、連続したポジションデータの集まりが、モーションとなるわけだ。 従来のこの種のロボットでは、それぞれのサーボモーターの位置を数値で指定して、ポジションを作成していく必要があったのだが、全部で17個もあるサーボモーターの位置を数値で入力して、希望のポジションを作るのは非常に大変な作業であり、時間もかかってしまう。 もちろん、KHR-1でも、各サーボモーターの位置を数値で指定していくことができるのだが、そんな面倒なことをしなくても、もっと簡単にポジションを作成する方法がある。それがKHR-1のウリの教示機能である。 通常のサーボモーターは、コントローラーからの入力信号で指定された位置に出力軸を動かすことしかできない(つまり、信号の流れが常に一方通行)のに対し、KHR-1で採用されているサーボモーター(Red Versionと呼ばれる製品)では、ポジションキャプチャーと呼ばれる機能が搭載されており、サーボモーター側から現在の出力軸の位置データをコントローラー側に送ることができる。 また、特殊な信号を入力することで、サーボモーターをフリー(自由に動かせる状態)にできる。これらの機能を利用することで実現できたのが、KHR-1の教示機能である。 教示機能とは、フリーにしたサーボモーターの出力軸を直接手で触って動かし、位置を決め、その位置データをPCに取り込むことで、ポジションを決めていく機能のことである。つまり、ロボットの手や足を実際に手で持って動かし、目的のポジションを作っていくだけで、オリジナルモーションが作れるのだ。イメージとしては、関節可動タイプのプラモデルを手で動かし、格好のよいポーズを作っていくようなものだ(最近新シリーズとして復刻されたミクロマン人形を思い浮かべてもらってもいい)。 ポジションとポジションの間の動きのデータは、自動的に補完してくれるので、ポイントとなるポジションをいくつか作成するだけで、モーションが完成する。 そこで実際に、オリジナルモーションを作成してみた。作成したモーションは、昨年大流行した「ハッスル!ハッスル!」ポーズのモーションである。 まず、KHR-1とPCをケーブルで接続し、HeartToHeartを起動する。モーションを作成するには、メインウィンドウの右下にある「モーションデータの編集表示ボタン」をクリックして、モーション編集ウィンドウを開く。 メインウィンドウの各サーボモーターの位置を制御するスライダーを動かしてモーションデータを作成することも可能だが、教示機能を使うには、メインウィンドウ左下にある「ショットボタン」(カメラのアイコン)をクリックすればよい。ショットボタンをクリックすると、教示作成ウィンドウが表示される。 教示作成ウィンドウには、現在の各サーボモーターの位置データが表示されているが、各サーボモーターのチェックボックスにチェックを入れることで、そのサーボモーターがフリーとなる。フリーとなったサーボモーター(ロボットの関節となる)は、完全に脱力した状態になるので、足や腰の部分のサーボモーターをフリーにする場合は、KHR-1が自立できなくなる場合が多いので、倒れないように、しっかり腕で胴体を支えてから行なうようにしよう。チェックボックスにチェックを入れたとたんに、サーボモーターがフリーになるので(人間でいえば、急に意識を失い、身体から力が抜けてぐにゃりとする感じ)、注意したい。 一度にあまり多くのサーボモーターをフリーにすると、余計なサーボモーターまで動かしてしまいやすくなるので、必要以上にフリーにするのはやめたほうがいいだろう。 ハッスルポーズの場合は、ホームポジションから、両足をやや広げたほうがいいと思ったので、まず、股関節部分のサーボモーター(CH13とCH19)をフリーにし、足を左右に広げた。フリーにしたサーボモーターの出力軸を適切な位置に手でセットできたら、教示作成ウィンドウのショットボタンをクリックすることで、チェック済みのサーボモーターの位置が読み込まれ、チェックが解除される(その状態でサーボモーターが固定される)。 こうやって、全てのサーボモーターの位置をPC側にキャプチャーできたら、「データ追加ボタン」を押すことで、そのポジションデータがモーション編集ウィンドウ内に追加される。 ハッスルポーズの場合、足の次は、肩関節と腕の部分のサーボモーターをフリーにして腕を曲げて上げたポーズを作り、1つ目のポジションとしてモーション編集ウィンドウに追加した。次に、腕を引いたポーズを作ろうと思ったのだが、人間の腕に比べると、KHR-1の標準状態の腕は自由度が小さいため、肘を直角に曲げたまま、後ろに引くという動きができない。仕方がないので、肘だけを胸のほうに曲げるポーズで、お茶を濁すことにした。こうしたロボットを作ると、人間の身体がいかに複雑で自由度が大きい(回転軸が多い)のかということもよくわかる。 モーション編集ウィンドウでは、各ポジションデータのコピーや貼り付けが可能なので、同じ動作を何度か繰り返したい場合は、以前のポジションデータをコピーして貼り付ければよい。今回の例では、腕を上げた状態のポジションデータ(No.2)と、肘を胸のほうに曲げた状態のポジションデータ(No.3)を作り、No.2→No.3→No.2→No.3→No.2→No.3というように、肘を曲げる動作を3回繰り返させることにした(本来のハッスル! ハッスル! では2回のような気もするが)。 モーションが作成できたら、「書き込みボタン」を押してKHR-1へ転送し、「データ再生ボタン」を押すことで、実際の動作を確認してみる。キャプチャーしたポジションデータを元にスライダーで位置を調整することも可能だ。動きがイマイチなら、満足できるまで調整してみよう。 なお、サーボモーターの動作速度は「SPEED」の数値(0~7の8段階)で変更できる。デフォルトでは7(最も遅い)となっているので、動きを見ながら、スピードを変更していこう。また、モーションの最後は必ずホームポジションに移行して終わるようにするのもポイントだ。そうしないと、続けて他のモーションを実行しようとしたときに、うまく動かなくなってしまう。 モーションが完成したら、次はシナリオ作成に移る。
ポジションの集合がモーションとなるわけだが、KHR-1では、そのモーションを組み合わせたものをシナリオと呼んでいる。 例えば、歩くモーションと、前転をするモーション、腕立て伏せをするモーションを作成したとする。モーションを単独で実行させるだけでなく、これらのモーションを自由に組み合わせて、1つのシナリオを作ることができる。 例えば、「歩く」→「前転」→「歩く」→「腕立て伏せ」というシナリオを作成しておけば、これらの一連の動きを続けて行なわせることができるのだ。 KHR-1の場合、最大100個のポジションデータから構成されるモーションを作成可能で、そのモーションを最大40個まで記憶させることができる。1つのシナリオには、最大200個までのモーションを組み合わせることが可能なので(モーションは最大40個までしか記憶できないが、シナリオでは同じモーションも繰り返して指定できるので、その合計回数が200となる)、かなり複雑で長いシナリオを作成できるわけだ。 なお、シナリオを格納する領域をバンクと呼ぶが、KHR-1にはバンク#0~バンク#3までの4つのバンクがあるので、4つまでのシナリオを記憶させることができる。このうち、バンク#0に記憶させたシナリオは、コントロール基板上のスタートスイッチを押すことで、自動実行できる(前回や今回の記事の動画は、自動実行機能を利用して撮影した)。 また、オプションの無線コントロールユニットを利用することで、無線でのモーション実行などが可能になる(無線コントロールユニットについても次回紹介予定)。 シナリオの作成も簡単だ。メインウィンドウの左上にある「シナリオデータ編集ボタン」を押すことで、シナリオ編集ウィンドウが開く。シナリオ編集ウィンドウの「モーション一覧読み込みボタン」をクリックすることで、KHR-1に転送済みのモーションデータが、シナリオ編集ウィンドウに読み込まれる。モーションデータ一覧の「COUNT」は、そのモーションに含まれるポジションの数を表している。 モーションを選んで、モーションデータ一覧から右側のシナリオデータにドラッグ&ドロップするだけで、そのモーションがシナリオデータに組み込まれる。モーションを複数組み合わせて(もちろん1個だけでもよい)、シナリオを作成したら、書き込みボタンを押してKHR-1にシナリオデータを転送し、実際に動作を確認すれば、一連の作業は全て完了だ。 言葉で書くとなかなか大変なようだが、実際にやってみると、それほど面倒ではない。もちろん、追加サンプルモーションのような高度なモーションを作るには、ある程度熟練しないと難しいだろうが。 最後に、今回作成した「ハッスル! ハッスル!」モーションと、追加サンプルモーションの「駆け足モーション」を組み合わせて作成したシナリオの実行例を掲載しておく。 このように、モーションやシナリオを自由に作れることが、KHR-1の大きな魅力だ。自分が作ったモーションにしたがって、KHR-1が一所懸命に動いてくれるのを見るのは、KHR-1所有者ならではの楽しみだ。必ずしも思い通りに動くとは限らないが、それはそれで楽しい。 KHR-1を手に入れた人は、サンプルモーションを動かしただけで満足せずに、是非オリジナルモーションの作成に挑戦していただきたい。
□ツクモロボット王国のホームページ
(2005年1月14日) [Reported by 石井英男]
【PC Watchホームページ】
|
|