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

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

 

第14回 年末蔵出し・小技特集

MyノートPCのHDDから異音が!?というわけで、USBの外付けHDDにデータをバックアップしつつ執筆しています。
しかしこの音は心臓に大変よろしく無いですね。HDDの寿命と共に自分の命さえ削られているような音です。

さて今回は年末大掃除、これまでのやり残しを一気に掃いてしまいます。

CPUボードへのデータの書き込みや初期化に失敗したときの復旧

RobovieMakerでは、CPUボードと通信を開始すると、現在のCPUボードからサーボモータの位置補正、拡張機器の設定などの情報を読み込んで、それらを現在のCPUボードの最新の情報としてPCに記録します。
例えば、2台のPCを所有していて、それぞれのPCに同じロボットプロジェクトをコピーしておけば、後はどちらのPCでロボットの調整作業を行っても、そのたびに最新のロボットプロジェクトをもう一方のPCにコピーするような必要はありません。
もっとも、ファイルに保存したモーションはCPUボードから読み取れないので、互いのPCにコピーする必要があります。

それでは、初期化を行う前やデータの書き込み後にリセットを押さず、内部のデータがよくわからない状態のCPUボードをPCに接続してRobovieMakerから通信を開始するとどうなるでしょうか?

RobovieMakerでは、CPUボードから読み込んだデータをフィードバックする前に、まずCPUボードに記録されたロボットの名前を読み込み、現在のロボットプロジェクトと同じものかチェックします。ここで現在のロボットプロジェクトと違う名前のCPUボードが接続されている場合は以下のような警告ダイアログを表示します。

確認ダイアログ
データ内容の不明なCPUボードについては、「キャンセル」をクリックする
「いいえ」をクリックしてCPUボードと通信を開始してはいけない

CPUボードのデータ内容が現在のロボットプロジェクトのものであり、データの書き込みを中断するなどして不安定なデータが書き込まれている状態の場合は、まずダイアログの「キャンセル」をクリックしてください。
次に、ツールバーのCPUボードへの書き込みボタンボタン、もしくはメニューより「プロジェクトの設定」→「モードスイッチ/音声の設定・書き込み」をクリックして書き込みダイアログを表示します。
ダイアログを表示したら、「すべて上書き」にチェックを入れ「書き込みを実行」をクリックします。すると、現在RobovieMaker側にバックアップとして残っているCPUボードの設定がCPUボードへ改めて書き込まれます。
これで、CPUボードが現在のロボットプロジェクトの内容で復旧します。

CPUボードへ書き込みを行うダイアログ
CPUボードと【通信せずに】データを書き込む
「名前が違う」と警告ダイアログが出るが、構わず「はい」をクリックして書き込みを行う

もし、最初のダイアログで間違えて「いいえ」をクリックし、RobovieMakerと通信を開始してしまった場合は、一旦RobovieMakerを終了して立ち上げなおしてください。その上で、もう一度前述の操作を行ってCPUボードの内部のデータを書き直してください。

また、もしCPUボードに書き込まれたデータが別のロボットのものであり、そのロボットプロジェクトを持っている場合は、そのロボットプロジェクトを開いてCPUボードを初期化します。
警告のダイアログで「はい」をクリックし、ロボットプロジェクトを選択するダイアログを開きます。開いたダイアログより、そのロボット用のロボットプロジェクトファイルを選択してください。また、「選択したプロジェクトの設定でCPUボードを初期化する」にチェックを入れて、CPUボードを初期化しなおしてください。

別のロボットプロジェクトを開くダイアログ
CPUボードに対応したロボットプロジェクトのデータを持っている場合は、確認ダイアログで「はい」をクリックする。
すると上図ダイアログを開くので、ここで「既存のロボットプロジェクトを開く」をクリックし、正しいロボットプロジェクトを選択する。
また、CPUボードの中のデータが正しいものである確証が得られない場合は、「選択したプロジェクトの設定でCPUボードを初期化」にチェックを入れてCPUボードを初期化する

ちなみに、現在Robovie-iの公式サポートページで公開されている最新版のRobovieMakerでは、CPUボードを初期化したりデータを書き込んだ後に、CPUボードのリセットスイッチを押さない限り通信が開始できないようになっています。
これで、うっかりリセットボタンを押し忘れたために、CPUボードに残った中途半端なデータをRobovieMakerにフィードバックしてしまう事故がだいぶ防げるようになりました。

最新版のRobovieMaker for VS-RC003をダウンロードする

RobovieMakerのグレードアップ方法については、連載第8回で説明していますね。

ポーズスライダの設定をまとめて変更

