2019年4月24日水曜日

ジャイロ買った


 MPU6500という物をBanggoodというアマゾンのパチもんみたいな中華サイトで注文した。

土曜日にコンビニ決済して日曜日には入金確認ができていた。届くのか不安である。

 追記
 納期が3日(5/4→5/7)伸びたorz

2019年4月13日土曜日

日差し対策とかプログラム大幅改修とか

 これまである意味テキトーに乗り越えていた部分を大きく変更した。

 まず、例の変調光方式を搭載してだいぶ外の光に対しロバストになった。ステルスセンサーバーとかでは常套手段と思うけど画像処理マシンではやってる人居るのかな?
一回の処理の工程イメージ LEDアリとナシでは露光時間が違うので光を当てているときの最大値が同一になるところまで少ないほうに掛け算をして数字を補正する。

 A/Dが8bitのデータ幅のとき照明アリとナシでは最大値が50程度のギャップを確保できた。1処理の中で2枚写真をとっても310fpsほどを確保。するとデータの振れ幅(環境光による最大値の変化)も小さくなったのでそれぞれの可変する閾値はある程度のリミッターを持たせるだけでよくなった。(固定すると線の幅が不安定になっちゃった)
 現在の閾値
 0%~20%が黒
 20%~50%がグレー(マーカー用)
 50%~100%が白(センターライン用)

 またカメラを処理するときに問題になる「坂道のうえの画像」。これの対処に頭を抱える。
 まず、カメラのアングルを路面に対して30数度を確保すればよっぽど3本の線(真ん中と端)が見えることは無い。
 ただカメラの位置を下げたり、より遠くを見たときにアングルを確保できないと外の線が見えたりする。(自分は今19度)
 そこでまず坂に入ったら両端の画素を無視するプログラムを組み込んでいた。しかしこれが坂のモードに入れるタイミング、条件、また、出すタイミング、条件。これを確実な物とするのはかなり難しい。たまたま動いてはいたけれど上記の大幅改修によって"バランス"が崩れた。
 そのよう"超絶バランス"の上に成り立っていた「見たくない物は見ない」プログラムから「見たい物を選ぶ」プログラムに変更。つまりは認識できる"ライン"はすべてまず"ライン"として認識するということ。1本なら1本。3本なら3本。(最大4本にした)その中から正しいトレースするべきラインを選ぶ。
 まず置いた安定状態では1本しか見えないように作っておく。もし2本、3本見えたときはコレの中から前回のラインに一番近い位置にあるラインを選んでトレースする。
 すると今までは坂道で飛ぶともはや真っ直ぐ突き抜けていたのが、飛んだ状態でもトレースを続ける様子が見れるようになった。具合がよろしい。
 んでも結論は実戦投入するまで何も分からないわけなんだけド。

2019年4月10日水曜日

日差し対策

 先の全日本マイコンカーラリー大会では日光にだいぶやっつけられた。

 ロボットの大会、特に光センサーを扱うトコロで直射日光はさすがに無いにしてもカーテン越しの光や照り返し(コースには直射日光を当てないようにしててもどこかの壁に当たってるのが少しコースに反射など)がある場面でお手上げはダサいので対策を試みた。

 今回の策は結果から言えば失敗orz

バー有りマシンに使うアナログセンサを前に向かってつけた。
視線の先の色にかかわらず日光の入り込み具合をいい感じに取得はできた。

 そのデータを使ってしきい値を上げたり下げたりした。

 一様に正面が明るい場合はいい感じに絵が撮れる。

 一箇所だけ明るいと線が増える

 こりゃだめじゃ

 というわけでしょうがないので一回の処理で照明ありの画像と無しの画像を取得して差分をデータとして取得する変調光方式を試てみている途中。
 カメラでできるか分からなかったけど340fps程度を確保。相当日光に対してロバストになったかもしれない。
 ”明るさセンサー”はいつかどこかで役に立つかもしれないのでつけたままにする。