二足歩行ロボットコミュニティサイト

【サイトの使い方】  【サイトマップ】  【お問い合わせ】 
ロボット動画  |   ロボット写真  |   BBS  |   ダウンロード  |   イベント予定  |   スタッフ日記  |   リンク  |  
ログイン パスワード    新規登録   パスワード紛失  

 

第0回 Welcome to 'RobovieMaker2' world.

さて、2007/6/27、HVに対応した新CPUボード「VS-RC003HV」の発売と合わせて、従来の機能を大きく拡張した「RobovieMaker2」が公開されました。

RobovieMaker2は、一度にたくさんのセンサ入力に対応でき、例えばライントレースや障害物回避歩行のような自律動作や、アナログスティックによる8方向移動などのマスタスレーブ的な動作も容易に実現できます。
主な改善点は下記の通りです。

  • フローチャート式でモーションを組み立てられ、動作の組立てが容易
  • モーション中に「条件分岐」や「変数演算」の機能が追加され、よりプログラマブルなモーション作成が可能
  • サーボモータの個別脱力機能が追加され、モーション中などで任意にサーボモータの脱力が可能
  • 操作マップの入力形式が拡張され、コントロール操作時に多種類のセンサ入力と多様な条件分岐が可能になり、自律的な動作の実現が容易
  • サーボモータ出力式が拡張され、一つのサーボモータに「ジャイロセンサとコントローラのアナログスティック」など複数のデバイスのフィードバックを容易に設定可能

RobovieMaker2はVS-RC003HVに標準で付属している他、既にVS-RC003をお持ちの方も公開されている新しいファームウェアでCPUボードをアップデートすることで使用できるようになります。
また、これまでに作成したロボットプロジェクトやモーションデータはそのまま引き継いで使用可能です。

本コーナーでは、RobovieMaker2の扱いについて集中連載を行ないたいと思います。

まずは導入する

何はともあれまずは、RobovieMaker2とCPUボードのファームウェアを入手しましょう。これらは、VS-RC003のサポートページにアップロードしているので、こちらから入手してください。

VS-RC003サポートページ

ダウンロードしたら、現在PCにインストールされている「RobovieMaker for VS-RC003」をアンインストールして、ダウンロードしたRobovieMaker2をインストールします。
RobovieMaker2をインストールしたらとりあえず実行してください。実行すると、ロボットプロジェクトを指定する以下のダイアログを開きます。
この仕様はRobovieMaker for VS-RC003と同じですね。

プロジェクトが見つからない
RobovieMaker for VS-RC003と同じく、インストール直後はプロジェクトが見つからない

前述の通り、RobovieMaker2で、RobovieMaker for VS-RC003のプロジェクトやモーションファイルをそのまま使用できます。
ただし、RobovieMaker2で使用・保存したプロジェクトやモーションはRobovieMaker for VS-RC003で読み込めなくなる場合があります。
現在のプロジェクトをあとでRobovieMaker for VS-RC003でも使用したい場合は、念のためこれまで使用していたロボットプロジェクトをバックアップしてください。

RObovieMaker2でロボットプロジェクトを新しく作成する場合は、これまでと同様に「新しくロボットプロジェクトを作成する」を選択してください。
CPUボードのファームウェアをアップデートしていない場合は、ここでCPUボードを初期化することができません。一旦「CPUボードを初期化する」にはチェックを入れずにそのままプロジェクトを作成してください。

ファームウェアのアップデートについては、本連載でも以前取り上げているので詳しくはこちらをご覧ください。

ロボットプロジェクトを読み込んでRobovieMaker2が立ち上がったら、まずCPUボードのファームウェアをバージョンアップします。CPUボードをPCと接続して、メニューより「ヘルプ」→「ファームウェアアップデート」をクリックしてください。
するとアップデートするファームウェアのバイナリファイルを指定するダイアログを開くので、先ほどダウンロードしたCPUボードのファームウェアのファイルを指定して「開く」をクリックしてください。
ファームウェアのファイルを指定すると自動的にアップデートを開始します。アップデートが完了したら、続いてロボットプロジェクトのデータ一式をCPUボードに書き込み、すべての書き込みが完了したらファームウェアのアップデートが終了します。
※アップデート中は絶対にCPUボードをリセットしたり、通信ケーブルを抜いたりしないでください。

アップデートが終了したら、試しにCPUボードと通信を開始してみてください。ここで何もエラーが出ずに通信できた場合はアップデートに成功です。
以下のエラーダイアログが表示されたらアップデートに失敗しています。 もう一度指定したファイルが正しいか、またはダウンロードしたファイルが壊れていないか確認し、アップデート作業を行なってください。

ファームウェアのバージョンが低い
ファームウェアのバージョンが ver1.000 リビジョン4より前だと通信できない

がらりと変わったモーションエリア

さて、準備が整ったところで、RobovieMaker2の概要を説明します。

画面を見れば分かるとおり、RobovieMaker for VS-RC003から大きく変わった点がいくつかあります。
まずはモーションエリアです。従来のモーションエリアは、モーションに登録したポーズを表す「モーションスライダ」が縦一列に並んでおり、それぞれの遷移時間・nextポーズ・breakポーズなどを設定してモーションを構築しました。
これに対してRobovieMaker2では、モーションスライダの代わりに「ブロック」と呼ばれる多角形の記号で1ポーズが表示されます。また、これまではポーズスライダに含まれていたbreakポーズの設定が別のブロックとして切り分けられました。
そして、従来のnextポーズ、breakポーズに当たるモーションの実行順の設定は、各ブロックに備わった矢印で行なうようになりました。