前回説明したポーズスライダの設定変更ですが、実は設定ダイアログでは複数のポーズスライダをまとめて設定変更できます。
ダイアログ上部の「設定するポーズスライダ」の項目では、一番上に「(現在選択中のスライダ)」という項目があります。
この項目で各種設定を適用すると、その設定が現在選択されているポーズスライダ全てに反映されます。

(現在選択中のスライダ)のポーズスライダ設定ダイアログ
「(現在選択中のスライダ)」にすると、現在選択中のポーズスライダの設定を一度に変更できる

ダイアログを見たところ、あらゆる項目に何も設定が入っておらず、また色が灰色になっている項目もあるので、一見何も設定でき内容に見えますが、これらにはちゃんと数値を設定できます。
「テキスト設定」「数値設定」「スライダの位置/フラグ設定」など、「左右設定」を除いて設定を変更でき、チェックボックスもクリックすればチェックの状態が切り替わります。
「(現在選択中のスライダ)」の項目では、文字を何も入力していない項目、また、チェックボックスが灰色且つチェックが入っている状態(3STATEチェックボックス)については、適用してもその部分の変更はされません。

(現在選択中のスライダ)のポーズスライダ設定ダイアログ
各項目に何も値を入力しないと、そこは各ポーズスライダの設定がそのまま残る
チェックボックスも一見設定不可能のようだが、クリックすると状態が変わる

鏡像反転、半身コピーがうまくいかない

連載第11回で解説した、ツールバーの左から右へボタン右から左へボタン左右反転ボタンボタンで実行できる左右の半身コピーや鏡像反転の機能は実に便利なものです。
しかし、RobovieMakerをお使いの方の中には、特にオリジナルロボットを作成されている場合に、「左右の半身コピーや鏡像反転を行うとポーズスライダにおかしな数値が入る」という事があるかと思います。

この原因について、これらの機能の仕組みから説明していきます。
RobovieMakerでは、左右設定で対となった軸にポーズスライダの値をコピーする場合、現在のポーズスライダの値を絶対値で換算し、符号を反転して相手のポーズスライダにコピーします。
例えばあるポーズスライダの現在の値が、ポーズスライダの本来の値で+1234だったとすると、鏡像反転や半身コピーで対となるポーズスライダにコピーされる値は-1234になる、というわけです。
わざわざ数値を反転させている理由は、一般的なロボットの多くは、サーボモータの出力軸を左右対称の形で取り付けているためです。つまり、対となる一方の関節のサーボモータが体の内側を向いている場合はもう一方も内側を向き、逆に外側を向いている場合は対となる軸も外側を向いています。
例えばRobovie-iなどの場合、両足のピッチ軸の出力軸が両方とも外に向かっており、鏡像反転した形に取り付けられているので、鏡像反転や左右半身のコピーがうまくいくのです。

Robovie-iの両足ピッチ軸。左右対称の取り付け
Robovie-iの両足のピッチ軸は、サーボモータの取り付けが左右対称である。
そのため、鏡像反転の際に数値の符号を反転すれば、左右で同じポーズになる

一方で、マノイのように左右のサーボモータの取り付けが同じ方向になっているロボットも存在します。
この場合、左右のポーズスライダの値を同じにすることで同じポーズになるため、数値の反転処理が入る鏡像反転や左右の半身コピーを行うと、結果としてまったく違うポーズがコピーされてしまうのです。

そんな場合は、ポーズスライダのプロパティから「符号反転」のフラグを設定します。
左右の対となるポーズスライダで「符号反転」のフラグの設定を変える、つまり、一方のポーズスライダで符号反転を有効にして、もう一方で符号反転を無効にしてください(左右どっちがどっちでも問題ありません)

片方の関節を「符号反転」有効に、もう片方を無効にする
ポーズスライダのプロパティより、対となるポーズスライダの「符号反転」の設定を片方は有効、片方は無効にする

こうすることで、数値を反転せずにそのままの値が対となるポーズスライダにコピーされるようになります。
これで万事うまくいく....はずだったのですが、古いバージョン(Release8以前)のRobovieMakerでは、バグによりこの機能が動作しません。
皆さん、ぜひ最新版のRobovieMakerをインストールしましょう。

最新版のRobovieMaker for VS-RC003をダウンロードする

RobovieMakerのグレードアップ方法については、連載第8回で説明していますね。

ちなみに、これとは逆に「サーボモータの配置は左右対称なのに鏡像反転や半身コピーがおかしくなる」という場合は、対となる軸ポーズスライダの「符号反転」の設定を同じにしてください。

ポーズ挿入ボタンボタンの役割

