歩行モーションの作り方(概要)

作成中なので、ITOLAB.学生以外は参考にしない方がいいと思います。

Defartを使って歩行モーションを作る方法

新しいモーションを作る

  • AIBOセッション画面でMoNet設定を選ぶ。
  • (修正)ボタンを押してMoNet設定画面を開く。
  • モーション一覧の(追加)ボタンで新しいモーションを追加する。指定するポスチャは何でもよい。
  • 追加したモーションを選んで(修正)ボタンを押し、モーションエディタ画面を開く。

歩行のポーズを入力する

  • 足先軌道の4点を決める
  • 左前脚、左後脚の4点をモーションエディターで指定する。
  • 最初のポーズを、一番最後に追加する
  • 左脚のデータを右脚にコピーする
  • (自動)ボタンで「歩行モーションを生成する」を選ぶ
  • (自動)ボタンで「トロットになるよう位相を調整する」を選ぶ
  • 先頭のポーズをポスチャとして登録する

作成したモーションをMoNetに登録する

  • 登録したポスチャと標準姿勢のポスチャをつなぐモーションを作成する
  • ポスチャをコマンドに登録する。

モーションを試す

  • AIBOセッション画面でMoNet設定を保存する。
  • AIBOのメモリースティックにMoNet設定を保存する。
  • AIBOセッションで登録したコマンドを試す。

Defartで簡単なプログラムを作る(3)

アクションを作る

sample10.png

2つの状態を作ることができたら、アクション(矢印)でそれらを結びます。どちらから初めても構わないのですが、ここでは左の状態から右の状態へとアクションを結ぶことにしましょう。

sample11.png

上の図で示したように左側の状態の黄色い四角形をクリックしてください。すると右下方向にヒゲのような線が現れます。

sample12.png

この線がアクションと呼ばれるものです。

アクションは、状態と状態との結びつきによって線の色が変化します。アクションは状態を結んでいなければならないので、ちゃんと状態同士がつながっていない時には、赤色の線で描かれます。つまり、上の図ではアクションが正しく状態に結ばれていないことを表しています。

“Defartで簡単なプログラムを作る(3)” の続きを読む

Defartで簡単なプログラムを作る(2)

AIBOセッションの画面構成

sample05.png

AIBOセッション画面は、AIBOの設定やAIBOとの通信、状態遷移図の作成などを行うためのものです。多くの機能がありますが、ここでは状態遷移図の作成に関わる部分についてだけ説明します。
画面右側には状態遷移図の一覧が表示されます。現時点では何も状態遷移図を作成していないため内容は空っぽです。
これから状態遷移図を作成していきましょう。

“Defartで簡単なプログラムを作る(2)” の続きを読む

Defartで簡単なプログラムを作る(1)

はじめにをお読みください。

ここでは、既にDefart/PCシステムがパソコンにインストールされていることを前提に進めていきます。
まだ、パソコンにDefart/PCをインストールしていなければ、Defart/PC v0.14インストール方法を参照してインストールを済ませてください。

状態遷移図によるプログラミング

Defartは状態遷移図という図を使ってプログラムを表現します。この状態遷移図とは、状態の移り変わりを○(丸)と→(矢印)によって表した図のことです。Defartでは、画面上に状態を配置し、マウスでそれらの状態をつなぐことで状態遷移図を描いていきます。

Defart/PCを起動する

sample01.png

Defart/PCを起動すると、上記のような画面があらわれます。この画面はDefart/PCのメイン画面で、これから使うロボットや作成するプログラムを選びます。
配布した状態では、エントリ一覧にERS-7とERS-210のための項目が一つずつあります。自分の使いたいロボットの種類にあわせて、どちらかを選んでください。

新しいプログラムを追加する

プログラム一覧にはサンプル項目が一つありますが、新しいプログラムを1から作成するため、プログラム一覧の下部の(追加)ボタンを押してください。

sample02.png

上のようなダイアログによって、プログラムの名前を入力するよう求められます。ここでは「test-1」のように(間にマイナス記号「-」を入れて)入力してください。

