第9回「バック運転をしよう」

自動運転ミニカーバトル

今回は自動運転ミニカーでバック運転をさせる方法をご紹介していきます。前回の「S字カーブを通過させよう」と合わせて、途中で止まることのないスムースな走行を実現できます

バックを使わなくても、カーブをスムーズに走行できるようにプログラムを最適化していけば、完走することは可能です。ただし、何かしらの条件で壁の前で止まってしまったときに、バック運転の条件分岐を入れておくことで、リスタートが可能です。

停止時の現象を解説

サンプルプログラムである「02_togikai_sample.py」では、Fr側距離が30mm未満になると走行を停止してしまいます。

この時の動作をプログラムを合わせてみていきましょう

 

・・・
途中省略
・・・

 

FrがCshort(30cm)未満になると、バック走行を0.1秒行い、停止することがわかります

バックさせる方法

それではバックさせる方法を解説していきます。

上記のような状態からバックして再スタートさせるためには、スペースの大きな右側に車両が向くよう、左バックをさせる必要があります。

Rr側のセンサーを利用し、RrLHが80cm未満、RrRHが80cm以上の時に左バックをするようにプログラムしてみましょう(80cmは任意です)

プログラムを追加する

距離センサーのパラメータを定義する

Rr側の距離センサーのパラメータを追加します。

この後に[middle=80]を追加します。この距離は動作を見ながら調整していきます。

モーター出力のパラメータを定義する

続いてバック時のモーター出力のパラメータを追記します。

この後に[jyaku_back=55]を追加します。この出力は動作を見ながら調整していきます。

バック動作を追記する

続いて、バック動作のプログラムを追加します。

この後ろに、下記プログラムを追記していきます

#RrRHdisとRrLHdisを定義
#もし左後ろが80cm以下かつ右後ろが80cm以上なら
#後退(弱)
#操舵(左最大)
#0.7秒
#commentに左バックを代入
[jyaku_back]の値で速度を、time.sleepの値で距離を調整できます
同様に、[elif]コマンドを用いて右バックも追記することで、スペースが左側にある場合にも対応できます。
バック運転をマスターすることで、途中で止まることのないスムーズな運転ができると思います。今回のやり方を是非トライしてみてください

コメント

タイトルとURLをコピーしました