こつこつ


樹脂部品の発注を進める。
いつもならパターンレイアウトとメカとを何往復かして、全てが決まってから発注してたけど、見切りで注文するのは楽しい。
DMMへのデータのアップロードでSTLファイルだとファイルサイズ制限(100MB)を超えてしまったため、今回は3mfファイルで提出してみる。

こつこつ


センサホルダをPOMから削り出す。今年は横壁センサも縦置きする。
・壁板の浮き対策にセンサが検出する位置は床面から高いほうが良さそう
・少しでも壁切れのセンサレベルの変化エッジが鋭くなるように(素子の指向性的におまじない程度だけれど)

3×3ゴール対応


全日本に向けて入れた対応の一つに、3×3区間のゴールの中心区間に仮想壁をたてる処理をいれた。
これは、串区間の制御との整合をとるために必要な処理で、整合の問題となる串区間の処理は、両側の壁が無い状態、かつ、壁切れからの距離が1.5区間相当続いた場合に、その方向に進むという処理になる。
3×3区間のゴールの中央部は、壁も柱も無いので上記条件に当てはまるため、その結果、左右のどちらかの方向に機体の進行方向が揺らぐという問題が発生する。
そこで、3×3区間のゴールの中心区間に仮想壁をたてると、機体は中央部分を通過しないようになるため、上記条件に嵌らないようになった。
ちなみに、最短走行時には、仮想壁を外して真ん中の区間を通過するようにする。

省エネ化(壁センサ)

現機体は壁センサの消費電流が約20mAあり、アイドル時の総電流(99.6mA)の20%を締める消費になっている。
そこで、全日本の迷路で最短走行までにバッテリを温存すべく、省エネ化を検討した。
1つ目は、探索走行中の壁センサの使用頻度を下げる。具体的には2ms毎に赤外線センサを発行させ、その反射量を測定する。(最短時には1ms毎)。これにより壁センサの消費電流を半減できる。
制御のmainループは1ms周期でジャイロやエンコーダの値を用いて動いており、探索時の遅い速度では2ms毎での壁センサの取得でも影響は少ないと考えた(具体的には300m/sで走る探索速度だと2msで0.6mmしか進まず、0.6mmの走行では壁と車体の距離は大きく変わらない)
2つ目は、超信地旋回中は壁センサをOFFにする。超信地旋回中は壁を見ていないのでOFFにしても影響はない。一方、ターン中は壁を見る条件もあるので、OFFにはしていない。
3つ目は、アイドルモード(パラメータ入力操作受けつけ、最短ゴール後等)で壁センサの更新頻度を500msに1回にする。完全にOFFにしないのは、走行開始の入力に壁センサを使う場合があるため。

マイクロマウス2021


国際ロボット展で行われたマイクロマウス2021に参加する。リアルでの前日本大会。本当にありがたい。

今回の大会では斜め走行での最短の成功を目標としていて、それを無事達成できた。
また、70mAhのリポで探索と最短を十分走れることを確認できた。
また、マイクロマウス2019でのリタイアの原因である30区画後くらいの直線の後のターン区間の間違いが発生しなかった。これは、4輪化と吸引機構の導入によって、タイヤの滑りや、迷路の継ぎ目でのタイヤの空転が減ったことが効いたと考えている

来シーズへの課題は、横壁センサの取り付け角度。横壁センサが壁面と床の境界付近を見ているため、壁が床面までしっかりと刺さっていない場合に読み間違いを起こしてしまった。これは、床面が黒色じゃない場合にセンサの値がくるっていたのを見過ごしていたことが原因で、あの規模の迷路の壁の全てを床面まで挿入することを保障するのは無理だろう。

課題の2つ目は最短経路所導出。本番での探索は全面探索はできなかったが、それでも西北東の長い直線を通るルートは選択できたはず。いまの最短経路導出では3歩分の重みづけにより上述のルートを選べなかった。ダイクストラ法を考えるときが来たかな?

課題の3つ目は、探索方法の種類の拡充。全面と往復の2種類に加えて、行だけの片道探索、雑な全面探索、直線優先の探索等を選べるようにしていれば、2回目の探索の失敗は防げたと思える。


つづいて、Finalでのパラメータ。探索の失敗により一回限りの最短走行なので、前日の試走で最も完走率の高かったパラメータを選択した。
最大速度は3m/s
加速度は10m/ss
ターン速度は0.8m/s

素晴らしい大会を運営してくださった皆様、ありがとうございました。

次期モデル検討

次回作の仕様を検討する。思いついたら都度追記していく
・基板と樹脂の色はオレンジかピンク(黒色は視認性悪い)
・基板厚は0.8mm->0.6mmに変更
・全長を55mm程度に短くする(今の長さでは超信地旋回時に壁に当たることがある)
・シャフト径は1.5mm->1.0mmに(軽量化)
・部品の裏面(地面側)実装は、オーバーハングの内側or吸引用スカートの内側に配置しても問題ない
・壁センサ数は5個(前方向の2個は制御につかってない、それよりも真横と45度が欲しい)
・壁センサの変更
・電源SWをDIP品に変えて、実装面積を小さくする(全長を短くする関連)
・ファンは駆動モータの直近に置く(全長を短くする、オーバーハング外に吸引スカートがあると路面との距離を広げないといけない)
・駆動モータを買えたい(トルク不足で15ms^sができない)

ターンパラメータの粗調整


シミュレータを使ってターンパラメータの調整を開始する。
マイクロマウスの横滑り運動を参考にして、180度ターン後のX方向のズレを元にスリップ角を推定する。
この推定した値を用いて、他のターンのパラメータをシミュレータ上で決め、実際に走らせてみると、今回は2mm程度のズレで収まった。
荒調整として十二分に使えそう。

タイヤ交換

全日本に向けて、すり減ったタイヤと酷使してきたバッテリを交換する
ついでに、タイヤ径の再測定を行う。
具体的には、9区間分走る丁度良いパルス数をカットアンドトライで求めて、その値からタイヤ径を算出する。
再測定の結果、1年半前の測定結果から10%くらいずれていて影響範囲が大きそうである。

ついでに壁切れの補正距離もズレていた。こちらは壁切れの閾値計算を色々変えていっていた影響のようだ

壁情報の上書き

今まで壁情報は最新の検出結果に全て上書きしていたのを、
壁有りと判定済みの壁は上書き禁止にしてみる

同様に壁無しと判定済みの壁も上書き禁止にしたほうが良いのだろうか?

ターンの補正


180度ターンと、直線から斜めに入る135度のターンの補正を入れる
①でターン直前にターン方向と逆の壁との距離を測り、壁に近づき過ぎている場合にはターンの半径を大きくする。ここでは、外側の壁が無い場合もありえるので壁に近い場合のみを評価している
②今回補正の対象とする2つのターンは内側に壁があることが保証されているので、その壁との距離を測る。具体的には壁切れの20~25mm前の壁との距離を測る、内側に近づき過ぎている場合はターン半径を小さくし、内側から離れすぎている場合はターン半径を大きくする