2013年03月06日

ラインスキャンカメラ

追いコンされたわけですが、ランサー出ます。多分。とりあえずエントリーだけはしました。

ずっと書こうとは思ってんたのですが、あんまり時間なくて今頃書きます。


The Freescale Cupの際は、カメラを使用してライントレースを行いました。
実際はカメラのような1*128画素のセンサです。
画素数からもわかるように、スキャナのようなセンサであることがわかります。
chanさんのラインスキャンカメラのような感じです。
http://elm-chan.org/works/lcam/report_j.html
(このレベルには遠く及びませんが…)


今回はハードウェアに関してのアプローチを書いてみます。
前提として、MCRのように操舵と動機して動くのではなく、車体に取り付けることにします。
Freescale cupのキットでは操舵に付けられませんしね。
さらに、白地に黒線です。そういう規定なので。


このカメラを使用した際に、マシンの方はこのように作りました。
CIMG0602_R.JPG

みんな大好き秋月で売ってるパワーLEDにレンズを取り付けたものです。
http://akizukidenshi.com/catalog/g/gI-03709/
LEDはとりあえず1Wのものを使いました。レンズは…どうだったんだっけ?
まぁこの時は、とりあえずでつけたので深い意味はありません。
カメラが赤色周辺の特性が良かったので、省電力化もできるかなと考えてパワーLEDの赤も試しましたが、白と比べて段違いだったので結局白色にしました。

カメラとLEDの設置位置に関しても、台座を3Dプリンタで作ることを考慮して、作ることのできるぎりぎりの高さという理由です。
実際の高さはこの時161mmでした。
LEDを取り付けたほうが、白線の部分と黒地の部分との差がより大きくなるため、取り付けています。

というのが予選の状況。
で、予選を行なってよくわかったのが、カメラの取り付け位置が低いらしい。
→高いほうがより広角を見れるため、ライン取りの幅が広がる。
  他チームのほうが、よりINをいっている。
  (FreescaleCupのコース60cmとは比較的広いです。)

ということなので、もっと広げようと。

hi.jpg

こうすれば読み取り範囲が広がるわけです。

ですが、いくつか問題が出てきます。

・必然的に検出しているラインが細くなる
・カメラ両端の光ムラが顕著化する。
 →ソフトウェアではある閾値を超えたかどうかで白と黒と判別している(スタート前にキャリブレーションをする)
 →反射が弱い両端は黒として判別されてしまう
・重心位置の変化による慣性モーメントの増大
 →決勝大会中に実感した。重すぎる。
・カメラ位置の変化で照明の反射具合が変化し白と黒の差が弱くなる。

などの問題が出ました。それに対応するため、照明の数を増やしてます。
CIMG0636_R.JPG
4個にして、両端はパン・チルトどちらも調整できるようになっています。

こうなると消費電力が増えます。
バッテリーは、ニッケル水素電池6セル、2200mAhです。それほど性能がいいようには見えなかったので、パワーLED2つを直列に接続して、1オームだかそんぐらいの抵抗を通してバッテリーにつなげています。
制御を何もかけていないので、電池の電圧降下で照明の強さが若干変わりますが、今回は諦めています。
4つにするときは2直列を2並列にしてつなげてます。そんだけです。
4並列にすれば、明るさを固定できる(電流値を固定できる)すべはあったのですが、単純にロスがやばいので却下。昇圧して降圧するのも、電流が強すぎて部品が揃えられない関係から却下。
ちなみに電流はLED1個あたり0.4A流しています。

ちなみにですね、最終的に決勝でラインを読み込んでいた位置は、ホイールベースの2倍の位置(400mm)です。多分LED消してもそれなりにいける。
前に書いた東大チームなんかは照明なんて一切ないです。しかも多分うちのチームよりだいぶ先の位置をカメラで見てる。はず。

というのも、カメラの読み出しはクロックを与えるとアナログで出てきます。
照明なしで決勝大会でのカメラ位置で電圧を計測すると、電源電圧5Vでピークでも1V切ります。(確か)
このままであれば結構厳しいですが、デフォルトで4倍のオペアンプ回路が乗っているので、それを使って増幅させた後の値を使っています。
こうすることで、照明なしながら短い露光時間(0.4ms以下)で読み取ることが可能です。
まぁ、実際のデータを読み出す処理で1.7ms持っていかれて、ライントレースのもろもろの処理でで4.5ms持っていかれるので、せっかくの高速読み取りの工夫があんまり生かされてないですが。


このへん、現在あんまりデータがないので、後日オシロスコープのデータと一緒にもう少し詳しく書いてみようと思います。
(明るさのムラに関しては特に)



ちなみに、MCRみたくデバッグにはログをとって色々やってました。
時間がなくて、内蔵RAM上に領域をとったので電源を消す前にログを読み出さなきゃなんないんです。
内蔵EEP-ROMはあったんですが、データシート読む時間がなかった…。
log.jpg
posted by Tmk at 00:38 | Comment(0) | TrackBack(0) | MCR・活動記録
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/63371015
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック