石井英男のDigital Life

夢の二足歩行ロボットキット「KHR-1」徹底レビュー(第2回)
~ロボットも「ハッスル! ハッスル!」
オリジナルモーションの作り方




 新年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用オプションソール(ラージサイズ)。足裏に装着することで、剛性が増すと同時に面積が増えるので、歩行時などの安定性が向上する 左右の足裏用オプションソールと、取り付け用ネジ(10本、2本は予備)が含まれている 左の足裏にオプションソールを載せたところ。ノーマルの足裏に比べて、面積はかなり大きくなる
左右の両足裏にオプションソールを装着した様子。オプションソールを装着することで、ノーマルでは倒れやすい早足や駆け足のモーションも、確実に動くようになる オプションソールを装着した状態でのホームポジション。人間に比べると、身体のサイズに対する足裏の面積が大きいが、この状態でもそれほど不格好というわけではない ノーマルの足裏でのホームポジション。オプションソール装着時と比べてみてほしい
【動画】前進サンプルモーションを利用した、二足歩行の様子。オプションソールを装着することで、かなり安定性が向上している 【動画】近藤科学のサイトで公開されている早足サンプルモーションでの二足歩行の様子。付属のサンプルモーションに比べて、動きが速いため、ノーマルの足裏では倒れてしまうことがある
【動画】近藤科学のサイトで公開されている駆け足サンプルモーションでの二足歩行の様子。こちらは、オプションソール装着を前提として、作られたモーションである 【動画】近藤科学のサイトで公開されている前転サンプルモーション。このモーションは、オプションソールが必要というわけではないが、なかなかダイナミックな動きだ

●関節を手で動かして、モーションの作成が可能

 それでは、実際にオリジナルモーションを作成する手順を解説しよう。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(最も遅い)となっているので、動きを見ながら、スピードを変更していこう。また、モーションの最後は必ずホームポジションに移行して終わるようにするのもポイントだ。そうしないと、続けて他のモーションを実行しようとしたときに、うまく動かなくなってしまう。

 モーションが完成したら、次はシナリオ作成に移る。

HeartToHeartのメインウィンドウ。デフォルトではコントロールボードで制御可能な24チャンネルが全て表示されるが、KHR-1で利用しないチャンネルについては表示しないようにカスタマイズしてある モーション編集ウィンドウ。各サーボモーターの位置(0~180)が表示されている。1行分が1つのポジションに相当する。このポジションデータが集まったものが、モーションとなる 教示作成ウィンドウ。チェックボックスにチェックを入れたサーボモーターがフリーとなるので、そのサーボモーターの出力軸を手で動かして、ポジションを決めていく
ハッスル! ハッスル! ポーズのモーションをモーション編集ウィンドウで作成中。ポジションデータのコピーや貼り付けが可能なので、同じ動作を繰り返す場合も簡単だ ハッスル! ハッスル! ポーズのモーションが完成。SPEEDの数値を小さくすると、動作が高速になる
サーボモーターの動きをグラフ形式で表示させることも可能 サーボモーターのいくつかをフリーにし、腕や足を手で動かしてポジションを決める

●複数のモーションを組みあわせて、シナリオを作成する

 ポジションの集合がモーションとなるわけだが、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を手に入れた人は、サンプルモーションを動かしただけで満足せずに、是非オリジナルモーションの作成に挑戦していただきたい。

シナリオ編集ウィンドウ。KHR-1から読み込んだモーションデータが、左側のモーションデータ一覧に表示されている。この場合だと、「ハッスル」と「駆け足」の2つのモーションデータがKHR-1に転送されていることになる 【動画】筆者が作成したハッスル!ハッスル!ポーズもどきのモーションを実際に動かした様子。あまり似てない気もするが、御容赦いただきたい 【動画】複数のモーションを組み合わせたシナリオを実行させた様子。この例では、「ハッスル!ハッスル!」→「駆け足」→「ハッスル!ハッスル!」というシナリオを作成した

□ツクモロボット王国のホームページ
http://www.rakuten.co.jp/tsukumo/
□近藤科学のホームページ
http://www.kondo-robot.com/index.html
□製品情報
http://www.kondo-robot.com/html/Robot_products_kit.html
□関連記事
【2004年12月24日】【石井】夢の二足歩行ロボットキット「KHR-1」徹底レビュー(第1回)
http://pc.watch.impress.co.jp/docs/2004/1224/digital011.htm

バックナンバー

(2005年1月14日)

[Reported by 石井英男]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2005 Impress Corporation All rights reserved.