ソフトウエア

サーボモータ制御の階層化

人が身体を動かすときに多くの間接を連携して動かします。ロボットも頭や四肢を連携して動かすことが必要です。サーボモータの制御は複数の階層化を行い連携を実現しています。

◀ この記事の前に: サーボモータのリアルタイム制御( タイマ割り込み )
▶ この記事の次に: Motion interpreter( 概要 )

協調運動の必要性

二足歩行を行う場合、少なくても片足2つのサーボモータ、両足で4つのサーボモータを連携して動かす必要があります。ロボットに人間らしい動作をさせるためには、個々のサーボモータを動作させるだけでなく、各サーボモータを連携して動作させる必要があります。この動作を協調運動と言います。

サーボモータの制御はサーボモータの電気的な仕様に基づいた信号制御が必要ですが、それ以外に協調運動を行う制御も必要となります。これらはリアルタイム制御で実現する必要があり、MCUにとっては負荷の大きな処理となります。ロボット本来の動作(アプリケーション)を行わせるときに、この部分を切り離して自動化することが望まれます。

サーボモータ制御の階層化

サーボモータそのものを動かすための最下位層の制御から、アプリケーションと連携して一連の制御を実現する上位層に分けています。サーボモータそのものの制御を自動化することと、一連の制御を自動化することによりアプケーションは細かいサーボモータの制御を気にせずに他の処理を行うことができます。概要は以下のとおりです。

  • Motion Interpreter( モーション・インタプリタ ):
    サーボモータ制御の最上位層です。アプリケーションからの指示によりあらかじめ設定した一連の動きを実行したり、各サーボモータを個別に制御します。アプリケーションからの指示は文字列のため、処理の連携がしやすくなっています。
  • Motion Sequencer( モーション・シーケンサ ):
    あらかじめ設定した一連のうごき(シーケンス)を実行します。協調運動を実現します。シーケンスの時間管理も自動的に行うため、アプリケーションの負担が軽減できます。多くのシーケンスはあらかじめ設定しておきますが、一部のシーケンスは動的に変更(書き込み)することもできます。
  • Servomotor Driver( モータ・コントローラ ):
    サーボモータ制御の最下位層です。サーボモータそのものの制御を行います。サーボモータの制御仕様に合わせた信号の送出以外に、各サーボモータの方向や可動範囲なども制御しています。モータの速度(軸の角速度)や加速度などの制御も行います。
  • Power Saving( 省電力制御 ):
    サーボモータの省電力制御を行います。サーボモータ全体に供給する電源 +5VPの ON / OFFを行うことによりサーボモータに供給する電流を削減します。

制御モジュールの関係

モジュールの関係は以下のとおりです。

協調運動とは、複数の関節や筋肉が連携して滑らかな動きをする運動のことです。
人の関節や筋肉は協調運動しているので、滑らかで正確な動きを実現できています。Qumcum Lab. はヒューマノイドです。前に進むためには二足歩行が必要です。二足歩行には足にある複数のサーボモータを連携して滑らかに動作させる必要があります。そのためサーボモータ制御にも協調運動の考え方が必要になります。

人の協調運動は視覚などの感覚入力と脳の処理、筋肉の動作で実現しています。協調運動は大脳皮質、小脳、基底核、脳幹の各領域が密接に連携していると言われています。小脳は協調性やバランスを維持して動きが目標通りか監視して誤差を修正します。基底核は動作のスムースさを実現しています。
Qumcum Lab. の Motion Interrupter、Motion Sequencer、Servomotor Driver がこの小脳や基底核に近い機能を実現しています。

参考情報

参考になる情報は以下のとおりです。

このホームページ内

他のWebサイト

カテゴリー
最近の記事 おすすめ記事

記事一覧を表示するには、カスタム投稿「ブログ」にて、4つ以上記事を作成してください。

記事一覧を表示するには、カスタム投稿「ブログ」にて、4つ以上記事を作成してください。

TOP