sample03.png

了解ボタンを押すとプログラム一覧が上のようになります。testの左側の三角印をクリックして、下のように1の部分を選んでください。

sample04.png

AIBOセッションを開く

エントリ一覧とプログラム一覧を選んで、画面右下の(セッションを開始する)ボタンをクリックすると、AIBOセッション画面が開きます。
この画面はAIBOと通信を行ったり、プログラムやデータをAIBOに組み込んだりするためのものです。

sample05.png


作成したプログラムをAIBOで実行する

無線LANが使える場合はもっと簡単にできるのですが、ここでは無線LAN環境が使えない場合のやりかたについて説明します。

最初にすること

AIBOセッションを開いているなら閉じてください。そして、Defart PCのメイン画面が表示されている状態にしてください。

メモリースティックを挿入して、ドライブ文字を記録する(初回のみ)

Windowsを使っているなら、メモリースティックがどのドライブとして認識されるか調べる必要があります。
パソコンに接続したメモリースティックリーダーにメモリースティックを挿入します。パソコンがメモリースティックを認識したら、マイコンピューターを開いてメモリースティックの(DやEといった)ドライブ文字を覚えておいてください。
(この作業は初回だけ必要です。次回からは必要ありません)

Defartのシステム設定でメモリースティックドライブを設定する(初回のみ)

Defart PCのメイン画面の左下にある(システム設定)ボタンを押してください。システム設定画面が表示され、右側の一番上に(memory stick)という項目表示されるはずです。

このときボタンは押さないで下さい。どうやらWindows版のバグでエラーとなってしまいます。押してしまってエラー画面が表れたら、左上の×を押してエラー画面だけ閉じてください。

(memory stick)ボタンの右側の文字領域を全て消して、先ほど覚えたメモリースティックドライブ文字(DとかEとか)を半角文字で入力してください。そして、ドライブ文字の直後にはコロン(:)を追加して下さい。

例えば、あなたのパソコンにメモリースティックを挿入したとき、Fドライブとして認識されたなら、ここで入力するものは(F:)となります。

入力できたら、左上の×をクリックしてシステム設定画面を閉じてください。
(この作業は初回だけ必要です。次回からは必要ありません)

AIBOセッションを開く

エントリ一覧から適切なもの(使用する機種が正しければ何でも構いません)を選び、プログラム一覧で実行させたいプログラムを選んで、セッションを開始します。

MoNet設定を選ぶ(初回のみ)

AIBOセッションを開くと、視覚設定や首モーション、MoNet設定が空欄のままになっています。視覚設定や首モーションは後で設定するとして、AIBOの動作に必要なMoNet設定を選んでおきます。
(MoNet設定)のボタンを押すと、メニューがあらわれて1つだけ選択できるようになっています。これを選んでください。

なお、MoNet設定は一度設定をAIBOに書き込めば、以後MoNet設定自体を修正しない限り次回以降何もしなくて構いません。

メモリースティックに書き込む

いよいよプログラムを(初回ならMoNet設定も)メモリースティックに書き込みます。
まず、右下の(メモリースティック書き込み)ボタンを押してください。このとき初回なら、まず、メニューの下から2番目の「MoNet設定を書き込む」を選んでください。
次に、もう一度(メモリースティック書き込み)ボタンを押して、「プログラムを書き込む」を選んでください。これで完了です。

不幸にも、「メモリースティックを挿入してください」とメッセージが表示されたなら、AIBO用のメモリースティックを挿入していないか、あるいは、メモリースティックドライブの設定が不完全です。後者であれば一番最初に戻って設定をやりなおしてください。

「違うロボット用のメモリースティックです。…」と表示されたら、たぶんAIBOセッションで選んだエントリ一覧の項目が間違っています。いったんAIBOセッションを閉じて、正しいエントリ一覧の項目を選んでください。

メモリースティックを抜く

