こんにちは、しゅうです。
前回はスラロームのシミュレーションなどを行いました。今回はスラロームを探索と最短経路走行に実装してみました。
実装する注意点
割り込み処理でしっかりスラローム時と直線走行時で計算を切り替えること。左右それぞれのモータ用の加速度や速度変数が必要となってきます。僕はglob_var.h
に色々と変数を書き足して行きました。
その他には、実装した最初の時点では、スラロームを行う関数にパラメータを直接入れていましたが、これらはパラメータ用のファイルにまとめておけばいいことに気づきました・・・その方が毎度値を設定せずにすみますからね。
実戦!
これで、実装を行ってみたところ下の動画のように無事スラローム探索と最短走行ができるようになりました!動画の前半は従来の超信地旋回を使った走行で後半がスラローム走行です。
探索スタートからゴール→スタート地点に戻って最短走行開始→ゴールの到達
までの時間を計測すると
・超信地旋回の時は55秒
・スラローム走行の時は39秒
というタイムでした。これが、実際の競技迷路の時だと四倍近い(4*4 → 16*16になるので)タイム差が出そうですね。ちなみに実際の大会だとスタートからゴールエリアに入ったところまでを計測するので(どちらも最短走行時)、
・超信地旋回の時は16秒
・スラローム走行の時は7秒
で、できています・・・圧倒的な差ですね!
まとめ
実は上の動画はたまたま(ギリギリ)成功した例です。半々の確率で壁に激突したり、上手にスラロームに切り替えることができていなかったりします。
というわけで今後のToDoとして!
– スラローム走行の安定化
– 斜め走行へのチャレンジ
があります。あとは、自分が好きなMacOSの方でも開発ができるように環境を整えたいですね・・・
次週から更新がゆっくりになっていくと思いますが、頑張っていきますので応援よろしくお願いいたします♪