d-satoのマイクロマウス研修キット製作研修

スラローム走行実装のための調査 – d-satoのマイクロマウス研修 Part6

スラローム走行実装のための調査 – d-satoのマイクロマウス研修 Part6 d-satoのマイクロマウス研修

d-satoです。初日から在宅勤務のため、自宅でマイクロマウス研修に取り組んでいます。記事一覧はこちらです。
前回はパラメータ調整後の迷路走行の様子を紹介しました。とりあえず迷路内は走行できそうなことを確認できたので、今回からはよりスムーズな走行を目指してスラローム走行を実装していきます。これまでは基本的にはマニュアルに沿って進められましたが、ここから先はマニュアルに書かれていないことを多数含みます。自分の記録もかねてスラローム走行については複数回に分けて書いていきます。

今回はスラローム走行の実装方法を紹介します。実際に動かしてみた動画は次回紹介します。

スラローム走行

スラローム走行は曲がり角で曲がる際、止まらず、進みながら曲がる走行方法のことを言います。

現在では曲がり角に来るたびに停止して旋回しています。曲がる動作が多ければ多いほどゴールへたどり着くまでの走行時間の増加につながっています。

曲がり方の違いはshotaさんの記事で動画つきで分かりやすく紹介されています。

shotaのマイクロマウス研修3[Pi:Co Classic3 スラロームできた?]
こんにちは、shotaです。 社員研修として、弊社が販売するマイクロマウスを動かしています。 前回は4×4サイズの迷路でPi:Coを走らせました。 今回は、曲がり角をスムーズに進むスラローム走行に挑戦しました。 スラローム走行とは スラロー...

実装方法

run.cの中にrotate(t_local_dir, int)が定義されているのでこれを見ていくと、ここに停止や超信地旋回の処理が入っていることがわかります。

停止や超信地旋回の処理

このrotate(t_local_dir, int)を呼び出している、void fast_run(int x, int y)を改造していきます。

void fast_run(int x, int y)

void fast_run(int x, int y)

具体的には、void fast_slalom_run(int x, int y)という関数を作成して、この関数を使って走行する処理を走行前のモード選択の4番に実装します。

void fast_slalom_run(int x, int y)という関数を作成

今後の進め方

スラローム走行を理解しながらvoid fast_slalom_run(int x, int y)という関数を実装し、4×4迷路で走らせてみます。

4×4の迷路でうまく動いたところで会社においてある16×16の迷路で走行させてみます。

次回は実装する関数について中身の軽い紹介と迷路内でのロボットの動きを紹介します。

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