目次
はじめに
以前、最適制御の手法として有名な
線形二次レギュレータ(LQR)の概要を説明しましたが、
先日、中国の検索エンジン会社バイドゥが公開した
自動運転ソフトウェアApolloにおいて、
このLQRをステアリング制御に使用していました。
Baidu自動運転ソフトApolloを軽く読んでみたけど、今のところローカリはRTKGPS+IMU、制御は進行方向はPID、ステアリングは逐次LQRだった:An open autonomous driving platform https://t.co/1EB7VSxrsQ
— Atsushi Sakai (@Atsushi_twi) 2017年7月5日
そこで今回、このLQRを使ったステアリング型ロボットの
経路追従の技術概要と
簡単なPythonサンプルコードを紹介したいと思います。
LQRを使ったステアリング制御
LQRの基礎的な部分に関しては、
下記の記事を参照ください。
前述のApolloのコードでは、
車両の横方向のモデルとして
Dynamicモデルを使用していましたが、
今回のシミュレーションでは、
線形のKinematicモデルを使います。
車両モデルの詳細については下記を参照ください。
LQRを使ったステアリング制御Pythonサンプルコード
下記のGitHubリポジトリに
LQRを使ったステアリング制御の
Pythonサンプルコードを公開しました。
上記のシミュレーションでは、
アクセルブレーキ制御はPID
ステアリング制御はLQRを使っています。
また事前のコース生成には3次スプライン
シミュレーションのgif動画作成には、
下記の記事の手法を使用しました。
下記がシミュレーション動画です。
![]()
綺麗にトラッキングしているのがわかります。
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。
