MyEnigma

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

PythonによるClosed Loop RRT*パスプランニングサンプルプログラム

目次

はじめに

先日、RRT*とReed Sheppパスを使った

パスプランニングアルゴリズムを紹介しましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

このアルゴリズムには一つ問題があります。

 

それはReed Sheppパスが

実際の車両のモデルを忠実に表現していないことです。

Reed Sheppパスは、最大曲率(旋回半径)の条件は満たしたパスは作ってくれますが、

円弧と直線を繋ぐだけなので、曲率の不連続点があり、

ステアリングの切り角に制限があるロボットでは、

正確にトラッキングできません。

加えて、前後進の運動モデルを考慮していないため、

アクセルやブレーキの応答性が悪い車両では、

生成されたパスに追従できなくなります。

 

そこで今回はこの問題を解決するために

Closed Loop RRT*という

アルゴリズムを紹介したいと思います。

Closed Loop RRTとは

Closed Loop RRT(CLRRT)はMITの研究者が提案した、

RRTとローレベルコントローラを組み合わせた

モーションプランニングアルゴリズムです。

 

このCLRRTは、

DARPA Urban Challenge MITチームの

Talosという自動運転車両の

モーションプランニングアルゴリズムとして利用されました。

 

アルゴリズムとしてはシンプルで、

RRT(RRT*でも良い)で生成された参照コースに対して、

実際に制御で使用するローレベルコントローラと、

ロボットのモデルを使って、

実際に参照コースを追従するシミュレーションを実施し、

追従したコースが制約条件をみたせば、

そのコースを最終コースとして採用するというアルゴリズムです。

 

実際の制御でも使用される

ローレベルコントローラを

パス生成のためのシミュレーションにも使用するため、

実際の車両の動きに近いパスを生成することができます。

 

また、車両モデルが精密であれば、

すべての車両の制約条件を満たすコースと

入力プロファイルを計算することが可能です。

従って、Reeds Sheppパスよりも、

より実現可能なパスを生成することができます。

 

PythonによるClosed Loop RRT*パスプランニングサンプルプログラム

下記のGithubリポジトリに

CLRRT*のPythonサンプルプログラムを公開しました。

https://github.com/AtsushiSakai/PythonRobotics/tree/master/PathPlanning/CRRRTStargithub.com

 

このアルゴリズムでは、RRT*+Reed shepp pathで初期コースを生成し、

そのコースをローレベルコントローラとして、

PIDとpure pursuitアルゴリズム + Kinematic Modelを使って

Closed Loopシミュレーションで

コースを生成しています。

myenigma.hatenablog.com

myenigma.hatenablog.com

また、ステアリングの切り角度と、

アクセルブレーキ量の制約条件も追加しています。

 

下記が駐車オペレーションを模擬した、

シミュレーション結果です。

下記の結果を見ると分かる通り、

障害物に衝突せずにゴールに向かい、

かつ、入力の制約条件と車両モデル条件を

満たしたパスが生成できていることがわかります。

f:id:meison_amsl:20170618145525p:plain

f:id:meison_amsl:20170618145612p:plain

f:id:meison_amsl:20170618145554p:plain

f:id:meison_amsl:20170618145539p:plain

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

MyEnigma Supporters

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

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

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

myenigma.hatenablog.com