MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

線形二次レギュレータ(LQR)による経路追従制御とPythonサンプルプログラム

目次

はじめに

以前、最適制御の手法として有名な

線形二次レギュレータ(LQR)の概要を説明しましたが、

myenigma.hatenablog.com

 

先日、中国の検索エンジン会社バイドゥが公開した

自動運転ソフトウェアApolloにおいて、

このLQRをステアリング制御に使用していました。

github.com

 

そこで今回、このLQRを使ったステアリング型ロボットの

経路追従の技術概要と

簡単なPythonサンプルコードを紹介したいと思います。

 

LQRを使ったステアリング制御

LQRの基礎的な部分に関しては、

下記の記事を参照ください。

myenigma.hatenablog.com

 

前述のApolloのコードでは、

車両の横方向のモデルとして

Dynamicモデルを使用していましたが、

今回のシミュレーションでは、

線形のKinematicモデルを使います。

車両モデルの詳細については下記を参照ください。

myenigma.hatenablog.com

 

LQRを使ったステアリング制御Pythonサンプルコード

下記のGitHubリポジトリに

LQRを使ったステアリング制御の

Pythonサンプルコードを公開しました。

github.com

 

上記のシミュレーションでは、

アクセルブレーキ制御はPID

ステアリング制御はLQRを使っています。

また事前のコース生成には3次スプライン

myenigma.hatenablog.com

シミュレーションのgif動画作成には、

下記の記事の手法を使用しました。

myenigma.hatenablog.com

 

下記がシミュレーション動画です。

PythonRobotics/animation.gif at master · AtsushiSakai/PythonRobotics

綺麗にトラッキングしているのがわかります。

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com