KHR-3HVの腕がブルブルと震えてしまいます。

Posted on 2013.11.09 in

 

【質問内容】

KHR-3HVユーザーです。
最近、歩行モーションなどを再生し立ち止まったあと腕がブルブルと震えてしまうようになりました。これを直す方法はありますか?


【回答】

腕がブルブルと震えてしまうのは「ハンチング」という現象です。これは使用してしばらく経過したサーボによく見られるのですが、サーボの動作原理から発生するもので、使用する場所によって発生する可能性があります。
サーボは、受け取った信号に対しての位置に出力軸を保持(固定)しようとします。
これはサーボの信号を変化させなくても、現在の位置を保持しようとするため常に働いています。
(直立状態でジーッと音が聞こえるのはこのためです。)
サーボに負荷が加わった場合でも、サーボは絶えず本来の位置に戻そうとするため、出力時にぶら下がる質量が大きい場合には、少し動かそうとしても、動かした際の慣性が大きくなるために、目的の位置を行き過ぎてしまいます。
さらに逆方向に戻そうとしてさらに逆方向の慣性によりまた行き過ぎてしまう・・・といった繰り返しがハンチングです。
これらは腕など、サーボに負荷があまりかかっていない部分に起こりやすくなります。

対策としては、静止状態中ではストレッチを下げてあげることが有効です。
※ストレッチを下げると、次にストレッチを変更する命令が入るまでそのストレッチ値を維持します。

腕のストレッチを高くしたいモーションがあるときにはモーション内でストレッチ値を上げる命令を送ります。
この設定したストレッチは電源が切られるまで維持されます。電源投入時にはサーボ単独の設定値が呼び出されます。
それを設定するにはシリアルマネージャーと使ってサーボひとつひとつに設定するが必要がありますが、スタートアップモーションにストレッチを設定するコマンドを入れておくとストレッチの変更が一括で出来るので便利です。

例として、HeartToHeart4 Hello_KHR3(V2.2)プロジェクトを使って説明します。
このプロジェクト内のモーション「HLO032RC_標準歩行B(前進)無線対応.xml」を開きます。

motiondata

 

歩行モーションの最後に配置されている「ServoPram」コマンドがストレッチを変更しているところです。初期状態の場合だと、ストレッチ値が60になっているので、これを腕のサーボのみ30に下げモーションを書込みます。

 

stretch30

 

このモーションを再生した際に、腕のストレッチが弱めに設定された状態でモーションを終了します。このように、モーションの初めにそのモーションに必要なストレッチ値、最後に腕を弱めにしたストレッチ値を設定しておくといいでしょう。どうぞお試しください。

 

KHR-3HV Ver.2 リフェバッテリー付きセットの詳細をみる KHR-3HV Ver.2の詳細をみる