にほんブログ村 その他趣味ブログ 電子工作へ

2010年08月13日

TCM8240MD を使用したカメラモジュール

モッパーです。

 「お父さんだって夏休みの自由研究がしたい!」第一弾です。すみませんが、長文です。
ちなみに第二弾は多分ありません。だって一人で自由になれる夏休みはあと1日もないんだもん(笑)。

8bitマイコンと廉価なカメラモジュールによるサッカーゴール認識が出来るかも ? というモジュールをやっと見つけましたのでテストしてみました。
モジュールを作成された fenrir 様のご厚意により、こちらをお借りすることが出来ましたので、RCJ サッカーに使えるか Arduino を使ってちょっとやってみました。 

モジュールの本来の目的は「猫カメラ」だそうで MicroSD・GPS・Bluetooth・加速度センサ等も搭載出来るようです。sparkfunのTCM8240MDと Altera の FPGA を使用して実装されたようですが、「私も人生で一回で良いからこういうものが自作出来るようになりたい!!!」という素晴らしい出来のモジュールです。またも FPGA に対する興味がフツフツと...私は多分スキル的に死ぬまで無理でしょうけど(泣)。
P8125247.JPG

で、本題に入ります。モジュール自体は 15fps で画像をサンプリング出来ますので、画像の品質と言う意味ではロボットのスピードへの追従はまずまずいけるレベルかと思います。問題は I2C による転送時間ですが、fenrir 様作成の WireExt を使用すると 1Mbps(beginReception(hoge,0)) まで転送レートを上げることが出来ます。

CCD の性能から見るとひどく贅沢な使い方ですが、転送時間を短縮するために最低の解像度である subCIF(128 x 96) でやって見ましたが、ケーブル長やいい加減な試行環境によるものか、667Kbps (beginReception(hoge,1)) が精一杯でした。これでも 1.4 fps 程度の転送が可能でしたので、1Mbps出来れば 2fps くらいはいけるかも知れませんし、もっと解像度落とせればより高速な転送できるはずです。。
現時点で達成できている転送レートだと、フルスピードで走行しながらの姿勢制御は無理で、ボールを確実に捕捉した後の動作等に適しているレベルと思います。ただし、カラーセンサーと違って一発読めばゴール中心を割り出せますので、対象と出来る用途は広がるはずです。

あと、この CCD はかなり厄介者で、データシートを見ても設定パラメータに何を設定したら良いのか分からないという問題があります。sparkfun さんのこちらの掲示板をじっくり読んでみましたが、皆苦労しているというのが分かっただけ...

色々パラメータ調整して見ましたがピンクが強くなる傾向は取り除けず、fenrir 様のこちらのパラメータ例にまい戻ってしまいました。多分、パラメータ調整でなんとかなるはずなんですが...今後やってみます。どなたかうまくいけば教えて下さい。以下のサンプル画像はごく簡単な整数演算で出来るレベルで弱い補正をかけたものです。まだかなりピンク入ってます(泣)。でも結果的に黄色と青色なら救えそうなところがまた RCJ サッカー向きかと...(笑)

以下、45cm 先のゴールの画像です。多分ゴールの幅の 80% 程度まで撮影出来てます。
45cm.jpg 

以下、100cm 先のゴールの画像です。
100cm.jpg

以下、160cm 先のゴールの画像です。背景は恥ずかしすぎるので見ないようにしてね(笑)。
160cm.jpg

もうちょっと光学系が広角だったらベストなんですけどね。

で、ここからが重要ですが、Arduino の SRAM には 1 フレーム分の画像情報は入りませんので、1 フレーム取り込んでからのんびり画像処理することなんて出来ません。画像データを読み取りながら逐次的処理で画像を処理する必要があります。実際にちょっとやってみましたが、出来そうです。でも、これ以上書くと今後トライするチームにとって面白くなくなるので、詳しくは書きません。ヒント : 二次元的な動きしかしない RCJ サッカーのロボットの前面に位置するカメラでは二次元画像は必要なく、一次元で十分と考えます。