新しいモーションエリア
新しいモーションエリア。フローチャート式でモーションを組み立てる

このように、いわゆるプログラムのフローチャートを作成するように、より感覚的にモーションを作成できるようになっています。

ブロックの種類はポーズ以外にも数種類存在し、従来のbreakポーズの役割を持つ「ループブロック」、モーションの開始・終了を表す「STARTブロック」「ENDブロック」、RobovieMaker2になって新しく追加された「分岐ブロック」「演算ブロック」があります。

モーションブロック
新しいモーションは様々な役割を持つ「ブロック」を組み合わせていく。

従来から存在するポーズやループ構造は次回詳しく説明するとして、新しく追加された「分岐ブロック」「演算ブロック」について簡単に説明します。
「分岐ブロック」は、CPUボードの任意の変数の状態を設定した条件と比較し、その成立の可否で次に実行するポーズを分岐することができます。
例えば、分岐ブロックを二つ並べて、それぞれ加速度センサの値を参照して一方はうつ伏せの場合(センサ値が一定以上)はうつ伏せ起き上がり動作に、もう一方は仰向けの場合(センサ値が一定以下)は仰向け起き上がり動作に、どちらの状態にも当てはまらない場合はそのままモーションを終了する、という動作を作成すれば、ボタン一つで2パターンの起き上がりに対応でき、更に暴発もしない起き上がりモーションを作成できます。

うつ伏せ・仰向け両方に対応した起き上がり
うつ伏せ・仰向け両方に対応した起き上がり

「演算ブロック」は、CPUボードの任意の変数に対して、値を代入したり四則演算をすることができます。例えば、前述の分岐ブロックと組み合わせてモーション中にC言語のfor文のような構造を作成することができます。
CPUボードでユーザに解放されている任意の変数(64〜127)をカウンタとして使用し、最初に値を0に初期化して1ループごとに1を加算していきます。そして、一定の値以上になった時に分岐ブロックでループを抜けます。

for文の構造で一つのモーションに二つのループを作る
for文の構造で一つのモーションに二つのループを作る

このようなループは、従来の「ループ構造」におけるループ回数の縛りが無く、必ず同じ回数(同じ条件)でループが実行されます。また、一つのモーション中に複数のループ構造を作ったり、ループの中に入れ子的にループを作ることも可能です。
これらの追加機能によって、分岐・反復・演算などより本格的なプログラミングがモーションから可能になりました。

モーション中に任意に脱力可能。「サーボモータの個別脱力機能」

さて、今度はポーズエリアに目を移します。
0〜29までのサーボモータのポーズスライダになにやら見慣れないものがくっついていますね。

サーボモータの個別脱力機能のチェックボックスがついたポーズスライダ
サーボモータの個別脱力機能のチェックボックスがついたポーズスライダ

これは、サーボモータのON/OFFを切り替えるためのチェックボックスです。
RobovieMaker2ではサーボモータの個別脱力機能というものが追加されており、モーション中などに自由に関節単位でサーボモータのON/OFFを切り替えることが可能です。
試しにサーボモータをONにしてこのチェックボックスをクリックしてチェックを外すと、その関節だけサーボモータがOFFになると思います。このように、モーション中にポーズ単位でサーボモータの脱力を設定できます。

細かい設定については後の回で説明しますが、更に、サーボモータ脱力機能はON/OFFの状態を参照する変数を任意に設定変更できるため、例えばゲームパッドの任意のボタン入力を参照するように変更すれば、コントローラでの操作中にボタンを押したときだけ脱力するような使い方が可能です。
これで、バトル中に相手ロボットと絡まったときにもすぐ安全にロック状態を解除できますね。

ロボットの自律化も容易な「操作マップV2」

RobovieMaker2では、コントローラでの操縦にも大きく手を加えられています。
RobovieMaker2では、操作マップについて「操作マップV1」と「操作マップV2」の二種類が存在します。前者はRobovieMaker for VS-RC003で使用していたものと全く同じですが、後者は従来の操作マップと大きく異なります。
操作マップV2では、従来の操作マップ(操作マップV1)の「アナログ入力」が大幅に拡張された仕様となっており、「任意の変数に対して任意の条件とモーションの割り当て」が一つの入力となります。
例えば「スイッチがONになる」「電圧が一定以下になる」「アナログ入力が一定の傾きになる」など、任意の変数に格納されたセンサ・デバイス情報に大してモーションの割り当てと発動条件を設定します。
コントローラでの操縦についても、変数に格納されたコントローラの入力情報を参照して、変数がある値と同一の場合にモーションを再生するという仕組みになっています。

従来の操作マップではアナログ入力は一つのマップに4chまでと少なく、 また、コントローラのボタンなどとの優先順位もある程度固定されており、自律のような動作を実現するためには設定の柔軟さが不十分でした。
しかし、操作マップV2では基本的に入力の数に制限がありません(ただし、CPUボードに書き込めるデータ量の制限はあります)。 また、発動条件の種類が増加し、更に入力ごとの優先度も自由に変更できるため、非常に柔軟な組み方が可能になりました。
更にモーション中の条件分岐や変数演算と組み合わせると非常に高度なプログラムが可能です。

新しい操作マップ・操作マップV2
新しい操作マップ・操作マップV2

最後に

さて、駆け足で見てきましたRobovieMaker2の概要ですが、次回よりいよいよ細かい中身について説明していきます。
次回はまずモーション作成について説明したいと思います。


前のページ
番外編その2 ショートカットキーを活用する
コンテンツのトップ 次のページ
第1回 RobovieMaker2でのモーション作成(前編)


検索
Loading
メインメニュー