HeartToHeart4講座(4-4) サーボのストレッチを調整する

Posted on 2020.06.24 in

 

今回の記事は、ロボットの関節に使用しているサーボモータの特性(パラメータ)をモーション内で変更する方法を解説します。

 

【関連記事】

  第一章~第三章については下記のページからご参照ください。

  『HeartToHeart4講座 目次』

  第四章

   HeartToHeart4講座(4-1) センサによるモーション分岐機能

   HeartToHeart4講座(4-2) ミキシング機能を利用した姿勢補正

   HeartToHeart4講座(4-3) ボタンによるモーション分岐機能

 

■ServoParamについて

「ServoParam」コントロールは、サーボの「スピード」と「ストレッチ」パラメータを変更する機能です。変更するサーボを個別に指定し、設定できます。

「スピード」は、名称通りサーボの動作速度です。設定値が大きくなるほど速く動くことができます。ただし、KRSサーボの「スピード」パラメータは、モータの出力を変更していますので、遅くするとトルクも低くなります。ゆっくりとした動作を指定したい場合は、Posコントロールの「フレーム数」を変更して調整することをお勧めします。

「ストレッチ」は、サーボの出力軸の保持力です。設定値が大きくなるほど保持力が強くなります。また、小さくなるほど弱くなりますが、程よい数値に設定しておくと人間の関節のように柔らかい状態に設定できます。歩行時など足裏と地面が設置したときに衝撃がありますが、関節を柔らかくしておけば、ショックを吸収してバランスを崩しにくい状態を保つことができます。

また、ストレッチが強いまま動かすと、動作がカクカクしがちですが、ストレッチを柔らかくしておくことで滑らかな動作ができます。きれいなモーションを作成するために非常に便利な機能です。

 

■使用方法

第三章で作成した「手を振る」モーションにServoParamを追加し、ストレッチを変更したときの動作を確認してみましょう。

 

1)プロジェクトを展開し、「手を振る」モーションを開きます。モーションは、「ファイル」メニュー→「開く」→「モーション」から開くことができます。

 

2)上書きしないようにモーション名を変更します。タブで右クリックし「名前を変更」を選択してください。例では「手を振る(ストレッチ)」としました。

 

3)ツールボックスウィンドウから「ServoParam」を一つドラックアンドドロップします。

 

4)モーション内でストレッチを変更した場合、モーションが終了してもパラメータは元に戻りません。モーションの最後で標準的なストレッチパラメータに戻す必要があります。標準パラメータをコピペするために、スタートアップモーションを開きます。KXR-L2の場合は「XL2_291_ホームポジション.xml」です。

 

5)開いたモーションの「ホームストレッチ」をコピーします。「ホームストレッチ」は、ServoParamの名称を変更したものです。「ホームストレッチ」というコントロールはありません。

 

6)「手を振る」モーションに戻り、モーションの最後にコピーした「ホームストレッチ」を貼り付けます。

 

7)「接続」ボタンをONにして、以下のように配線します。

 

8)このモーションは、「ServoParam」からスタートします。「フラッグ」ボタンをONにして、追加した「ServoParam」をクリックしフラッグを表示させます。

 

9)「ServoParam」をダブルクリックして開きます。今回は、ストレッチを変更しますので、「パラメータ選択」から「Stretch」を選択します。

 

10)パラメータを変更したいサーボを選択します。サーボの名称辺りをクリックするとブロックが青くなります。この状態が選択された状態です。上半身のサーボを全て選択してください。

 

11)ストレッチを強くしてみます。選択した全てのサーボを「127」にしてください。設定できたらOKボタンで閉じます。

 

12)準備が完了しました。PCとロボットが通信できるように準備し、ロボットの電源をONにしてください。

 

13)モーション編集ウィンドウの「再生」ボタンを押してください。

ストレッチが高いため、カクカクとした動きになったと思います。

 

14)今度はストレッチを弱くしてみます。選択した全てのパラメータを「10」にしてください。設定ができたらOKボタンで閉じます。「再生」ボタンで再生してみましょう。

ストレッチを弱くしましたので、柔らかい動作になっと思います。

ただし、ストレッチ「10」は低めの設定ですのでトルクが弱い感じになります。今回は、状態を確認するために極端な設定値にしました。実際に使用する場合は、モーションを再生しながら適正な値を設定してください。

変更の必要がなければ標準のパラメータのまま使用してください。動作を柔らかくしたいときや、動作中に関節が振動する、踏ん張りが弱い、などの症状を改善するためにストレッチ調整は有効です。

 

■使用例

サンプルモーションのServoParamでは、どのような設定値になっているかご紹介します。

 

・スタートアップモーションの場合

「スタートアップモーション」は、ロボットの電源がONになった時に最初に自動で再生されるモーションです。スタートアップモーション内にもServoParamがあります。スタートアップモーション内でServoParamを使用することで、基準のストレッチになります。

画像の「ホームストレッチ」は「ServoParam」の名称を変更したものです。開いてみると、ほぼ全身のサーボが「65」になっています。ストレッチのパラメータは127が最大ですので、ちょうど真ん中あたりに設定されています。

肩のサーボのみ「20」になっています。二足歩行ロボットは、転倒すると肩から倒れてしまう場合がありますが、予めストレッチを柔らかくしておくことによりサーボを壊れにくくする効果があります。

 

・歩行モーション

下半身のサーボが「60」になっています。若干ですがストレッチを柔らかくすることで、衝撃を吸収し、安定した歩行ができるようになります。ストレッチを下げ過ぎると、トルクが落ちて転びやすくなってしまいますのでご注意ください。

上半身は選択されていませんので、ストレッチの変更はありません。

 

他にも多数のサンプルモーションがありますので、確認してみてください。ストレッチを使いこなせるようになると、自作したモーションでロボットがきれいに安定して動くようになります。また、ダイナミックなモーションを作成するときなど、衝撃の吸収や踏ん張りなどその個所に合わせて効果を発揮するよう調整してください。

以上でServoParamの解説は終わりです。

 

次の記事

  HeartToHeart4講座(4-5) リンク機能を使いこなす

 

HeartToHeart4の詳細をみる KHR-3HV Ver.3 リフェバッテリー付きセットの詳細をみる RCB-4HVボードのみの詳細をみる RCB-4miniの詳細をみる KHR-3HV Ver.2 リフェバッテリー付きセットの詳細をみる KXR-L2 ヒューマノイド型 Ver.2の詳細をみる KXR-L4T-R カメ型・ローバー型 Ver.2(アカデミックパック)の詳細をみる KXR-A5 アーム型 Ver.2の詳細をみる KXR アドバンスセットA Ver.2の詳細をみる KXR アドバンスセットB Ver.2の詳細をみる