このモジュールは、今後スイッチサイエンスさんやFPGA-Cafeさんで購入できるようにしたいとのことです。もし数千円で販売されれば、ロボカッパー達にとって選択肢の一つになると思います。

テストは Arduino と Processing (私として今回初めてのトライ!!!) で行いました。テストに使用したソースコードは拾い物も混ざってますので公開OKか確認の上、今後出来る限りの範囲で公開したいと思います。 


8/14 以下追記しました。続きを読む
posted by モッパー at 22:16| Comment(2) | TrackBack(0) | 画像処理・カラーセンサ

2010年03月21日

ゴール識別成功 !

モッパーです。

浜松フォトニクスのS9706 を使ってゴール色の識別に成功しました。

光学系はダイソーで買った以下のものです。

SANY0001.JPG
 
こいつにこんな風にセンサーをつけます
SANY0002.JPG
 
フィールドの対面ゴールからでも相手ゴールが識別できる程度の値が確認できました。
我が家の環境は試合会場では普通有り得ないくらい暗いのですが、検出できる程度の精度を出すためには0.5秒くらいの測定が必要でした。なるべく速い速度で測定できるようにすることがポイントなので、現地の状況に合わせて測定時間の調整が必要です。ダイセンのやつは多分自動的にそれをやっているのではないかと思います。
 
ロボットに搭載してみたわけではないので本当にうまく行くか良く分かりませんが、走りながら方向を調整するような用途はレスポンス的に厳しく、ドリブルしながらじっくりゴールを狙うような用途向きなのかなと思います。
 
ルーペの選定ですが、ルーペをあてる面に白い紙を当てて、人が見る側をゴールに向け、なるべく明るくはっきりしたゴールの像が紙に映し出されるものが良いようです。

posted by モッパー at 15:15| Comment(3) | TrackBack(0) | 画像処理・カラーセンサ

2009年08月28日

カラーセンサー again

モッパーです。

ロボットと N君の PC がやっとセットで我が家に帰って来たので、すかさずぶんどって、カラーセンサーのテストをしました。

テストしたのは手持ちの浜松フォトニクスのS9706です。S9706 は低感度モードと高感度モードがあり 1:9 の感度差がありますが、対象物に強い光を当てて隣接して測定しない限り低感度モードは現実的ではありません。また、測定時間を長くすればするほど暗い環境でも精度が高くなります。

暗めの白熱電球照明の部屋で白い壁を測定してみました。かなり悪いコンディションなのは確かです。
まずは「筒一発」でいけるかいくつかの「筒」でやってみましたが全然ダメです。それなりの指向性が確保出来る細さにすると全く光量が足りません。

そこで、ダイソーで買った双眼鏡登場!!!
P8281391.JPG
高感度モード で 1 秒間測定しても、R=141, G=83, B=41 です。このセンサは 12 bit も分解能あるんですがこの程度... ロボットでなんとか実用的になりそうな 100ms 程度だと全く精度が出ません。また、白熱電球の特性がモロに測定値に出ています。このような照明条件の特性をなんとか消しこまないと色の判断は出来ません。


さすがにこれはやりすぎ ???  一眼レフ用ズームを 70mm F4 あたりで使いましたが、結像面の位置もかなりいい加減ですし、結像面積に比べてセンサの大きさが著しく小さいので参考値でしかないと思います。そういう意味では双眼鏡も似たようなものですが...
P8281393.JPG
高感度モード で 1 秒間測定、R=212, G=138, B=53 です。



結論 : もっと速く精度良く測れるセンサーじゃないとダメです。テキトーな測定なのでかなり誤差はありそうですが、ダイソーの双眼鏡の接眼面は 1 lux 程度のようでした。この程度の明るさを 100ms(出来れば 10ms)、8bit くらいの精度でセンシング出来るセンサーがあればなんとかなるかも知れません。もしあったとしても、市販品のレンズでゴールにきちんとフォーカスし、センサ面に結像する機構を作るのはかなりの困難が予測されます。私は光学系についてはあまり知識がなく、今回はそこまでの検証は出来ませんでした。