さて、これまでツールボタンの役割については散々解説してきたはずですが、このポーズ挿入ボタンボタンについては説明をすっかり忘れていました。
ツールバーのボタンは、大体の機能は一言で説明できるのですが、ポーズ挿入ボタンボタンは少し複雑な機能なので、ここでしっかり説明したいと思います。

ポーズ挿入ボタンボタンの役割を一言で表すと「モーション中のあるポーズとあるポーズの中間のポーズを新しく作成する」となります。
論より証拠、実際にポーズ挿入ボタンボタンを使ってみるとしましょう。

まず、000番のモーションから番号どおり最後まで再生されるモーションを読み込んでください。ポーズ挿入ボタンボタンは別にこのようなモーションでなくても使えますが、説明しやすさを考えて一旦このようなモーションとします。
読み込んだら、003,004などの途中のポーズのシグナルをクリックして、ポーズ挿入ボタンボタンをクリックしてください。
すると、先ほどシグナルをクリックしたポーズと、その真下のポーズとの間に、それらのポーズの関節値を平均したようなポーズが新しく挿入されます。
さらに、挿入されたポーズと、シグナルをクリックしたポーズの真下のポーズの遷移時間は、それぞれ後者の遷移時間を1/2したものが入ります。

INSボタンで中間のポーズを挿入
001と002のポーズの間に、新しくポーズが挿入される。
新しく挿入されたポーズは、001のポーズのコピーではなく、挿入箇所の001から002のポーズへ変形する途中のポーズになる。
また、遷移時間は002のポーズの1/2が代入され、挿入前の002のポーズの遷移時間も1/2される
このままモーションを再生すると挿入前とほぼ変わらないが、001と002の間にポーズが追加された分そこのモーションを細かく設定できる

これが「中間のポーズを作成した状態」です。
このままモーションを再生したらどうなるでしょうか?ためしに再生してみましょう。
どうですか?ポーズ挿入ボタンボタンを押す前とほとんど動作に変化はありませんね。
なぜなら、ポーズ挿入ボタンボタンで新しく挿入されたポーズは、挿入箇所の前後のポーズをCPUボードが補間している最中のポーズそのものだからです。
更に、ポーズ挿入ボタンボタンを押したときに、挿入箇所付近の遷移時間が1/2される処理のため、モーション全体の遷移時間は変わりません。

しかし、ポーズ挿入ボタンボタンで確かに新しいポーズを挿入しているため、その部分を校正しているポーズ数が多くなり、より細かいモーションの調整が可能になるのです。
例えば、高速歩行など非常に緻密な調整が必要なモーションの場合、まずは大まかな動作を作り、その中間にINSボタンでポーズを挿入していき、細かい動きを作成していく形となります。

ちなみに、ポーズ削除ボタンボタンを押すと、消したポーズの遷移時間が別のモーションに加算される動作にも、このポーズ挿入ボタンボタンの概念が関わっています。
ポーズ削除ボタンボタンで削除されたポーズの遷移時間が削除されたポーズの真下のポーズに加算されると、結局削除前とモーションを再生したときの動作はほぼ変わりません。
つまり、ポーズ挿入ボタンボタンとまったく逆の構造で、モーションの内容をそのままにポーズ数をより少なくしたということになります。

DELボタンで中間のポーズを削除
ポーズの削除はポーズの挿入と正反対の操作となる。
削除したポーズの遷移時間が削除したポーズの真下のポーズに加算され、全体の遷移時間は変わらない。
そのため、ポーズを挿入した直後に削除を行うと、挿入前の状態に戻る

ポーズエリアとモーションエリアの境界線の位置を動かす

RobovieMakerのウィンドウ内は、だいたい6:4の割合で、ポーズエリアとモーションエリアとで左右に区切られています。
この境界線は、実はマウスで動かすことができます。

境界線の付近にマウスカーソルを動かすと、マウスカーソルが<->という形のアイコンに変わります。この状態でマウスをクリックしドラッグすると、この境界線を動かすことができます。

中心の境界線のドラッグ
中心の境界線はマウスでドラッグできる

また、ポーズエリアやモーションエリアの、スライダが無い場所をダブルクリックすると、モーションエリアを最小化します。
その状態でもう一度ダブルクリックすると、モーションエリアのサイズが元に戻ります。

次回予告

次回は上級編第一回、CPUボードの「変数」の概念について説明したいと思います。
また、余裕があればLED拡張ボード「VS-IX004」についても説明したいと思います。


前のページ
第13回 ポーズスライダの設定を変更する
コンテンツのトップ 次のページ
第15回 CPUボードの変数の概念について


検索
Loading
メインメニュー