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

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

 

第6回 コントローラの操作設定

仕事で時々名古屋に行くのですが、名古屋駅を降りたら地下鉄にしか乗った記憶がない!
ウワサによると名古屋は最も地下街が栄えているらしいですが、さすが未来の首都ですね。

コントローラで操縦したい!

ロボットを買っても、いつまでもPCにつないでひとつのモーションだけ作成していても面白みにかけると思います。
やはりロボットはコントローラで操縦するのが醍醐味。良いも悪いもリモコン次第、これであなたは神にも悪魔にもなれます。

では、自分で作ったモーションを使って、コントローラからロボットを操縦するにはどうすればよいのでしょうか?
組立て教室に参加された方の中でも、結構この質問が出るので、ここでひとつきちっと説明したいと思います。

ボタン割り当て=「操作マップ」

まず、VS-RC003をコントローラで操作する場合の基本的な仕組みについて説明したいと思います。

コントローラにはたくさんのボタンが備わっています。このボタンひとつにモーションファイルを割り当てる、というのが、ロボットをコントローラで操縦する際の基本です。

モーションを割り当てられるボタンは、ゲームパッドの場合「十字キーの前後左右」「○△□×」「L1,L2,R1,R2」の12個、ProBoの場合「前後左右ボタン」「(1)〜(5)ボタン」の9個です。
なお、注意として、ボタンの同時押しはできません(この場合、押したボタンのうちのどれかひとつのモーションが呼び出されます)。

「それじゃボタンの数が少なすぎる」とお思いの方もおられるかもしれません。しかし、心配は無用です。コントローラでの操作には、「マップ」という概念があり、ひとつのボタンに3〜4種類のモーションを割り当てることができるのです。

「マップ」の概念は言葉で説明するより、図を見ながらのほうがわかりやすいと思います。
下画像をご覧ください。

操作マップの仕組み

「マップ」は、ひとつのボタンに対してひとつのモーションを割り当てた、いわば「割り当て表」のような物。
コントローラでの操作は、複数の「マップ」を自由に切り替えられ、ひとつのボタンで様々なモーションを呼び出せる

マップの概要は画像下のキャプションの通りですね。ちなみに、この「マップ」を複数まとめたものを「操作マップ」と呼びます。
なお、使用できるマップの数は操作するコントローラによって異なり、ゲームパッドの場合は4つ、ProBoの場合は3つのマップを使うことができます。

では、実際に操作マップを作っていきましょう。

操作マップはモード切替スイッチに割り当てろ

まずRobovieMakerを起動し、ツールバーの、書き込みボタンボタン、もしくはメニューの「プロジェクトの設定」→「モードスイッチ/音声の設定・書き込み」をクリックしてください。

なお、操作マップを作成する場合は、特にロボットと通信しておく必要はありません。ただし、作成した操作マップをロボットに記録する場合は接続する必要があるので、ロボットはお手元に用意してください。

クリックすると以下のダイアログが開きます。一度「Robovie-iソフトウェア簡単操作ガイド」に従って操作したことがある人は見覚えがあるかと思います。

書き込みダイアログ

このダイアログでは、「ロボットのモード切替スイッチに操作マップなどを割り当てる」(ダイアログ左側)、「ロボットで使用する音声ファイルを割り当てる」(ダイアログ右側)、「それらの設定をロボットに書き込む」(ダイアログ下側)の三つの機能を持っています。
そう、操作マップの作成はダイアログ左側で行い、作成した操作マップをダイアログ下側でロボットに書き込むのです。

さて、ここで聴きなれない言葉が出てきました。「モード切替スイッチ」とは何でしょう?

皆さん、ロボット本体のCPUボードの後ろ側にご注目です。0〜9の数値が丸く並んでいて、それを指でつまんでまわすと番号を選べるスイッチがあるのがわかりますか?昔のテレビのスイッチみたいなやつです。
これがモード切替スイッチです。このスイッチは何のためにあるのでしょうか?

皆さんはこれまでロボットを動かす場合、ロボットをPCに接続して、PCからロボットを操作することがほとんどだったかと思います。しかし、ロボットをPCから切り離して単独で電源を入れたらどうなるでしょう?

モード切替スイッチと操作マップの関係

ロボットをPCから切り離して電源を入れると、現在のモード切替スイッチの番号を読み取って、ダイアログで同じ番号に設定した操作マップなどを読み込んで起動する

ここで再びダイアログの左側にご注目です。こちらのリストにも0〜9の数値が並んでおり、中には「操作マップ」等が設定された項目がありますね。そう、ロボットを単体で起動すると、現在のモード切替スイッチの番号を読み取って、ダイアログのリストで同じ番号に設定した操作マップなどを読み込むのです。

そのため、ロボットをコントローラで操作する場合には、操作マップを作成するだけではなく、「作成した操作マップをモード切替スイッチの番号に割り当てる」「ロボットのモード切替スイッチの番号を設定した番号に合わせて、ロボットを起動する」という手順を踏まないと、ロボットをコントローラで操作できないのです。

