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

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

 

第10回 サーボモータの位置補正と基準ポーズ

さて、今回の内容は、実はとっても基本的で大事だけど。理解しようと思うと難しい「サーボモータの位置補正」と「基準ポーズ」についてです。

サーボモータの位置補正は「Robovie-iソフトウェア簡単操作ガイド.pdf」でも出てきましたね。しかし、このときは位置補正を行う意味などを詳しく説明しませんでした。
これは、サーボモータの位置補正は非常に概念が難しく、一度モーションを作成したりしないと理解しづらいため、あえて説明を省いたのです。

この連載では、これまでモーション作成に関する説明を行い、皆さんも最初よりはモーションの構造などについて理解できたかと思います。
これまでに作成したモーションのことなどを思い返しながら読み進めてください。

サーボモータは一個一個違う

ロボットに使われているサーボモータには、例えまったく同じ製品であっても実は一つ一つに微妙な違いがあります。
サーボモータはCPUボードから信号を受け取ってその通りの角度に動きますが、実はこの角度は同じ機種のサーボモータでも微妙に角度に差が出るのです。
これは現在のサーボモータの仕様上どうしても発生するものであり、更にロボットを動かしているとこのズレが変わっていきます。

これを野放しにしていると、「ポーズスライダで左右の手足を同じ角度にあわせたけど、ずれていて一緒左右対称の姿勢にならない」というような問題が起きますよね?

このズレを防ぐため、あらかじめ「どのサーボモータがどれくらいずれているか」をCPUボードに覚えこませて、サーボモータごとにちょっとだけすらした信号を与え、ポーズスライダの角度値に対して全てのサーボモータがぴったり同じ角度に合うようにさせるのが「サーボモータの位置補正」です。

位置補正前後の比較画像
上の二つのポーズは、ポーズスライダの値は同じ+0.0degである
左側はサーボモータの位置補正を行わず、全てのサーボモータにまったく同じ信号を送っている状態。
右側はサーボモータの位置補正を行い、各サーボモータに同じポーズスライダの値を送った場合に同じ角度になるように、個別に与えている信号を少しずらしている。

さて、ではなぜこのように面倒くさい調整をしなければならないのでしょうか?
いっそのこと、ポーズスライダの値が左右でずれても良いので、ロボットが見た目で一緒になるようにモーションを作ればよいのではないでしょうか?
しかし、実はサーボモータの位置補正を行わず全てモーションでズレを直すという方法は、大きな問題をはらんでいるのです。

先ほどさらっと書きましたが、サーボモータのズレは、ロボットを動かしていると更に変わっていきます。ということは、例えモーションを作成した時点でサーボモータのズレを合わせていたとしても、数日後にそのズレが変わってしまったら、もう一度正しく動かすためにモーションファイルを作り直さなければならなくなります。

いや、作り直すほどではなく、モーションに含まれる各ポーズをもう一度調整しなおせば何とかなるでしょう。
しかし、そのモーションのポーズが50個も100個もあったら?また、作り直すモーションが100種類も200種類もあったら....?
考えただけでも寒気がしますね。

一方、サーボモータの位置補正を行なった場合はどうでしょう?
先ほどと同じように時間の経過でサーボモータのズレが発生した場合、もう一度サーボモータの位置補正をやり直せば、モーションファイルを何一ついじることなく前と同じ動きに戻すことができます。

つまり、サーボモータごとのズレをあらかじめ「位置補正」という別の手段で埋め合わせし、モーションファイルには純粋にポーズの角度だけ記録することで、どんなにサーボモータがずれようと、位置補正をやり直すだけでモーションファイルを直す必要はありません。
ということは、まったく同じ機種のロボットが2体あった場合、それぞれのロボットのそれぞれのサーボモータでズレは異なりますが、位置補正さえしっかりしていれば、同じモーションファイルで動かすことができるのです。

位置補正はロボットのメンテナンス作業だ

先ほどの説明でサーボモータの位置補正の重要性はわかっていただけたかと思います。では、どのような場面で位置補正を行う必要があるか考えてみましょう。

  • ロボットを初めて動かすとき
  • 前に位置補正を行ったときから時間がたち、以前のモーションが正しく再生できなくなったとき
  • ロボットのサーボモータを取り替えたとき

