複数のサーボモータの協調運動制御を実現するモジュールです。あらじめ設定した一連の動作(シーケンス)に従い個々のサーボモータを動かします。
◀ この記事の前に: Motion interpreter( コード )
▶ この記事の次に: Motion sequencer( 操作説明 )
目 的
サーボモータのあらじめ設定した一連の動作を「シーケンス」と呼びます。Motion sequencerは、シーケンスに基づき時間ごとに各サーボモータの操作を順番に動かします。
同じシーケンスを繰り返し実行することや、複数のシーケンスを連続して実行することもできます。
Motion sequencerは、サーボモータの操作をシーケンスに基づき行います。シーケンスの開始(実行)は、このモジュールの上位処理である Motion interpreterで指示したり、他の処理からの指示で行います。個々のサーボモータの制御は、下位の Motor Conttrollerで行います。
機 能
Motion sequencerは、以下の機能を持ちます。
- 個々のサーボモータを操作する
- 時間に合わせてシーケンスに記載された順序でサーボモータを操作する
- シーケンスを組み合わせて実行する
シーケンスデータでサーボモータを操作できるため、協調運動制御が自律的に行えます。
例) 二足歩行を行います。
例) ポーズを作ることができます。
基底速度
シーケンスの進行の基準となる速度です。個々のサーボモータを時間の進行とともに制御することがシーケンスですが、その時間の進行を変えることができます。時間の進行を早くすると全体の動作が早くなり、時間の進行を遅くすると全体の動作が遅くなります。
この例は3つのコマンドで構成するシーケンスデータです。最初は C1を実行します。実行後にその後 C1で指定しているインターバル W1 後に C2を実行します。次に C2の実行後にその後 C2で指定している W2 後に C3を実行します。このコマンド実行の順序 C1, C2, C3 と コマンドの実行後のインターバル W1, W2 の時間的な比率は変わりません。時間の長さが変わってもこの順序と比率は変わりません。
歩く場合や投げる場合も同様で、各関節を曲げる順番やそのタイミングは早くても遅くても変わりません。早く歩いたり速く投げる場合はそれを短い時間で行います。ゆっくり歩いたりゆっくり投げる場合はそれを長めの時間で行います。音楽の音符とテンポの関係に似ています。シーケンスデータの W1, W2 が音符の種類で、基底時間がテンポに対応します。
このしくみにより同じ協調運動でも同じシーケンスデータで基底速度を変化させることにより、動作全体の速度を変化することができます。シーケンスデータの中には基底速度を変えるシーケンス制御コマンドがありますので、動的に基底速度を変えることもできます。
Technical Considerations 動作時間に関して( 厳密には・・・ )
基底速度は動作時間とも関係します。この時間はインターバルだけに適用されるのではなく、サーボモータの動作時間にも適用されます。そのため、同じ目標値(角度)でも時間が変化しますので結果として速度(角速度)が変わります。
上図では、W1, W2は C1, C2の動作後として表していますが、実際はサーボモータの動作開始を下位関数に伝えた時点からのインターバル(待ち時間)になります。サーボモータの動作開始を伝えた(指示した)時点からでも、前記のとおりサーボモータの時間にも適用されますので実質的にこの図に近い動作になります。( インターバルの開始タイミングが厳密には異なります。 )
ポジション( 角度 )
ポジションとはサーボモータそのものの角度でなく、個々のサーボモータの取付位置や方向を考慮したロボットの部位としての角度です。サーボモータそのものの角度と分けるために「ポジション」と呼びます。単位は「度」になります。小数点以下の設定はできません。
サーボモータは部位ごとにサーボモータそのものの角度や回転方向、可動範囲を Servomotor driverで定めています。
詳細はこちらをご覧ください。
参考情報
参考になる情報は以下のとおりです。
このホームページ内
- Motion Interpreter( 概要 ): サーボモータ制御の最上位、Motion Interrupter の概要です。
- Motion Interpreter( 操作説明 ): アプリケーションからの操作方法です。( API )
- Motion Interpreter( コード ): コードの詳細を説明します。
- Motion sequencer( 概要 ): サーボモータの協調運動制御の概要です。
- Motion sequencer( 操作説明 ): シーケンスの開始・停止等の操作方法です。( API )
- Motion sequencer( コード ): コードの詳細を説明します。
- シーケンスデータ: シーケンスデータの仕様と作成方法です。
- Servomotor Driver( 概要 ): サーボモータそのものの制御です。( API )
- Servomotor Driver( 操作説明 ): 個々のサーボモータを制御する方法です。
- Servomotor Driver( コード ): コードの詳細を説明します。
- サーボモータの制御( コード詳説 ): バックグラウンド処理の分散化の実現方法です。
- サーボモータ: サーボモータの回路です。ハードウエアの説明です。