今回は自動運転ミニカーでS字カーブを走らせる方法をご紹介していきます
サンプルプログラムである「02_togikai_sample.py」を使用してコースを走らせると、思ったような軌跡を描かずに、壁の前で止まってしまうことがあります。

なんで止まっちゃうんだろう?
今回は、なぜこのような現象が起こるのか、そしてどのように改善したらいいかを時系列に沿って解説していきます。
プログラム全体の説明は下記動画で解説していますので、見ていない方は動画をご覧になってから読み進めていただくことをおすすめします。

カーブを曲がりきれずに止まってしまう

カーブが連続する区間を走行する際に、赤線のようにコース中央を走ることができず、青線のような軌跡を辿り、壁の手前で止まってしまうことがあります。なぜこのような現象が起きるのか、動作とプラグラムを合わせて見ていきましょう。
現象を時系列で解説
①左旋回
最初の動作として、マシンは左旋回を開始します。その際の動作を見ていきましょう。

FrがCshort(30cm)以上
かつ
更にLHがshort(60cm)超過
且つ, RHの距離がshort(60cm)未満
以上より、
走りながら左折を開始します
②直進
次にマシンは直進していきます。その際のプログラムと動作は以下の通りです


このように、マシンは直進を続けます
③少し曲がって停止
更に直進を続けると、壁の前で少しだけ曲がる動作をみせたあとマシンは止まってしまいます。

LHのセンサが壁を検知し、右折を開始します
ただし垂直に突進しているため、曲がり切れません
最終的に、Frが30cm未満の距離まで近づいてしまい、マシンは停止します
コース中央を走らせるために
それでは、コース中央を走らせるにはどのようにすればいいでしょうか。

この図のようなタイミングで、直進ではなく、右折する条件を考えてみましょう。
という条件を追加することで、このタイミングで右旋回の条件分岐に入ることができます
S字カーブがうまく攻略できなかったら、今回のやり方を是非トライしてみてください


コメント