メモリースティックに限らず多くの外部記憶装置では、遅延書き込みを行っています。つまり、今、データを格納したとしても、メモリースティックには何も書き込まれていないかもしれないのです。
もっとも安全な方法は、タスクバーの右側の通知エリアにある「ハードウェアの安全な取り外し」を選んで、メモリースティックリーダーを取り外すことです。

プログラミングの前に

DefartはAIBOのプログラムを作るシステムですが、普通のプログラム言語とはちょっと違います。
というのも、普通のプログラム言語が文字でプログラムを作るのに対して、Defartでは円を矢印で結んでプログラムを作るものだからです。

なぜこんなシステムになっているかというと、AIBOの標準的なプログラム環境であるC/C++言語でAIBOのプログラムを作るのは、かなり大変なことだからです。
Defartは出来る限り容易にプログラミングを始められるように、図形を使ってプログラムを作れるようになっています。

図形というとフローチャートを想像するかもしれませんが、Defartで使っているしくみはもっと単純なものです。単純なものなので誰でも使いかたをすぐに覚えることができます。フローチャートのように「四角形と平行四辺形はどう違うんだっけ?」とか考えなくて良いのです。Defartでは図形は円だけで、あとは円を矢印でつなぐだけです。

もちろん、単純だから即簡単という訳でもありません。しくみが単純なもの故に、複雑に組み合わせると訳のわからないものが出来上がってしまって、理解もできなくなってしまうのです。
また、ロボットプログラミングならではの難しさもあります。頭の中ではうまくいくことも、実際にロボットにやらせてみると、思わぬトラブルが発生してうまくいかなくなるものです。

そういったことを全てひっくるめて手軽に体験できるのがDefartの良さかもしれません。ぜひDefartを使って、プログラミングの楽しさや奥深さを体験していただければと思います。

画像認識の流れ

Defartにおいて、AIBOが画像を認識するまでの流れについて説明します。

原画像

説明のために、AIBOのカメラがとらえた画像が以下のようなものだったとします。
layerm.png
この画像では、画面の中央付近にオレンジ色のボールが映っています。このボールを「AIBOがボールとして認識する」までについて説明します。

一次データ(CDT画像)

Defartでは、上記のようにカメラでとらえたカラー画像をそのまま使っているのではありません。
AIBOに搭載された色検出エンジンにより生成されたCDT画像を使って物体の認識を行います。
色検出エンジンは、カラー画像から特定の色の部分だけを抜き出した2値画像を作ります。

色検出エンジンに与えるパラメータによって、どの色を抜き出すのかを決めることができます。

さらに細かいノイズを除去するフィルターを通し、以下のような二値画像を得ます。
layerc.png
このCDT画像が一次データであり、認識のベースとなります。

二次データ(色の集合体)

複数の色から構成される物体もあるため、一次データから直接物体として認識することはしません。そこで、物体認識の前に、特定の色について抜き出したCDT画像から、その色の集まっている部分を見つけ出します。
level2.png
色の集まっている部分は、矩形(四角形)の領域とみなし、画面上での中心座標値と縦横ピクセル数により表します。
これを二次データとして、物体としての認識を行います。

三次データ(物体情報)

まず、二次データの領域を色ごとに調べて、ボール(オレンジ)やゴール(スカイブルー、黄色)、ビーコン(2色の組み合わせ)を判別します。
続いて、領域の座標とピクセル数、さらにAIBOの首の角度を使って物体の位置情報を求めていきます。
領域の中心座標と、AIBOで撮影した画像のピクセル数、さらにAIBOのカメラの視野角によって、領域の中心への角度を求めることができます。
これにAIBOの首の角度を加えることで、AIBOの正面を基準とした、物体の相対角度を求めることができます。
また、目的とする物体(例えばボール)の本当の大きさと、領域のピクセル数によって、その物体までの距離を求めることができます。
このようにして、物体の位置に関する情報を求めていきます。
ここで得られた三次データは、Defart/AIBOの頭脳オブジェクトに送られ、プログラム内の視覚条件で使われるデータとなります。

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のためのプログラムを作成するためのユーザーインターフェイス環境です。

defartsystem.png

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上で動作させる基本部分を得るのにも必要です。