私の遊びとしては継続して何かやってみるかも知れませんが、最強ファイターズが手を出せるレベルのものではないことはほぼ決定です。

 
posted by モッパー at 22:13| Comment(4) | TrackBack(0) | 画像処理・カラーセンサ

2009年07月08日

画像処理関連

モッパーです。
調べたこと忘れてしまいそうなので、私の分かる範囲の画像処理関連についてまとめておきます。
技術的・費用的にあまりに高度すぎて、最強ファイターズの今シーズンの挑戦は難しいと思いますので、単に私の興味で調べています。
  • PC による画像処理
OpenCV 等の画像処理ライブラリにより PC で画像処理を行う。振動による PC の破損防止対策や電源のアイソレーション等、今までロボカップジュニアサッカーでは行われてこなかった対策が必要になってくるように思います。既にいくつかのチームはトライをされているようですし、「キワモノ」好きの私の興味対象にならず(笑)、あまり調査はしていません。
当面、私の興味は以下のような非力なマイコンで簡単に制御できるカメラモジュールに向いています。費用的に安くそのようなものがあれば、非力な8bitマイコンを中心として使用してきたチームの方々が画像処理に一歩進むトリガになると思います。
  • Treva
京セラの PHS に搭載されていたカメラです。生産終了していますが、オークションサイトで今でもたまに出品されるようです。非常に安く、シリアルインターフェースで接続できるため、ロボット用途で多数の解析とトライアルが過去されてきましたので、画像処理の方法も含めて web 上にかなりの情報があります。難点は高速な CPU 使っても1画面の転送に 0.5 秒程度はかかるため、ロボットが移動中に画像転送するのは無理であろうこと。
  • NXTcam
mindsensors.com の製品。I2C で接続出来るので、多分 NXT でなくとも使えるはず。カメラ側で画像処理するので、画像処理の知識がなくとも対象物のトラッキングが出来そうです。こいつだけは、技術的にはうちのメンバーでもなんとかなりそう。でも価格高すぎます。問題は画像処理がブラックボックスになるので、買ってやっててダメだったら即サヨナラ!!! なこと。どなたかやってみて !!! (笑)
  •  CMUcam
オープンソースのカメラモジュール。NXTcam と同レベルの価格。カメラ側での画像処理に手を入れられるようです。シリアルインターフェースです。まだまだ調査が足りません...
  • SRV-1 Blackfin Camera
DSP の知識ないと無理? $400 以上する。という時点で対象外なので調査してません。
特に非力な 8bit マイコンで制御できそうなカメラについて、他にご存知の方がしらっしゃれば、是非コメント頂ければと思います。
posted by モッパー at 22:00| Comment(16) | TrackBack(0) | 画像処理・カラーセンサ

2009年02月11日

カラーセンサ

2009 ルールに使えるかもしれないと思い、カラーセンサ(色センサ)を評価しました。浜松フォトニクスのS9706です。秋月で\900です。RGB それぞれ 12bit とダイナミックレンジが広いです。Digital out 2ch と Digital in 1ch を消費してしまうのが玉に瑕。IC チップむき出しでは無指向なので、なんらかの手段で指向性を持たせないとサッカーゴールの色の認識は出来ません。ダイナミックレンジが広いのでかなり甘い光学的構造でいけそうな感じはあります。「筒」一発でなんとかならないかな... 今後やってみます。

ちょっと測ってみましたが、照明条件(電球とか蛍光灯とか...)のほうが測定対象の現物の色より影響が大きく、ホワイトバランスによる調整が必須です(当たり前と言えば当たり前)。あとは遮光性に優れた「筒」がないと周りの環境の色をモロに拾いますね。
センサーのハンドリングや光学系の作成は、小学生の理解を超えるな、これ。最強ファイターズのメンバー達では2009シーズンでは無理かも知れません。

発光しても良いレスキューでは、小学生レベルでも使い物になるかも。
posted by モッパー at 23:01| Comment(0) | TrackBack(0) | 画像処理・カラーセンサ
にほんブログ村 その他趣味ブログ 電子工作へ