こんにちは。haraです。
前回からかなり間があいたのですが、研修ブログを再開したいと思います。
16✕16迷路、そして社内大会
前回までは、Pi:Coのサンプルプログラムを自分なりに修正していき、5✕5の迷路走行まではできるようになりました。
次は、16✕16のフル迷路での走行なのですが、結果からいうと設置場所の照明の関係で、壁を検出するための閾値の調整は必要でした。
そこで試行錯誤の結果したの修正でほぼ完走することができました。修正した場所は、parameter.hの下の部分です。
# define REF_SEN_R 500 # define REF_SEN_L 480 # define TH_SEN_R 167 # define TH_SEN_L 180 # define TH_SEN_FR 178 # define TH_SEN_FL 185
以前調整したときのパラメータと比較すると若干小さめの設定に変更です。
これは、 Pi:Coに搭載しているセンサが、光の強度を見て判断しているために、照明等の外からの外乱を受けているからです。
したがって、すべての場所でこの値を修正せずに、迷路の完走は難しいということがわかります。(それに、センサの光軸の実装によっても変わってきますし)
そして、2020年1月27日の社内大会が行われました。
結果は、下のように3回走行して3回ともに完走です。
これにて最低限のミッションクリアですが、マイクロマウス研修はまだまだ続きます。
そして、在宅での研修へ
マイクロマウス研修の次のステップはスラロームの実装なのですが、色々な事情により在宅で研修することになりました。
ここで問題になるのは、走行テスト用の迷路です。自宅では16✕16の迷路を置く場所もないので、4✕6の迷路を自宅へ持ち込むことになりました。
そして、ようやく下のように設置しました。
さて、自宅に設置した迷路で、久しぶりにPi:Coを動かしてみます。
前回走行させてから、3か月以上も経っていましたが、そのまま動かしてみます。結果は走行開始から正面の壁に向かって激突してしまいました…。
まぁ、それもそのはず、最後にインストールした時の開発環境が手元にないので、どのプログラムが走ったのか全く分かりません。
色々テストのために機能拡張していたと思うのですが、全く思い出せないので、バックアップのプログラムから再スタートします。ちょうどUSBメモリに社内大会直後のプログラムがあったので、それをもとに再インストールしてみました。
ここで自分なりにプログラムを整理していたのが役に立ってきます。
今でもザックリ読んでも内容が理解できます。(やはり自分のためのリファクタリングはやって良かった)パラメータもそのままでプログラムをPi:Coにダウンロードして基本となる左手法で迷路を走行させてみます。
ここで左手法を使ったのは、迷路走行での基本である、まっすぐ走る、左右へ曲がる、Uターンするの動作を確認するためです。
この4つが動作するのであれば、一応センサの動作もモータの動作も許容範囲にあるといってもいいからです。
動作結果は、少し怪しい部分もありましたが、一応動作しました。各パラメータは、許容範囲と言ってもいいと思います。
以前少し実装していたスラロームやテスト動作はなくなっていますが、次回から再スタートしていきます。