小型 CMOS カメラを搭載した自律制御型ロボットの開発

小型 CMOS カメラを搭載した自律制御型ロボットの開発
- FPGA を用いたリアルタイム並列分散処理システム信州大学 工学部 情報工学科
02T5094G 四十 正稔
1. まえがき
ータを制御して,ターゲットを追尾しながら移動する.
ロボットコンテストという世界がある.参加者が制作した自
律制御型ロボットによる競技会である.我々のグループ(プ
ロジェクト GA)は平成 16 年 11 月情報創造プロジェクト(い
わゆるエジソンプロジェクト)の活動の中でマイコンカーラリ
ー北関東大会に参加した[1].
自律制御型ロボットには,目となるセンサ,足となる DC
モータとサーボモータ,パラメータ設定用の操作パネルなど
の周辺装置で構成されており,これらをロボットの脳とも言
える H8 等の高性能マイコンにより一括集中して制御され
る.しかし一括集中システムには欠点がある.複数の周辺
装置を割り込み等のマルチタスク処理によって,ソフトウエ
図1 開発した自律制御型ロボット
3.並列分散処理の導入
アベースで一括制御するため,マイコンへの負担が非常に
開発したロボットには並列分散処理を導入した.
大きい.まして小型カメラを搭載してロボットの目とした場合,
従来の自律制御型ロボットでは,図2左に示すように,
画像信号処理のために膨大なデータを処理する必要があ
H8 等のなどの高性能マイコンを実装し,ソフトウエアによる
るため,高性能マイコン単体で処理するのは非常に困難で
一括処理が用いられる.しかしこのような構成では,カメラ
あった.
の信号をリアルタイムに解析することができない.そこで今
本研究では,小型カメラを搭載しながらも円滑にロボット
回開発したロボットには図2右に示すように,ソフトウエアと
を動作する自律制御型ロボットの開発した.それを実現さ
ハードウエアが機能分担した並列分散処理システムを採
せる手法として従来のソフトウエアベースによるマルチタス
用した[2].
ク処理をソフトウエアとハードウエアが混在した並列分散処
理に置き換えロボットに組み込んだ.これにより自律制御
型ロボットでありながらも,小型カメラからの画像信号をリア
ルタイム処理し,ロボットを動作させることが出来た.
本稿では,その具体的な内容について報告する.
2.自律制御型ロボットの開発
図1に開発した自律制御型ロボットの外観を示す.これら
は,①小型の CMOS カメラ,②FPGA を実装した回路基盤,
③移動用のモータとそのドライバ回路④操舵用のサーボモ
ータ⑤操作パネル⑥バッテリにより構成される.
図2 一括処理と並列分散処理の違い
ロボットは,ターゲットの色を学習させると,ターゲットの位置
画像処理やモータの制御は,図3に示す専用のハード
を小型カメラと画像処理によって割り出し,それを自動追尾す
ウ エ ア が 分 担 し , 独 自 に 設 計 し た 12bit の プ ロ セ ッ サ
る.追尾するターゲットの色は,操作パネルにより自由に設定
(YotoProcessor)を用いてソフトウエア処理を行っている.
ができる.例えば,赤色のボールをカメラの中央に設置して,
パネルを操作すると,その色差信号(U,V)が記録され,画像の
これにより,ソフトウエア,ハードウエアの利点を生かした
開発が可能となり,処理効率が飛躍的に上昇した.
中からその色に近い成分が自動的に検出される.そして水平
(現に小型カメラのストリーミング的なデータ処理はハー
方向に 8 分割した領域の中から,検出した画素数が最大とな
ドウエアベースの方が適しており,従来のソフトウエアベー
る方向を求め,前輪に接続したサーボモータと,駆動用のモ
スの処理よりも非常に効率が良い.)
7.制御用プロセッサの設計
制御用として図5に示す命令セットを持つオリジナルの
12bitRISC 型プロセッサ(YotoProcessor )を VHDL で開発
した.このプロセッサは,パイプライン処理も実装している.
また,ソフトウエア開発を効率化するため,VC++を用いて
専用のクロスアセンブラの開発環境も整備した.
図3 試作機の基本構成
5.開発環境
今回の開発では,システムを実現するために,FPGA
(Field Programmable Gate Array)と称するプログラマブル
な半導体デバイスを使用した.FPGA はハードウエア記述
言語(VHDL)で記述された設計図を半導体デバイスにダウ
ンロードすることで,その半導体デバイス内に自由に回路
を作製することができるというものである.[3]
今 回 の 開 発 で は , FPGA に ALTERA 社 の FLEX
図5 命令セット
EPF10K30EQC208-3 を,ハードウエア記述言語(VHDL)
の総合開発環境に同 ALTERA 社の Quartus II 4.2sp1
8.試作したロボットの評価
追尾するターゲットに赤いボールを使用し,試作した自
Web Edition Full を使用した.図 4 にその例を示す.
動追尾ロボットの動作を評価した.照明が明るく背景内に
同じ赤系統のない場合は,ターゲットを正確に識別し,そ
の方向に向かって自動追尾することを確認した.また,ター
ゲットの素早い動きにも,スムーズに追尾した.さらにター
ゲットの色を変えても正常に動作した.しかし,背景に学習
させた色に近い色が多い場合や,照明の照度が足りない
場合は誤動作することがあった.
図4 開発画面
5.リアルタイム画像信号処理
今回 は ,小 型 で 8bit の A/D 変換 回 路 を内 蔵 した
9.まとめおよび今後の課題
•
小型カメラを円滑に動作させることが出来た.
•
ターゲットをリアルタイムに認識しスムーズに自動追尾
OmniVision 製の CMOS カメラ(OV7620)を使用した[4].
その仕様を以下に示す.
・解像度 640(H)×480(V)
・30 フレーム/秒
させることが出来た.
•
FPGA により,ハードウエアとソフトウエアが機能分担す
る並列分散処理の有効性を確認した.
今後の課題は,①ターゲットの形状をリアルタイムに識
・輝度信号 Y(8bit),色差信号 U V(8bit)
別する検出方法と,②外部の環境に左右されず識別する
・電源 3.3V,13.5MHzクロック
検出方法を確立することである.
主な画像処理の手順は以下のようになる.
また,本研究は,処理をハードウエアとソフトウエアに役
(1) 例えば赤色のボールをカメラの中央に配置してパ
割分担することにより効率よく処理することができた.これ
ネルの操作により,その色差信号(U,V)を記録する.
はロボットの開発に限らず,より多くの分野に応用できるも
(2) 1 フレームを横方向に 8 分割し,記録したターゲット
のと考える.今後は本研究での経験を生かし,他の分野で
の色差信号と一定の距離を有する画素数を領域毎に
も新たな可能性を模索していきたいと強く願う.
カウントする.
(3) 8 つの領域において,最もカウント数の多い領域を
ターゲットの中心とみなして,位置データを統括プロセ
ッサへ転送する.
以上の処理をフレーム毎(1/30 秒)に行うことにより,ほぼ
リアルタイムにターゲットの位置を検出することができる.
参考文献
[1] 四十,菊田:「エジソンプロジェクト報告書」2003
[2] 小澤:「FPGA を用いたウェアブルシステムの低消費電力化
に関する研究」H17 年度修士論文
[3] 「HDL による高性能ディジタル回路設計」CQ 出版
2003
[4] ハン:「指先画像を用いたウェアブル補助入力システムの研
究」H17 年度修士論文