この記事は筆者オンリーのAdvent Calendar 202311日目の記事です。
前回までのあらすじ
PythonRoboticsのpure pursuitを移植するためにAutowareの処理を調査しました。
今回やること
PythonRoboticsのpure pursuitの処理について調査してみたいと思います。
pursuitの各処理について
PythonRoboticsのpursuitのソースコードはこちらになります。
また、アルゴリズムの概要はこちらで紹介されています。
Autowareのpursuitの構成
構成としてはクラス、関数があるようです。
クラスとしては
・Stateクラス
・Statesクラス
・TargetCourseクラス
があるようです。
Stateクラスは
・__init__メソッド
・updateメソッド
・calc_distanceメソッド
があるようです。
Statesクラスは
・__init__メソッド
・appendメソッド
があるようです。
また関数として
・proportional_control関数
・pure_pursuit_steer_control関数
があるようです
proportional_control関数では指定されたスピードと現在のスピードの差分を係数でかけて返しているようです。
pure_pursuit_steer_control関数では内部で現状態との最小距離の箇所を選択し、Trajectoryのインデックスと先の距離を算出しインデックスと曲率(?)を返しているようです。
上記のproportional_control関数とpure_pursuit_steer_control関数を用いてstateの更新を行った上でstatesに情報が付加されていくようです。
まとめ
ちょっとはpure pursuitわかってきた気がする。
でもOSS連携できる気がしない。。。