用語集 · ロボティクスと制御
位相変数
別名:Phase variable、phase、motion clock、punch clock、clock、time scaling、位相、モーションクロック、クロック、時間スケーリング
動作のどこまで進んだかを、始まりの0から終わりの1で示す時計。動きを速くも遅くも再生できます。
記録またはアニメーションで作った動きは、時間に沿ったポーズのリストです。それに従うには、制御器は自分が動作のどこにいるかを知る必要があります。位相変数 がその答えです。始まりで0、終わりで1になります。目指すポーズは、実時間ではなく位相から引きます。
位相はふつう、一定の速さで進みます。
ここで は動作の通常の長さ、 は制御のタイムステップ、 はレートです。 では動作は通常の速さで再生されます。 では、同じポーズを通って2倍の速さで再生されます。
レートを決めるのは誰か
最も単純な設定では、レートは固定で、制御器は参照モーションについていかなければなりません。すると参照のタイミングが越えられない上限になります。参照をうまく追う方策(ポリシー)は、決して参照より速くなれません。
別のやり方は、レートをもう1つの行動として方策に選ばせることです。すると参照は動作の形、つまりポーズの順序を決めますが、そのタイミングは決めません。脚式ロボットの制御器も、同じ考え方で歩容を速めたり遅くしたりしています。
これには落とし穴が1つあります。報酬が毎ステップ支払われるなら、遅い動作ほど多くの報酬を集められます。自分の時計を制御できる方策は、遅くすることでより多く稼げてしまうのです。対策は、各ステップの支払いにレートを掛けることです。そうすれば、動作がどの速さでも合計で稼げる量は同じになります。
このプロジェクトでは
構えのリズムには位相があり、各パンチにもあります。10月18日のスピードの取り組みまでは、各パンチの時計はアニメーション本来のペースで進んでいました。それ以降は方策がそれを決め、そのペースの1倍から2倍の範囲になります。最初のバージョンでは半分の速さも許していたため、方策はすべてのパンチを遅くしました(左フックは 0.52 秒から 0.92 秒に)。ステップごとのスタイルの支払いが、速さのボーナスより価値があったからです。時計を速める方向だけに制限し、ステップごとの支払いにレートを掛けると、フックは 0.48–0.52 秒ではなく 0.36 秒で目標に届くようになりました。速いパンチへ を参照してください。