2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【18日目】OSS連携してみたい(14)!LQRで経路追従(1)

Last updated at Posted at 2023-12-17

この記事は筆者オンリーのAdvent Calendar 202318日目の記事です。

前回までのあらすじ

PythonRoboticsのpure pursuitを動かして(?)みました。

今回やること

PythonRoboticsのLQRの処理について調査してみたいと思います。

LQRの各処理について

PythonRoboticsのpursuitのソースコードはこちらになります。
また、アルゴリズムの概要はこちらで紹介されています。

LQRとは

こちらこちらこちらの記事がわかりやすいと思います。
すみません、私もよくわかっていません。

PythonRoboticsの構成

Stateというクラスがあり、宣言時に現在位置、角速度、速度を初期化しているようです。

update関数があります。
これで現在位置、角速度、速度をアップデートしているようです。

pi_2_pi関数があります。
これで角度(-pi〜+piへ)の補正を行っているようです。

solve_dare関数があります。
これでリカッチ方程式を解いているようです。

dlqr関数があります。
これでLRQのゲインを算出しているようです。

lqr_speed_steering_control関数があります。
この関数で速度、角速度を算出しているようです。

calc_nearest_index関数があります。
この関数でTrajectory内の最も近い位置を算出しているようです。

calc_speed_profile関数があります。
この関数でTrajectoryの各速度を算出しているようです。

まとめ

一気に制御理論が出てきてわけわからなくなりました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?