時々、これを知らずにモード切替スイッチの番号をあわせずにロボットをコントローラで操縦しようとして、「操作マップを書き込んだのに動かない」と悩む人がいますので、この機会にしっかり理解しておいてください。

操作マップを作成する

さあ、では実際に操作マップを作っていきましょう。
最初に、モード切替スイッチのどの番号に、新しく作成する操作マップを割り当てるかを決めます。

まずダイアログのモード切替スイッチのリストより、これから作成する操作マップの番号をクリックしてください。クリックして色が変わったら、続いてその下の「操作マップ新規作成」ボタンをクリックしてください。

操作マップをモード切替スイッチに割り当て

最初にモード切替スイッチの操作マップを割り当てる番号をクリックし、続いて「操作マップの新規作成」をクリック

すると、もうひとつ新しいダイアログを開きます。このダイアログで操作マップを作成します。

操作マップを作成するダイアログ

まずは、各ボタンにモーションを割り当てて見ましょう。
ダイアログ左側のリストには、「上」「左」「○」「L1」など、コントローラのボタンの項目が並んでいます。このリストから、先ほどと同じようにモーションを割り当てたいボタンの項目をクリックして色を変え、ダイアログ右上の「モーションファイル割り当て」をクリックしてください。

すると、モーションファイルを選択するダイアログが開くので、ボタンに割り当てたいモーションファイルを選んで「開く」をクリックしてください。

これで、リスト中の先ほどクリックしたボタンの項目に選んだモーションファイルが割り当てられ、ボタンへのモーション設定ができました。

ボタンにモーションを割り当てる

では、これと同じように、好きなボタンに好きなモーションを割り当ててみましょう....と言いたいところですが、その前にとても重要なことを説明します。

リストには、ボタンの名前以外にもいくつかの項目が存在します。この中の一番上に存在する「アイドリング」の項目には、必ず何らかのモーションを割り当てる必要があります。
では、この「アイドリング」とは一体何でしょうか?

例えば自動車などで、エンジンだけかけてアクセルを踏まずに停車している状態を「アイドリング」といいますよね? これと同じく、操作マップの「アイドリング」は、コントローラのボタンを何も押さない状態でロボットに再生させるモーションを表します。

ということは、アイドリングに割り当てるモーションは「歩く」「手を振る」等の動きのある物ではなく、基本的に「直立状態」となります。
ちなみに、Robovie-iの場合、アイドリングモーションのサンプルとして、「直立.txt」というモーションファイルを収録しています。

ロボットが単独で操作マップを読み込んで起動すると、最初は全身のサーボモータの位置がばらばらになっています。このままサーボモータをオンにすると、ロボットがめちゃくちゃなポーズを取って壊れてしまう危険性があります。そこで、アイドリングモーションを設定して、最初にロボットのポーズを「直立状態」等の安定した状態にあわせる必要があるのです。

また、アイドリングは操作マップ中の使用するマップ全てに設定する必要があるので注意してください。

説明がよくわからなかった人は、「「アイドリング」には、直立だけするようなモーションを割り当てなければならない」とだけ覚えておいてください。じきに理由がわかるときが来ると思います。

アイドリングには必ずモーションを割り当てる

ちなみに、リストには「アイドリング」以外にもコントローラのボタンには無い項目があります。主な物を以下に説明します。

・マップ??への移行モーション
これは、コントローラ操作中にマップを切り替えたとき、マップを切り替える前に再生させるモーションです。例えば、アイドリングモーションが直立状態のマップからアイドリングモーションが据わった上体のマップへ切り替える場合、移行モーションとして立った状態から座った状態並行するモーションを定義する必要があります。

・アナログ1〜4
これは、ロボットに拡張したセンサの入力を読み取って、自動的に再生させるモーションを設定します。この機能を使う場合はセンサなどの拡張が必要です。また、モーションファイルの設定以外に、「センサの入力がどういう条件でモーションを再生するか」という設定も行う必要があります。
アナログ設定については扱いが難しいので、中級編以降に説明を回したいと思います。今回はモーションを割り当てないでください。

・(disable)
これは、コントローラなどで出すことができない入力、つまり未使用の項目を表します。
この項目は将来拡張されて使用できるようになる可能性がありますが、今はモーションを割り当てる必要はありません。

それでは、コントローラのボタンに好きなモーションを割り当ててみましょう。

ちなみに、設定するマップを変更する場合は、ダイアログ下部の「マップ選択」から選んでください。
ただし、最初に開いたマップ以外は、すべて「使用しない」という状態になっているので、マップを選択したら最初に「このマップを使用する」をクリックしてチェックを入れ、マップを使用するように設定してください。
また、アイドリングにモーションを設定することを忘れないでください。

アイドリングには必ずモーションを割り当てる

