用語集 · ロボティクスと制御

位置サーボ

別名:Position servo、PD controller、PD control、servo、position actuator、stiffness、damping、PD 制御、サーボ、剛性、減衰、ダンピング

関節を目標の角度に向けて押すモーターのコントローラーです。力は誤差とともに、上限まで大きくなります。

サーボは、フィードバックを持つモーターです。位置サーボは目標角度 q∗q^* を与えられ、そこに向かうようトルクをかけます。ふつうのルールは PD 制御(比例・微分)です。

τ=kp (q∗−q)−kd q˙\tau = k_p\,(q^* - q) - k_d\,\dot{q}
  • P の項はばねのように働きます。関節が目標から遠いほど強く引っ張ります。kpk_p が剛性です。
  • D の項はダンパーのように働きます。動きに抵抗するので、関節は行き過ぎたり揺れたりしません。kdk_d が減衰です。

実際のモーターには力の限界があるので、トルクには上限があります。

τ=clip⁡ ⁣(kp (q∗−q)−kd q˙,  −τmax⁡,  τmax⁡)\tau = \operatorname{clip}\!\big(k_p\,(q^* - q) - k_d\,\dot{q},\; -\tau_{\max},\; \tau_{\max}\big)

強化学習の方策がサーボを使う理由

方策(ポリシー)が生のトルクを出力することもできますが、そうすると重力に逆らってすべての関節を静止させることを、毎秒50回学ばなければなりません。位置サーボなら、ポーズを保つのが既定の状態になり、方策は関節がどこにあるべきかを言うだけで済みます。学習はずっと速く、動きも滑らかになります。シミュレーションで学習した脚式ロボットの方策のほとんどは、実機でも、サーボの目標を出力します。

サーボではないもの

サーボは筋肉ではありません。人は関節を動かさずに力を込めて硬くできます。ゲインが固定されたサーボにはそれができず、剛性 kpk_p は変わりません。だから私たちの記事では「筋活性がない」ことを制約として挙げています。

このプロジェクトでは

両方の身体のすべてのモーターは、トルクに上限のある位置サーボです。方策の行動は参照ポーズに加える補正で、その合計がサーボの目標 q∗q^* になります(残差方策を参照)。

減衰がいちばん効いてくるのは速い動きです。10月18日のスピードの作業では、速く伸ばすときに肘のダンパーがトルクの上限をまるごと使ってしまい、ストレートパンチの間、方策がまっすぐな腕を求めても、腕は37〜44°より先に伸びませんでした。コーチは、より強く、減衰の少ない肘を認めました。トルクの上限を 90 N m から 135 N m に、減衰を1ラジアンあたり 36 N m s から 13.5 N m s にし、剛性はそのままにしました。すると肘は16〜17°まで伸びるようになりました(速いパンチを参照)。

ブロックの作業では、減衰がハイブロックを上げる速さを制限していました。左肩は53°から129°まで振り上がりますが、振り始めて20 ms で減衰が引く力を打ち消していました。ハイブロックを上げる間だけ減衰を4分の1にすると、左のハイブロックは 0.26 s から 0.12 s になりました(ブロックを参照)。

モーターの代わりに筋肉ででは、サーボがただで与えてくれるものを測るために、サーボを筋肉に取り替えました。行動がゼロのとき、サーボの体はサーボだけで約2 s 立っていますが、筋肉の体は 0.6 s で崩れ落ちます。構えを覚えるのに、筋肉の体はサーボの体の2.1〜5.8倍のステップがかかりました。パンチでは、パンチの参照に従うサーボの目標のおかげで、サーボの体は最初から大まかなパンチが打てましたが、筋肉の体はそれに追いつけませんでした。

関連用語

この用語が出てくる記事

← すべての用語