shigeyukioba / matchernet

Apache License 2.0
1 stars 1 forks source link

PendulumでiLQGを動かす #28

Closed miyosuda closed 4 years ago

miyosuda commented 4 years ago

目的

iLQGの理解と動作検証の為に、Pendulumを動かしてみる

提案内容

一番簡単そうな制御タスクとしてPendulumをiLQGで動かしてみる。 ダイナミクスとコスト関数は、OpenAI GymのPendulumタスクのコードを利用して用意する。

shigeyukioba commented 4 years ago

こういう場合に何が起こるのか見てみたいです。 iLQG が Bundle として振る舞うときに大事な要素になります。

miyosuda commented 4 years ago

iLQGでターゲット軌道と制御シーケンスを求めた後に、初期位置に対する分散と毎ステップのシステムノイズを入れてみて制御するのをまず試してみました。

https://github.com/shigeyukioba/matchernet/blob/de426f6ee87d8057fdf2055f5a177427ad433a22/demo/pendulum_control/main.py#L48-L58

結果はこんな感じになります。

pendulum_ilqg_real0

(システムノイズのくわえ方などでおかしいところありましたらご指摘ください。)

観測ノイズを入れた観測値からEKFで推定した状態を用いて制御をしてみるのも追って試してみます。

iLQGに関して、Matlabのコード等を機械的にpython化していっている部分もあり、まだiLQGに関する理解が完全ではない(iLQRとiLQGがどう違うのかわかっていない等)ので、お聞きしたいところちょっとまとめていってみます。

@shigeyukioba