操作マップの設定が終わったら、必ずファイルに保存します。
ダイアログ下部「その他の設定」中の「保存ファイル名」の項目にある「参照」をクリックすると、ファイルに保存する操作マップの名前を設定します。
ここで、保存する名前を指定し「保存」をクリックしてください。

続いて、設定したファイル名で実際に操作マップを保存するかどうかを聞かれるので、「はい」をクリックして保存してください。

これで操作マップのファイルへの保存は完了です。

操作マップをファイルへ保存

操作マップは必ずファイルに保存する

また、操作マップの作成を終了する場合は、ダイアログ下部の「閉じる」をクリックしてください。
このとき、もう一度操作マップをファイルに保存するかどうか聞かれるので、保存しない場合は「いいえ」をクリックしてください。

ダイアログを閉じると、モード切替スイッチのリストに、先ほど作成した操作マップが自動的に設定されます。

作成した操作マップをCPUボードに書き込む

作成した操作マップは、実際にロボットにデータを書き込まないと使用できません。
ロボットにデータを書き込む場合は、ダイアログ下部の「すべて上書き」をクリックしてチェックし、続いて「書き込みを実行」をクリックしてください。

操作マップをファイルへ保存

作成した操作マップは必ずCPUボードに書き込む

すると、データの書き込みを開始します。データ書き込みの進み具合は画面に表示されるので、これが終わるまで待ってください。

また、データの書き込み中は、CPUボードの電源を切ったり、通信ケーブルを抜いたり、リセットボタンを押すなどの行為は絶対にしないでください。場合によってはCPUボードが故障します。

データ書き込み中のダイアログ

書き込みが完了するまで、絶対にCPUボードをリセットしたりケーブルを抜いたりしない

いざ、コントローラで操作

さて、操作マップをCPUボードに書き込み終わりました。
では早速ロボットをコントローラで操作してみましょう。

まず、ロボットの電源を切ってCPUボードから通信ケーブルを抜いてください。
次に、モード切替スイッチの番号を、先ほど書き込んだ操作マップの番号に合わせて、電源をオンにしてください。これでロボットが操作マップを読み込んで起動します。
操作マップを読み込んで起動しても、サーボモータはオフのままです。そこで、最後にコントローラからサーボモータをオンにします。ゲームパッドの場合はSELECTボタンを押しながらSTARTボタンを押し、ProBoの場合はスイッチ「SW4」をBに合わせて下さい。

サーボモータをオンにしたら、モーションを割り当てたボタンを押してロボットを自由に操作してください。

また、ロボットを動かしているときに、手足と体が絡まってモータロックが起こったら、すぐに先ほどのサーボモータオンと同じ操作を行い、サーボモータをオフにしてください(サーボモータのオフは、ゲームパッドの場合はサーボモータがオンのときにSELECTボタンを押しながらSTARTボタンを押し、ProBoの場合はスイッチ「SW4」をAに合わせて下さい)。

また、マップを切り替える場合は、ゲームパッドの場合はSELECTボタンを押しながら○△□×のどれかひとつのボタンを押し、ProBoの場合はSW1をA,B,Cのどれかに合わせて下さい。
ただし、コントローラで使用しないマップを選択した場合、マップは切り替わりません。

操作方法説明

ゲームパッドで操作していると、時々パッドが振るえる場合があります。
これは、ロボットの電源が残り少なくなっていることを表します。

この状態でロボットに激しい動きをさせると、ロボットの電力が不足してCPUボードが再起動する場合があります。
CPUボードが再起動するとき、一瞬でロボットのサーボモータがオフになり、転倒するなどの事故が発生する場合があります。
ロボットの電源が少なくなったら、電池を充電したり新しい電池に変えるなど、電力を補充してください。

あとがき

今回は楽にかけると思いましたが、意外と苦戦しました。

ところで、今回説明しなかった機能に「アナログ入力」と「キャンセル」の二つがあります。「アナログ入力」は、ロボットに接続したセンサの値に応じて自動的にモーションを再生するための設定、「キャンセル」は、現在再生中のモーションを強制的に中断して次のモーションを再生する機能です。

これらはいずれ解説しますが、「今すぐ知りたい!」という方は、質問掲示板に書き込んでください。

次回予告

さて、次回は操作マップと似て異なる機能、「オートデモ」について説明したいと思います。

ROBO-ONEの予選などでは、ロボットをコントローラなどで操作せず、ロボット単独で様々な行動をさせています。
このように、あらかじめ決められたモーションを、ロボット単独で自動的に再生させる機能があります。

オートデモは、操作マップと同じくCPUボードのモード切替スイッチに割り当てられます。
ということは、割り当て方やデータの書き込み方は操作マップと似ているということです。

では次回をお楽しみに。


前のページ
第5回 モーション作成 ループ構造について
コンテンツのトップ 次のページ
第7回 オートデモを作成する


検索
Loading
メインメニュー