MyEnigmaスマートフォン用の表示で見るMyEnigmaとあるエンジニアのブログです。Generatorを紹介しました。Plannerという有名なパスプランニングアルゴリズムの概要とそのサンプルPythonコードを紹介したいと思います。Plannerと、myenigma.hatenablog.comいくつかの効率的な最終状態のサンプリング手法を組みわせた経路生成アルゴリズムです。Plannerでパスを引きます。コストが低いパスを最終コースとして選択します。コストとしては、単純にゴールに最も近いパスを選ぶ方法もあれば、コースの曲率が最も小さいものを選ぶ方法もあります。このアルゴリズムで一番重要なのは、どれだけ適切な場所に最終状態をサンプリングするかです。最終的な経路が不安定なものになってしまいます。計算コストを下げる必要もあります。大きくわけて3つの効率的なサンプリング手法が提案されています。それぞれの概要を下記で説明します。詳細は前述の論文と後述のPythonコードを参照ください。samplingです。上記の図のように、ある距離と角度の扇形の弧上に等間隔に複数点サンプリングし、その点に対して等間隔の複数角度の終端状態をサンプリングする方法です。samplingです。等間隔ではなくゴールの方向に密にサンプリングしたほうが、よりゴールに近づくパスが生成できます。samplingでは、コスト関数(ゴールの方向など)を使って、それらの確率密度関数からコスト関数が小さくなる場所を重点的にサンプリングする方法です。samplingです。終端状態の方位が一意に決まる場合に、その方向に対して横方向にオフセットした終端状態をサンプリングする手法です。Planningの利点と欠点を簡単にまとめておきます。利点グリットベースの手法などと比べて、解像度の問題が発生しない。PlannerのPythonサンプルプログラムを公開しています。samplingによって生成されたローカルゴールに対し、それぞれパスを生成します。下記がそれぞれのサンプリングによるパスの生成結果です。左右の広い範囲を5等分し、それぞれの点に3つの異なる終端方位のパスを生成しています。下記は左側にパスを引くようにした場合です。進行方向に密なサンプリングがされています。下記は、左側にゴールがある場合です。左側のレーンチェンジするのを想定して複数のパスを引いています。交差点を左に曲がる場合を想定したものです。それぞれロボットのアプリケーションに応じて、サンプリング手法を切り替えるとスムーズなロボットの自律移動が実現できます。Supportersもしこの記事が参考になり、ブログをサポートしたいと思われた方は、こちらからよろしくお願いします。はてなブログProとあるエンジニアのブログです。Page月別アーカイブスポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。