石井英男のロボットキットレビュー
近藤科学「KHR-3HV」ソフトウェア編(基礎編)
今回はKHR-3HVのソフトウェア編として、付属のモーション作成ソフト「HeartToHeart4」を使って、オリジナルモーションを作成する手順を紹介したい。
●まずはHeartToHeart4のアップデート
HeartToHeart4は、KHR-3HVに搭載されているコントロールボード「RCB-4HV」専用モーション作成ソフトであり、従来のKHR-2HVなどで使われていた「RCB-3HV」専用モーション作成ソフト「HeartToHeart3」とは、画面デザインや操作方法が大きく異なっている。
KHR-3HVの初期ロットに付属しているCD-ROMに収録されているHeartToHeart4のバージョンは1.0.0.0でファーストリリース版だが、ファーストリリース版には、いくつかの不具合があるほか、HeartToHeart3で可能だった、モーション内でのアナログミキシングの設定変更などの機能が利用できない。近藤科学のWebサイトで、HeartToHeart4のバージョンアップ版(執筆時点では1.1.0.2)が公開されているので、そちらをダウンロードしてアップデートを行なっておくこと。
バージョン1.1.0.2では、バグが修正されているほか、スタートアップモーションの登録が可能になり、アナログ入力値の較正コントロールやアナログミキシングの修正コントロール、トリム情報のみのマージが可能になるなど、機能も強化されている。なお、バージョン1.1.0.2のマニュアルは、HeartToHeart4を起動して、ヘルプを開くことで見られる。マニュアルはPDF形式で60ページあるので、プリントアウトしておくとよいだろう。
●新規プロジェクトを作成し、初期設定を行なう
HeartToHeart4(以下HTH4)ではモーション管理の概念が、HeartToHeart3(以下HTH3)とは大きく変わっている。HTH3では、モーションデータは別々のファイルとして管理されており、コントロールボードにモーションデータを書き込む際には、一つずつモーションを指定していく必要があった。そのため、バトル競技に出る場合とサッカー競技に出る場合など、利用するモーションが異なる場合は、モーションの入れ替えが非常に面倒であった。
しかし、HTH4では、複数のモーションデータをまとめたプロジェクトファイルが用意されており、プロジェクトを切り替えることで、コントロールボードにモーションデータを一斉に書き込むことができるようになった。
もちろん、モーション一つ一つをモーションファイルとして保存することも可能で、プロジェクトファイルは、それらのモーションファイルを一つにまとめたものになる。モーションファイルもプロジェクトファイルも、拡張子はすべてxmlになっているので、慣れないと混同しやすいが、プロジェクトファイルは、それが保存されているフォルダ(プロジェクトフォルダ)と必ず同じ名前になる。
HTH4でモーションを作成する際には、必ずプロジェクトを新規作成するか、あるいは既存のプロジェクトを開いて、そこに追加する形になる。ここでは、プロジェクトを新規作成して、モーションを作成する手順を解説する。
まず、KHR-3HVとPCを付属のシリアルUSBアダプターHS経由で接続し、KHR-3HVの電源を入れる。HTH4を起動して、シリアルUSBアダプターHSのCOMポートを指定する。シリアルUSBアダプターHSのCOMポートは、デバイスマネージャで確認できる。次に、「ファイル」→「新規作成」→「プロジェクト」の順に選んで、新規プロジェクトを開き、プロジェクト名を指定する。標準で「C:\Program Files\HeartToHeart4\Projects\」以下に保存されているサンプルプロジェクトをインポートする。なお、ユーザーが作成したプロジェクトは、マイドキュメントの中のHeartToHeart4\Projectsフォルダ以下に保存されるので、間違えないよう気をつけよう。
プロジェクトを新規作成するか、既存のプロジェクトを読み込んだら、必ず、プロジェクト設定ウィンドウを開いて、プロジェクトの設定を行なう。プロジェクト設定ウィンドウでは、通信速度やフレーム周期、トリム調整などが可能だ。設定が完了したら(基本的にデフォルトのままでよい。トリムについてはトリムマージでトリム情報のみを読み込むことが可能)、ツールバーの「ROMへ保存」→「全て保存」を選び、設定したトリム情報などをRCB-4HVのEEPROMに書き込む。さらに、ツールバーの「ファイル」→「プロジェクトを保存」を選んで、プロジェクトを上書き保存すれば、プロジェクトの初期設定は完了だ。
●モーション編集ウィンドウで、モーションを作成する
HTH4では、マルチウィンドウ方式を採用しており、必要に応じてウィンドウの表示・非表示を切り替えたり、ウィンドウを自由な場所に配置できることが特徴だ。そのため、画面解像度が高いほど、快適に利用できる。ネットブックに多い1,024×600ドットではかなり窮屈であろう。
モーションを作成するには、「ファイル」→「新規作成」→「モーション」の順に選んで、モーション編集ウィンドウを開く。最初は、まっさらなキャンバスのみが表示されるので、ツールボックスウィンドウを表示させる。ツールボックスウィンドウには、多くのアイコン(コントロールと呼ばれる)が、ジャンル別に並んでいる。このコントロールをキャンバス上にドラッグ&ドロップして配置し、線で繋いでいくことでモーションを作成するのだ。
HTH3でも、似たような方法でモーションを作成してたのだが(HTH3の場合、コントロールではなくオブジェクトと呼ばれていた)、HTH4は、HTH3に比べてコントロールの種類が非常に多く、より柔軟で高度なモーション作成が可能である。
また、HTH4のコントロールは、それぞれがDLLファイルとなっており、プラグインによって新たな機能を持つコントロールを追加できるように設計されている。実際に、最新バージョンではアナログミキシングの修正コントロールなどの新たなコントロールが追加されており、今後の機能強化も期待できる。
モーション作成で、最も基本となるコントロールがPosコントロールである。Posコントロールは、ロボットのサーボモーターを動かしポジション(ポーズ)を決めるためのコントロールだ。二足歩行ロボットのモーションは、パラパラ漫画のようにいくつかのポーズを順番に並べていくことで作成するのが基本だ。Posコントロールを必要な数だけ並べて、各コントロールをダブルクリックし、ポジション設定ダイアログを開く。
ただし、最初にモーションを作際する際は、各サーボモーターに対応するポジションパネルが配置されていないので、必要なポジションパネルを左のリストからドラッグ&ドロップしてロボットの形になるように並べる。
あとは、Syncボタンをクリックしてから、各サーボモーターのスライダーを動かせば、ロボットのサーボモーターがそれに応じて動く。狙ったポーズができたら、OKボタンをクリックする。なお、そのポーズへの遷移時間(動きの速さ)は、フレーム数で指定できる。1フレームの時間は、プロジェクト設定ウィンドウで変更できるが、KHR-3HVの標準設定では15msである。
●接続モードでコントロール同士を線で繋ぐ
必要なPosコントロールの設定が完了したら、ツールバーのコネクトボタンをクリックして、接続モードに切り替え、マウスカーソルをコントロールにあわせてクリックし、順にコントロールを線で繋いでいく。接続線の開始位置は青いコネクタ、終了位置は赤いコネクタが表示されるので、正しい順序で接続されているか確認すること。
接続が完了したら、フラッグ配置モードに切り替えて、スタートフラッグとストップフラグをコントロールに配置する。ある程度、モーションの形ができたら、実際に再生してみよう。HTH4では、オンライン再生機能と呼ばれる新機能が追加されており、コントロールボードのEEPROM上にモーションデータを書き込まなくても、作成したモーションを実際に再生することが可能なのだが、現バージョンのオンライン再生機能では、ループなどの条件分岐に対応していないので、オンライン再生機能を使わずに、毎回コントロールボードに書き込んで実行させたほうが確実だ。
モーションをコントロールボードに書き込むには、ビルドメニューからビルドを選択するか、F5キーを押せばよい。モーションを書き込みたい番号を指定すると、モーションの書き込みが行なわれるので、モーション一覧ウィンドウを開いて、そのモーションを選択し、再生ボタンをクリックしたら、今書き込んだモーションが再生される。
●繰り返し実行には、SetCounterとLoopを使う
ここでは、例として空手チョップモーションを作ったが、単に右手を真上まで動かしてから下まで振り下ろすだけでは、空手チョップには見えない。フレーム数を変更して速度を変更し、もう一つ中身がPosコントロールをコピー&ペーストで作成し、そちらのフレーム数を多くすることで、振り上げてからそのままのポーズで少し静止するようにした。
ある形でしばらく静止させたいときは、同じポーズのPosコントロールを2つ並べて、最初のPosコントロールでそのポーズまで動かし、次のPosコントロールで静止させるというのがモーション作成の基本的なテクニックだ。モーションを修正したら、再びビルドして同じ番号に上書きし、動作を確認。気に入らないところがあったらさらに修正とビルドを繰り返していけばよい。
空手チョップの場合だと、腕を下まで振り下ろすよりも、水平よりやや下くらいで止めたほうがそれらしく見えるので、そのように修正してみた。ある程度形になったので、今度は、同じ空手チョップを3回繰り返すモーションにしてみよう。Posコントロールをすべてコピー&ペーストとして3回分並べても、繰り返しモーションを作れるが、SetCounterコントロールとLoopコントロールを使えば、もっとエレガントに繰り返しモーションを作ることができる。
SetCounterコントロールは、カウンター(変数)に値を代入するためのコントロールで、Loopコントロールは、カウンターから値を1引いて、結果が0になったら、指定したコントロールへ移動させるコントロールだ。SetCounterコントロールとLoopコントロールは、必ずペアで利用することになる。HTH3でも、繰り返しは可能だが、カウンターが1つしかなく、多重ループなどは実現できなかった。HTH4では、C1からC10の10種類のカウンターが用意されており、より複雑なループも可能になっている。
また、HTH3の場合、分岐の条件を満たす場合と、満たさない場合では、オブジェクト同士を繋ぐ線の形状が違っていたのだが、HTH4では、Loopコントロールのダイアログを開いて、Loopコントロールから他のコントロールへ結ぶ線のコネクタの位置(Bottomならコントロールの下の辺から延びる線ということ)を指定するようになっている。
なお、各コントロールのダイアログを開いて、値を変更した際は、必ずOKボタンをクリックしてダイアログを閉じること。「×」をクリックしてしまうと、その変更が反映されない。また、コントロールに線の始点(青いコネクタ)だけが残ってしまうことがあるが、その場合は、いったんそのコントロールをコピー&ペーストして、古いコントロールを消してしまい、新しく配線し直すとよい。
モーションが完成したら、忘れずに作成したモーションとプロジェクトをそれぞれ保存しておくこと。
●自由度が高く、慣れれば効率よくモーション作成が可能
今回紹介したのは、HTH4の豊富な機能の中でも、ごく基本的なもののみだ。ポーズを作成する際にスライダーを動かすのではなく、脱力したサーボモーターを手で動かし、目的のポーズができたら、その位置を取り込むという教示機能(HTH4ではSmart Teachと呼んでいる)ももちろん用意されているし、アナログセンサーの値によって、分岐を行なったり、ミキシングを行なうことも可能だ。さらに、オプションの無線コントローラへのモーション割り付けも、従来のHTH3よりもずっと簡単に行なえるようになっている。このあたりの高度な使い方については、また別の機会に紹介したい。
HTH4は、HTH3とは画面デザインや操作方法、ファイル概念などが大きく異なっているため、HTH3に慣れていた人は当初は戸惑うかもしれない。しかし、複数のモーションデータを同時に開いてタブで切り替えられ、コピー&ペーストも自由にできることなど、HTH4にはいろいろ便利な機能が搭載されている。センサー入力の数も大幅に増えているので、HTH4を使いこなせば、HTH3では難しかった高度な自律モーションも実現できるだろう。
2009/10/23 17:39