MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Rear wheel position feedbackによる経路追従とPythonサンプルコード

エンジニアのためのフィードバック制御入門

エンジニアのためのフィードバック制御入門

目次

はじめに

先日、

Pure pursuitアルゴリズムによる、

経路追従アルゴリズムを紹介しましたが、

myenigma.hatenablog.com

このアルゴリズムは、下記のような問題があります。

  • コース曲率を考慮してない

  • 車両の現在の速度を考慮していない。

そのためパラメータのチューニングが難しかったり、

複雑なコースで、制御が不安定になるという問題があります。

 

今回は、Pure pursuitアルゴリズムの問題を解決することができる、

Rear wheel position feedbackというアルゴリズムを紹介し、

そのPythonシミュレーションコードを紹介したいと思います。

 

Rear wheel position feedbackによる経路追従

Rear wheel position feedbackによる経路追従アルゴリズムは、

下記の写真のように、後輪中心と参照パスとの距離eと、

車両角度とコース方位の差θeを小さくするように、

ステアリングを制御する手法です。

f:id:meison_amsl:20170620073926p:plain

 

下記の式は、上記の条件を元にした

旋回速度の制御式です。

f:id:meison_amsl:20170620073937p:plain

上記の目標旋回速度になるように、

ステアリングや差動車輪を制御すれば、

参照経路に追従することができます。

また、このアルゴリズムは

リアプノフ漸近安定が保障されています。

 

詳細は下記の資料を参照下さい。

 

Pythonシミュレーションコード

下記のGithubリポジトリ上にて、

Rear wheel position feedbackによる

Pythonシミュレーションコードを公開しています。

github.com

 

上記のコードでは、

車両モデルとしては、Kinematic bicycle Modelを使用し、

myenigma.hatenablog.com

参照コース生成にはCubic Splineコースを、

myenigma.hatenablog.com

速度制御には、シンプルなP制御を利用しています。

 

上記のコードを実行すると、

下記の動画のように、

参照コースをトラッキングするシミュレーションが実行されます。

https://github.com/AtsushiSakai/PythonRobotics/blob/master/PathTracking/rear_wheel_feedback/animation.gif?raw=true

https://github.com/AtsushiSakai/PythonRobotics/blob/master/PathTracking/rear_wheel_feedback/Figure_2.png?raw=true

 

参考資料

MyEnigma Supporters

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

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

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

gumroad.com

エンジニアのためのフィードバック制御入門

エンジニアのためのフィードバック制御入門