Defartとは、AIBOを自律的に動作させるプログラムを開発するための統合ソフトウェア開発環境です。
Defartは、RoboCupサッカー4足リーグに参加するためにITOLAB.が構築した開発環境です。C++プログラミングの経験がなくても試合に必要なプログラムを作ることができ、プログラミングにおける基礎的な概念の理解を促進できるようなシステムを目指しています。
Defartは、ITOLAB.の研究テーマの一つである「わかりやすいプログラミング」のための実験システムでもあります。プログラミングをわかりやすくするため、Defartではプログラムを図によって表現しています。
“Defartとは” の続きを読む
カテゴリー: Defart解説
About Defart
Defart is …
- a visual programming system for sony AIBOs.
- developed for writing game programs of RoboCup Soccer Four Legged League.
- aimed at easy-to-use programming system for beginner.
- separated into PC side and AIBO side. PC side is written in Squeak, and AIBO side is written in C++ and OPEN/R SDK.
Using Defart, You can …
- write programs only by using mouse.
- create AIBO motions, and use them in your codes.
- get images from AIBO’s camera through wireless networks, also control the AIBO remotely.
- get some ideas about technics and technologies of robot programming.
Defartのログ出力機能
Defart/AIBO 07a9よりログ出力機能が搭載されました。これは、AIBO内部のさまざまな内部情報をファイルとして保存するものです。
ログ出力可能な項目
- ボール・ゴールの位置情報
- 実行するモーションの番号
- 実行中の状態遷移図、状態番号
デフォルトでは、ボールの位置情報と実行するモーション番号だけが記録されます。設定ファイルを書き換えることで、他の情報を記録することができるようになります。
画像認識の流れ
Defartにおいて、AIBOが画像を認識するまでの流れについて説明します。
原画像
説明のために、AIBOのカメラがとらえた画像が以下のようなものだったとします。
この画像では、画面の中央付近にオレンジ色のボールが映っています。このボールを「AIBOがボールとして認識する」までについて説明します。
一次データ(CDT画像)
Defartでは、上記のようにカメラでとらえたカラー画像をそのまま使っているのではありません。
AIBOに搭載された色検出エンジンにより生成されたCDT画像を使って物体の認識を行います。
色検出エンジンは、カラー画像から特定の色の部分だけを抜き出した2値画像を作ります。
色検出エンジンに与えるパラメータによって、どの色を抜き出すのかを決めることができます。
さらに細かいノイズを除去するフィルターを通し、以下のような二値画像を得ます。
このCDT画像が一次データであり、認識のベースとなります。
二次データ(色の集合体)
複数の色から構成される物体もあるため、一次データから直接物体として認識することはしません。そこで、物体認識の前に、特定の色について抜き出したCDT画像から、その色の集まっている部分を見つけ出します。
色の集まっている部分は、矩形(四角形)の領域とみなし、画面上での中心座標値と縦横ピクセル数により表します。
これを二次データとして、物体としての認識を行います。
三次データ(物体情報)
まず、二次データの領域を色ごとに調べて、ボール(オレンジ)やゴール(スカイブルー、黄色)、ビーコン(2色の組み合わせ)を判別します。
続いて、領域の座標とピクセル数、さらにAIBOの首の角度を使って物体の位置情報を求めていきます。
領域の中心座標と、AIBOで撮影した画像のピクセル数、さらにAIBOのカメラの視野角によって、領域の中心への角度を求めることができます。
これにAIBOの首の角度を加えることで、AIBOの正面を基準とした、物体の相対角度を求めることができます。
また、目的とする物体(例えばボール)の本当の大きさと、領域のピクセル数によって、その物体までの距離を求めることができます。
このようにして、物体の位置に関する情報を求めていきます。
ここで得られた三次データは、Defart/AIBOの頭脳オブジェクトに送られ、プログラム内の視覚条件で使われるデータとなります。
樹徳祭2005に向けたDefartの改良点
樹徳祭でより高度なプログラムを作れるようにDefartを改良中です。
このページでは前回の課題2以降で大きな変更のあった部分について説明します。
Defartの内部
Defartの概要
Defartは、AIBOに組み込んで動作するDefart/AIBOと、そのためのプログラムやデータをパソコンで作成するためのDefart/PCからできています。
Defart/AIBO
Defart/AIBOは、OPEN/R SDKを使ってC/C++で記述されており、Defart/PCで作成した状態遷移図やモーションデータに従ってAIBOを動かします。また、無線LANにより遠隔操縦を行ったり、ファイルの送受信なども行うことができます。
Defart/PC
Defart/PCは、Squeak上でSmalltalk/80で記述されており、Defart/AIBOの有限状態機械に対する状態遷移グラフやモーションデータを作成することができます。無線LANによりAIBOのフロントエンドとして動作し、さまざまな設定や実験などを行うこともできます。
その他
DEFARTは、おもに「行動制御プログラムの作成環境」「モーションの作成環境」「テスト環境」を提供します。行動制御プログラムの作成環境では、画面上で状態遷移グラフを描くことによって、AIBOから得た視覚情報を実際の動作に結びつけるプログラムを作成することができます。モーションの作成環境では、実際にAIBOのモーションデータを作成できます。テスト環境では無線 LAN経由でAIBOの視覚情報を取得したり、設定情報を更新することができます。
DEFARTは、2つのサブシステムに分かれています。Defart/AIBOサブシステムは、AIBOのメモリスティックに格納して、AIBO自身を自律的にコントロールします。Defart/PCサブシステムは、PC上でDefart/AIBOのためのプログラムを作成するためのユーザーインターフェイス環境です。
Defartの動作環境(v014)
DefartでAIBOを動かすプログラムを作るためには以下のハードウェア/ソフトウェアが必要です。
ハードウェア
Sony AIBO
Defartで動作確認できているAIBOは以下のものです。
- ERS-210, ERS-210A
- ERS-7, ERS-7M2
AIBOプログラミングメモリースティック
AIBO専用のメモリースティック(ピンク色)が必要です。
8MBあるいは16MBのものが利用できます。
パソコン
Squeak nihongo7が動作するパソコンが必要です。
- Windows 2000, Windows XPで動作確認しています。
- Debian/GNU Linux sargeで動作確認しています。
- Mac OS X 10.4で動作確認しています。
メモリースティックリーダー/ライター
PCカード型、USB接続型のどちらでも構いません。
Sony純正のものをお勧めします。
ソフトウェア
Squeak nihongo7
Defart/PCをパソコン上で動作させるのに必要です。
OPEN/R SDK
ソースコードからDefart/AIBOを生成するのに必要です。
また、Defart/AIBOをAIBO上で動作させる基本部分を得るのにも必要です。