shigeyukioba / matchernet

Apache License 2.0
1 stars 1 forks source link

CarでiLQGを動かす #42

Closed miyosuda closed 4 years ago

miyosuda commented 4 years ago

目的

iLQG(iLQR)でCarを動かす

提案内容

矩形領域内に置いた赤黒の障害物を避けたり触ったりするように車を制御する

タスク

miyosuda commented 4 years ago

黒い丸に近づくと大、赤い丸に近くと小になるようなコストを定義してみて、動かしてみたところ、収束ままだしていないのですが、方向性的にはあっているように見えます。

car_ilqg0

コスト定義は今、仮にこの様な形になっています。

https://github.com/shigeyukioba/matchernet/blob/4a77ebc3ef28eb26298006be474ad1c07aadf8a7/demo/car_control/car.py#L189-L205

コスト定義のうち

が必要なのですが、終端コストの方をどのように定義すべきかがまだちょっとよくわかっていないです。

miyosuda commented 4 years ago

障害物を複数置いてみた時の軌道はこんな感じになりました。

car_ilqg0

horizon T=140の設定で、最大イテレーション数=100にしてみてまだイテレーションは収束はしていないのですが、複数の赤い点を通るような挙動にはなってくれています。

miyosuda commented 4 years ago

Horizon=50でiLQRを計算し、最初の10stepを利用して制御というのを20回繰り返した結果になります(合計200stepのトラジェクトリ) 1回のiLQRの最大イテレーション数は10回となっています。

car_ilqg0

receding horizonでもうまくいっているみたいです。