ソフトウエア
mm-6/ソフトウェア
イメージセンサ画像処理
イメージ センサの画像は 4x4→1 の縮小処理の後、ガンマ変換を行って10bitを8bitにレンジ圧縮し、図に示す様な特定の垂直、水平のライン9本分をラインメモリに書き込みます。
CPU1はこの9ラインのデータを処理し、床と壁のコントラストを見て壁の有無、壁までの距離を計算しています。

迷路解析
下図に示す範囲の壁をセンスしながら走行し、迷路探索を行います。

- 前方:F1又はF2までの距離、壁の有無検出
前方の壁までの距離を計測し、壁F1、F2の有無を判断する。
手前(F1)の壁越しにF2の壁を検出することは出来ない。 - 右:R1又はR2までの距離、壁の有無検出
- 左:L1又はL2までの距離、壁の有無検出
- FR,FLの左右方向の位置を検出
FR又はFLの基準位置からのずれをステアリングにフィードバックして、壁にそって走るよう姿勢制御する
迷路探索アルゴリズムには向心法を用いました。
前方、左右2区画先まで壁の有無を検出しているのですが、過去の迷路でシミュレーションしたところ、この程度の範囲の検出では探索を短くする効果はわずかのようです。頑張った割には...
カメラの特長として、前方に長く壁が無いことは検出できますので、その時は優先的に直線走行してしまうなど、ためしてみても良いかもしれません。
走行制御
走行位置サーボの構成です。
後輪モータのエンコーダパルス周期検出結果をパルス周波数に変換し、PI制御でモーターの速度制御ループを構成します。
この速度制御ループの速度目標に、エンコーダの位置カウンタと位置目標との差(位置エラー)を加えることで位置サーボループを構成しています。
位置エラーにはリミットをかけており、リミットがかかっている間は速度サーボで一定速度で走り、位置目標に近づくと位置サーボになります。
位置カウンタをGyroから作った本体の角度に切り替えて、スラローム時の角度サーボにしています。
