2009/12/03

Hibikino-Musashiのプログラム(3)

こんにちは。

今回は「画像処理」についてお話しします。

ロボットの頭には全方位カメラが取り付けられています。


カメラはSONY製のDFW-VL500です。

また、カメラの性能を最大限に引き出すため、ドライバはCMU 1394 Digital Camera Driverを使っています。

画像処理にはOpenCVというライブラリを使っています。

画像処理は「画像取得スレッド」と「画像処理スレッド」に分かれています。

最近流行のマルチスレッドで動いているんですね~。

画像取得スレッドでは、
 ・データの読み出し
 ・240×240にトリミング
 ・色変換(YUVとHSV)& 色抽出

画像処理スレッドでは、
 ・ボール検出
 ・自己位置推定
 ・障害物検出

といった処理を行っています。

中型リーグでは自己位置推定が大きな課題となっており、多くのチームが「パーティクルフィルタ」を用いた手法を採用しています。

OpenCVではパーティクルフィルタは「Condensation」という形で実装されています。パーティクルフィルタって何?という方はこちらをどうぞ(英語サイトです)。

検出した白線情報を元に、パーティクルフィルタによって自己位置を求めます。

↓こんな感じ


画像処理は行動に比べて専門性が高いです。

ですが、わかるようになれば、これほど面白いものはありません。「あれをやってみよう!」「こういうのはどうか?」など、考えを巡らせるのが楽しくなっていきます。

次回は「通信」についてお送りします。

0 件のコメント: