SIGGRAPHのLocomotion Controller関係を調べる

モチベーションは「anlfieの運動学習を洗練させたい」だ。そのために強化学習や最適化手法等を勉強してきたけど、解決できる方法が頭から出てこない。こういったときは問題設定の分野での手法を調べるのが一つの方法。ということで調査することにした。

調査

学部時代の助教から「人間の精緻なモデリングをしたうえで、最大走行速度を求めた研究があった」と聞いていたので、human runnning optimization motion等で調べてみる。
みつけた論文のrelated researchを調べてみるとhttp://www.cs.ubc.ca/~van/papers/Simbicon.htmが特筆すべき研究だったとあったのでこれを中心に調べていく。

そのHPのディレクトリを遡るとこの人の研究一覧MvdP Projects & Publicationsを見つけた。

今回の目的とは違うけどどういうアルゴリズムなのか興味があったから一つ面白そうな論文を選んで読んでみる。

Locomotion Skills for Simulated Quadrupedsのアルゴリズムを知る

http://www.cs.ubc.ca/~van/papers/2011-TOG-quadruped/paper.pdf
まずは、このconference proceedings.

各シミュレーションステップでは

  • Jacobian transpose control
  • proportional-derivative(PD) controllers

の2つの情報からトルクを計算している。

ここでPID制御の復習。PI制御は聞くけど、PD制御はあまり耳にしない(自分だけ?)
PD制御だと誤差項の変化をみるわけだから、外乱等にロバストな制御を目指しているのだろうか。

コントローラーの詳細

  • Gait graphs
    • 歩行というのはサイクリックな離散状態を遷移していくもとのして扱い、それを巡回有向グラフとして表現している。
  • Virtual Forces
    • トルク計算に利用する情報の2つのうちの1つ。 Jacobian transposeで計算される。
  • Joint Control
    • トルク計算に利用する情報の2つのうちの1つ。PD controllerで生成される。
  • などなど
不明点
  • Virtual forcesは何?でヤコビ行列で求めるってことは目的位置があって逆運動学として各関節トルクを求めている?
  • JointControlは目的位置があるからPD制御で求める、と。
  • じゃこの2つのトルクを求めるときに目標座標はどうやって与えられるのか > モーションキャプチャーの座標?

Generalized Biped Walking Controlを読む

ソースコードが付いているのと、2つの論文を並行して読むことで一つの問題にフォーカスしてしまう癖を防ぐ。
http://www.cs.ubc.ca/~van/papers/2010-TOG-gbwc/paper.pdf

概要
  • Bodyのサイズ等を変化させてもパラメタチューニングの必要がない(身体のグラフ構造はfix)

Source Codeを読んでみる

論文読んでも、いざ自分で実装しようと思っても手が動かない。ソースを読んでみる。


と、ここで力尽きた。