つまり、ロボットを修理したり、サーボモータが疲労したときなどに、メンテナンスとして行います。
機械には定期的に油を差さないとちゃんと動かないように、ロボットも定期的にサーボモータの位置補正を行わないとちゃんと動かなくなります。
面倒くさがらず、ズレを感じたら定期的に位置補正作業をしましょう。

ちなみに、RobovieMakerでサーボモータの位置補正を行う手順については大丈夫ですね?
念のため説明すると、「ポーズスライダで全身のサーボモータを正しい位置に合わせた後、ツールバーの、サーボ位置補正ボタンボタン、もしくはメニューの「プロジェクトの設定」→「サーボ位置補正」をクリックする」です。
また、位置補正を行った後は、ツールバーの、書き込みボタンボタン、もしくはメニューの「プロジェクトの設定」→「モードスイッチ/音声の設定・書き込み」をクリックして、「モードスイッチ設定のみ上書き」→「データ書き込み」を行うことを忘れてはいけません。

なお、サーボモータのズレが再発するまでの時間は、サーボモータにかけている負担に比例します。
上半身に比べ下半身のサーボモータのほうがずれるスピードが速く、また、激しい動きをさせるほどずれるスピードが速くなります。

ズレを判断する基準となる「基準ポーズ」

基本的なこととして、サーボモータの位置補正のためには、サーボモータがどのくらいずれているかを調べる必要があります。
では、それはどうやって調べるのでしょうか?
この鍵を握るのが「基準ポーズ」です。

ここで「Robovie-iソフトウェア簡単操作ガイド.pdf」の「6.サーボモータの位置を補正する」の1ページ目を見てください。
このページでは、「サーボモータの正しい位置」として、Robovie-iが「気を付け」をした状態の写真が掲載されています。

Robovie-iユーザの皆さんは、最初にRobovieMakerからサーボモータを動かして、ロボットがこのポーズになるようにしたと思います。 実は、これがRobovie-iにとっての基準ポーズです。
サーボモータの位置補正は、この基準ポーズを中心にして、写真を見ながらRobovieMakerであわせた角度とどのくらいずれているかを確認してあわせられます。

ちなみに、ポーズスライダにおける基準ポーズのツマミの位置は、「基準点」として下図のように小さい四角で表示されます。
サーボモータの位置補正の際に、この基準点と実際にロボットを基準ポーズに合わせた場合のポーズスライダのズレを比べて行われるというわけですね。

基準点の説明
サーボモータの位置補正は、基準点と現在のツマミのズレから作成される

さて、ここでRobovieMakerで適当にポーズスライダの値を操作してから、ツールバーの、基準ポーズボタンボタン、もしくはメニューの「ポーズ」→「基準ポーズの選択」で一番上に表示される項目をクリックしてください。
すると、全てのポーズスライダのツマミが基準点の位置にあわせられ、ロボットが基準ポーズになると思います。

この操作、基準ポーズボタンボタン、基準ポーズ....どこかで見覚えがありますね。そう、「モーション作成 基本編(後編)」でこれと同じことをやっています。
つまり、この基準ポーズが全てのモーションを作る際の元となるポーズなのです。

基準ポーズは、当然ながらロボットの機種ごとにさまざまですが、Robovie-iの基準ポーズのように「全てのモーションの元となるポーズ」であるため、やはり直立姿勢などの単純且つ安定したポーズになる傾向にあります。
ちなみにRobovieMakerでは、最初にロボットプロジェクトを作成するときに選択したロボットの機種に応じて基準ポーズも適切なものに設定されます。
しかし、オリジナルのロボットを作成しようと思った場合は、基準ポーズも自分で考えて設定しなければなりません。
また、あらかじめ設定された基準ポーズを変更したり、複数の基準ポーズを使い分けたりすることもできます。
これらについては、またの機会に説明したいと思います。

次回予告

さて、これまでは基礎編として、RobovieMakerの基本的な扱いを中心に説明していきました。
次回からは中級編として、RobovieMakerの便利な機能、裏ワザを中心にしばらく進めていきたいと思います。


前のページ
第9回 ロボットから音を鳴らす
コンテンツのトップ 次のページ
第11回 ポーズとモーションのコピー&ペースト


検索
Loading
メインメニュー