同時に目LEDが黄色に点灯します。Control」画面中央に小さな水色の四角枠が出ますので、適当な色のものをその枠内に入るように見せます。ID-01が(OK)といったら、見せた色が認識され同時にLEDが消灯します。Control」のモニターには先程の「ビジョン追跡」モードと同様のトラッキングの四角い枠が出てきます。適当に遊び終了するときは「おわり」といいます。ID-01が(OK)といったら「ワードセット12」を抜け出したことになります。◇カメラを使用した応用テスト(3)ID-01がセルフタイーマーカメラになります。先程と同様、電源ONからイニシャライズを終了したら、「アクション」(OK)で「ワードセット2」に入ります。続けて「写真」というと、ID-01が(OK)と答えて、目LEDが赤く点滅をはじめ、その点滅がだんだん早くなり「カシャッ」とシャッター音がします。saved」と表示されます。(XXは撮れた枚数)問題は画像を見る方法が未だ分かっていない事です。本日、ペリカン便はきませんでした。従って、後にいるロボ君はまだカメラが取り付け出来ません・・・クスン◇ペリカン便がきました水曜日になってやっと定期購読分が届きました。(遅い!)今回は50~53号までの(ブレインボード・CMOSカメラ)組み込みと、カメラケーブルの内蔵工事を同時に行いました。1号ロボ君は、一部のケーブルはチルトモーターボックスの切り欠き部分を利用しましたが、2号ロボ君はモーターの両脇を通しました。こちらの方がモーターを外すだけで完了しますし、ギアの汚れもありません。1号の作業で手順が分かっているせいか、作業は楽に終了しました。首パン時のモーターの負荷軽減と、コードにねじれ抵抗が生じないように、首内から外へ出た所を44号のケーブルタイで軽くまとめます。回転の軸中心にケーブルがまとまるように位置を調整します。OSのインストールも問題なく終了し、電源を入れてB.T接続するとCMOSカメラ画像が無事表示されました。01のB.T接続時のそれぞれのポート設定を行います。(画面クッリクで拡大します)私の場合はデバイスを各々COM4とCOM5に設定しました。音声認識のようにボディアクションを伴わないせいか、映像+B.T接続では思ったより消費電力は少ないようです。一台のPCなので2台同時にはコントロール出来ませんが、各画像はリアルタイムに表示されます。2台並ばせて同じポスターを同時に撮ってみました。カメラ位置の差はあるものの写り具合に差は無さそうです。カメラも付いて仲良く記念撮影。ベース部2台は大きすぎます。いうことで、プログラミングまで手がまわりませんでした。(2007/3/7)■プログラミング(1)今回はCD-ROM2にCMOSカメラを使ったサンプルプログラミングについて、解説します。C-like”フォルダーの中に、”vision_tracking.vclike”というプログラムが入っています。Editorの略)で読み込んで、内容を見てみましょう。●”vision_tracking.vclike”このプログラムは、”Main”、”BehaviorControl”、”Tracking”の3つのエリアに分かれています。”Main””SetTrackingColorコマンド”により、ビジョン追跡行動の色の設定をしています。サンプルではダークレッドになっているようですね。このコマンドのプロパティにより、追跡行動の色を、お好きな色に変更できます。Color)に載っています。”BehaviorControl”をスタートさせます。”BehaviorControl”ボイスコマンドにより、何を行うのか決定させるエリアです。ボイスコマンド「0」で”Tracking”エリアを実行します。ボイスコマンド「1」でプログラムを停止させます。ボイスコマンド「2」によりプログラムを終了させます。”Tracking”このプログラムの核となるエリアです。「WaitForコマンド」で、プロパティをセンサー「Tracking」、イベント「area_change」を使用して、その結果に応じてLEDの色tと左右の点灯で状態を表示するプログラムです。この命令文についての解説は、ユーザーガイドの45ページ(44ページ含む)に詳しい解説が載っていますので、宜しければご覧下さい。ターゲットがどのエリアにいるかによって、”Switchコマンド”によりLEDの点滅の仕方を決定させます。このプログラムでは、上段が黄色、中段が赤、下段が緑色で、さらに左側は左目LED,真ん中は両目LED、右側は右LEDが、それぞれの色に点灯する仕組みになっています。面白いのは”WaitForコマンド”と”Switchコマンド”の間にある”LeadOffコマンド”です。全てのLEDを消灯させる命令ですが、これがある事により、対象がトラッキングエリア外に有る時、或いはエリア外に出たときには、LEDが消灯します。◇テストする場所を選ぼうこのプログラムを実行するときは、なるべく単一の色をID-01に見せながら行わないと思った結果は出ないようです。「サウンド追跡」の時は、静かな場所で・・・など環境の配慮が必要でしたが、「トラッキング」においても、色々な色がカメラに映っていると判断されにくいようです。テスト環境も必要とは・・・結構手間がかかりますが、それを用意するのも面白そうです。最初にボイスコマンドで「0」か「1」を告げ、単一色の壁とか、色いパネルとか、大きなカレンダーの裏とかを背景に、手前で対象物(カード・紙片など)を見せると反応します。Contorol”の画面を確認しながら、対象物を動かすとより興味深く楽しめます。ボイスコマンド「2」で終了します。このように、サンプルプログラムをユーザーに使わせて、「トラッキングテストには、それなりの環境も必要ですよ・・」と、そっと教えてくれるデアゴさんの戦略でした。ま、理にはかなってますが・・・・・オリジナルプログラムを作製する前に、サンプルプログラムで「トラッキング」を動作させ、オペレーションなどの要領をマスターしておきたいですね。ないと、作製したプログラムをどうチェックしてよいのか判断が付きにくい事も考えられます。(2007/3/8)■プログラミング(2)「警報システムを作ろう」CMOSカメラの付いたID-01で、少し実用的なオリジナルプログラムをVCLEで作ってみましょう。このプログラムは、「画像のトラッキングエリアに何か変化が起きる(賊が写る)とアラーム音が鳴り、変化がなくなると静かになる」というものです。本来、警報の機能とすれば鳴り続けた方が良いのですが、うるさいので静かになるようにしました。基本的なプログラムの作り方は『週刊myRobotを作ろう(47)』で解説しましたので細かな説明は省きます。●Outlineエリアに追加まず「Outline」エリアの「行動」を1つ追加して、出来た「Behavior1」の名前を、Properties欄で「Tracking」に変更します。同じように「手続き」も1つ追加して、出来た「Procedure1」の名前を「Init」とします。このように項目名を解り易い名前に変更しておくと、後でチェックが楽になります。以上の処理で「Main」「Tracking」「Init」の3つのエリアが出来ました。それでは各エリアの中身を作っていきましょう。●”Main”下段”Main”タブを選びます。初期処理を行う「Init」部を呼び出し(Callコマンド)、主な処理となる「Tracking」部をスタート(Startコマンド)させます。(画面クリックで拡大します)●”Tracking”下段”Tracking”タブを選びます。本処理の核となる処理部です。いってもコマンドは2つだけです。”WaitForコマンド”で、プロパティは”Senser”が”Tracking”、”Event”が”Area_Chage”です。この命令は、イベント(今回はトラッキング内のエリアが変更された)が発生するまで待ち受けています。発生とともに次の命令が実行されます。次のコマンドは”PlaySoundコマンド”で、プロパティのインデックス”Code6”の「警報音」がスピーカーから流れます。(画面クリックで拡大します)●”Init”下段”Init”タブを選びます。ヘッド部のタッチセンサーをアクティブ(TouchBehaviorコマンド)、そのプロパティのModeをOnにします。終了コマンドは設定していませんが、とりあえずこれで警報システムが出来ました。プログラム内容が間違いないかチェックしてOKなら、早速ためしてみましょう。ID-01の電源を入れ、イニシャライズ終了後、「こんにちは」(コンニチハ)、「ID-01?」(ナンデスカ?)と話しかけ、うまく応答するかチェックしておきます。うまく応答すればID-01の初期起動処理は準備万端整ったことになります。PC_Control”を起動させ、「接続するアイコン」をクリックしてください。数秒でB.T接続が完了して、ID-01からのライブ映像が映し出されます。VCLEからプログラムを「ロード」「コンパイル」「実行」させます。このとき気をつける事は、画面の中に動くものや、チラチラする影や光などが少しでも入っていると警報が鳴り続けてしまいます。出来れば単一の壁か、静物しかない照明器具が写り込まないような室内などが良いでしょう。最初の数秒は警報が鳴る可能性がありますが、直に落ち着きます。ID-01の視界の中を横切ったりすると警報が鳴り響き(それほどでもないですか・・)ます。モニター画面に、「横切ったもの」が四角い枠で表示されます。テストとして、ID-01の2号を写しておき、指を横切らせてみました。途端に警報音が鳴り響きますが、指を画面外に移したとたんに警報音は鳴り止みました。皆様は如何でしたか?左がノーマル状態、右が侵入者(指ですが・・・)有りの画面こんな簡単なプログラミングで「警報モニタリングシステム」が出来てしまいました。プログラムの終了は、今回だけVCLEの停止ボタンをクリックしてください。大事な事を忘れていました。VCLE上段にあるフロッピーのマークをクリックして、適当な名前を入れて保存しておきましょう。(私は<TrakingSenser01.vclike>という名前で保存しました)テスト用のプログラムですが、後で読み込んで色々アレンジしたりするなど、使い道は色々あります。参考のため「フィアルの置き場」に置いてあります。(2009/3/9)◇終了する仕組みを追加するプログラムを終了させるには、何かのアクションを行う必要があります。マニュアルや、先程の「プログラミング(1)」では、「胸のボタン」、「音声コマンド」などを用いてプログラム終了を行っています。色々な事例は後で応用がききますので、今回はヘッドタッチしてプログラムを終了させてみる事にしました。●Outlineエリアに追加Outlineエリアの「変数」を右クリックして「追加」を選ぶと、”Counter1”が出来ます。「行動」を右クリックして「追加」を選ぶと”Behavior1”が出来ますので、Properties欄で名前を”Touch”に変更します。上から「Counter1」「Main」「Tracking」「Touch」「Init」の5つのエリアになりました。それでは各エリアの中身を追加していきましょう。●”Main”「”Touch”エリアの処理をスタートさせる」を追加します。下段の”Main”タブを選びます。「Startコマンド」を1つ追加して、プロパティは”Target”を”Touch”に変更してください。(画面クリックで拡大します)●”Tracking”「”Counter1”の内容をチェックして値が”1”であれば”End(終了)コマンド”を発行する」処理を追加します。下段の”Tracking”タブを選びます。「チェック」フォルダーから「Counter」を選びプログラムエリアに追加します。1”に変更してください。”Thenアイコン”の中に、”Endコマンド”を追加します。Forコマンド」でヘッドタッチさせるのを待ち続け、タッチされると”Counter1”の値を”1”にして”Endコマンド”を発行させる」処理を追加します。下段の”Touch”タブを選びます。Forコマンド」を選び、プログラムエリアに追加します。Counter」を選び、追加します。「プロセス」フォルダーから「Endコマンド」を選び、追加します。追加した3つのコマンドについては、プロパティは初期値のままで結構です。(画面クリックで拡大します)●”Init”初期段階で「”Counter1”の内容を”0”にしておく」という処理を追加します。下段の”Init”タブを選びます。Counter」を選び、プログラムエリアに追加します。プロパティの”Value”を”0”にします。(画面クリックで拡大します)お疲れ様でした。以上で「警報システム」のプログラムは完成しました。前回のようにプログラムを保存しておきましょう。った動作確認のところをご覧下さい。イニシャライズkらプログラム起動まで全て同じように行ってください。うまく動作しましたか?ヘッドタッチを行うと、「これ大好きです」とお喋りした後ビープ音が鳴り、プログラムが終了します。警報が鳴り続けるようでしたら、画面のエリア内で何か変化している証拠です。大きなカレンダーの裏とか、大きめポスターなどを利用して、画面一杯になるように写してみてください。数秒で警報音は消えるはずです。うまくいったら、色々なところで試してみてください。条件が揃えば玄関先などに利用できますね。警報音と同時に「目を赤色LEDで点滅させる」など、皆様が色々アレンジされてみては如何でしょうか?ご使用にあたっては、自己責任でお願いします。参考として、「目LEDを光らせる」機能と、サイレン音にしたプログラムを<TrakingSenser01b.vclike>という名前で「ファイルの置き場」に置いておきました。「警報システム」の記事をご覧になったhisamiさんから、「効果音」の種類についてご質問がありました。確かにマニュアルには載っていません。Sound”のところで効果音の内容を案内していますよと、ご案内したのですが、そこでチョットひらめきました。別の方からは、「プログラムが難しいので、もっと簡単なのを・・・」とメールを頂きましたので、今回は超簡単プログラムにします。●Outlineエリアに追加Outlineエリアの「手続き」を右クリックして「追加」を選ぶと、”Procedure1”が出来ます。上から「Main」「Procedure1」の2つのエリアになり、プログラムエリアの下に同名のタブが出来ています。それでは各エリアの中身を追加していきましょう。●”Main”下段”Main”タブを選びます。行う「IProcedure1」部を呼び出し(Callコマンド)、それで終了させます。(画面クリックで拡大します)●”Procedure1”下段”Procedure1”タブを選びます。「音声」フォッルダーから”PlaySoundコマンド”を選び、プログラムエリアに追加します。効果音は全部で14個ありますが、とりあえずテストのため6つ位つくりました。各アイコンのプロパティを、”Incex”を”1(初期値)”~”6”まで順に変えて出来上がりです。(画面クリックで拡大します)●保存たったこれだけです。いつものようにプログラムを保存しておきましょう。(私は<PlaySound01.vclike>という名前で保存しました)参考のため「フィアルの置き場」に置いておきます。●動作確認プログラム内容が間違いないかチェックしてOKなら、早速ためしてみましょう。ID-01の電源を入れ、イニシャライズ終了後、「こんにちは」(コンニチハ)、「ID-01?」(ナンデスカ?)と話しかけ、うまく応答するかチェックしておきます。うまく応答すればID-01の初期起動処理は準備万端整ったことになります。PC_Control”を起動させ、「接続するアイコン」をクリックしてください。数秒でB.T接続が完了して、ID-01からのライブ映像が映し出されます。VCLEからプログラムを「ロード」「コンパイル」「実行」させます。2.「サイレン」~6.「警告音」までの効果音を再生してプログラムは終了します。?聞こえましたか?”PlaySoundコマンド”アイコンを8つ追加して、プロパティを残りのNo.7~14まで書き換えれば、全部の音を再生できます。宜しければ試してみては如何でしょうか?●応用編このプログラムの簡単に効果音が聞ける半面、何番の音が鳴っているのか分からない事です。そこで胸のディスプレイに何番の音が出ているか確認できるプログラムを作成してみました。「Loop命令」や「変数」を使っている関係で解説すると長くなります。ご要望があれば解説を行うという事にしたいと思います。参考に<PlaySound02.vclike>と<PlaySound02a.vclike>という名前で「フィアルの置き場」に置いておきます。後者は少しアレンジしてあります。宜しければお試し下さい。(2007/3/11~12)●電波の到達距離B.T接続しても、以外と距離が伸びない事に気が付きます。シールド機能があるからと考えられます。そこで思い切ってB.Tボードを袋から出して、到達距離がどの位延びるかのテストを行ってみました。Bluetoothの電波は2.4GHzの極超短波を使用しています。高さを稼ぐために、肩の部分(赤丸印)に仮付けしました。条件によって変わりますが、3~4m位までは画像が綺麗に受信できました。場合によってはもう少し延びるようです。1ヶ月ほどテストしていますが、今のところ壊れていません。テストされる方は、あくまでも自己責任でお願いします。今週の記事で作製した単純なサンプルプログラムを公開します。大したものでなくて恐縮ですが宜しければダウンロードしてご利用ください。データーはウィルスチェク済みですが、安全のため、ダウンロード後再度ウィルスチェックをされてからご使用ください。ダウンロードの時、何故か拡張子が”VCLIK”から”XML”に変わってしまうため、zip形式で圧縮してあります。データーは、右クリック「対象をフィアルに保存(A)」で任意のフォルダーに保存してください。保存されたデーターを解凍ツールで解凍してからご使用ください。ご使用にあたっては、あくまでも自己責任でお願いします。(New)(2007/3/12)■トピックス先程、おにゃにゃさんから届いた最新情報です。PC&PPC」でライブ画像をみる方法です。●セルフタイマーで撮った写真を見る方法まず、ID-01の電源をONにして、イニシャライズが終了するのを待ちます。次に、USBケーブルをID-01とPCに、それぞれ接続してください。数秒程待つと、PCがID-01の事を「USBデバイス」として認識してくれます。Pics(G)”という新しいドライブが出来ていました。(G)カッコ内の文字は、それぞれのPC環境によって異なります。その中に、セルフタイマーで撮った画像がしっかりと映っていまいした。大きさは(640×480ピクセル)で、画像種別はJPEGになっていまいした。このデバイスの全体容量は3Mバイトでした。ブレインボードには16MバイトのRAMと同容量のフラッシュメモリーがありますので、そのどれかの一部が使われているものと推察できます。画像一枚あたりの容量は30~50KBでした。実際にID-01からの撮った「2号」の画像です。Control”で見るよりは解像度が上がっているのが分かります。PC&PPC」ですが、CMOSカメラの映像をこのソフトでも見れるようになりました。Versionが2.8以上であれば大丈夫との事です。PC&PPCのWebサイト」で、最新版(3.0.0.0)を手にいれてください。実際に見てみると、時たま走査線が出てライブ映像そのものをみているような感じになります。Controlでは見えませんので、もしかするとわざと表示しているのかもしれません。走査線が出た時にキャプチャーしました。先週はロボザックのご紹介が遅れてしまいましたが、今週からは遅れない様にしたいと思います。いっても、今週8号は『左型の連結部分を組み立てる』ですが、相変わらず中途半端な部品ですので、そのまま保管ということにします。(今週は特に画像を載せません)先日、ロボット専門店に行って色々お話を伺ってきましたが、2足歩行ロボットの自律化はかなり難しいとの事でした。理由は、ペイロードなどの問題もあり、センサー類の設計、マイコンボードの設計・プログラミングなど、かなり専門的知識・技術が必要にになとの事でした。ロボザックは・・・という話はその時していませんが、私の中ではなんとなく(当初予定の11号で)終わってしまいそうです。■デアゴさんから重要なお知らせがあります。「ブレインボードOSが正常にインストールできない方/USBシリアル変換ケーブルでエラーが出る方へ(2007/3/13)」というタイトルで、デアゴさんのWEBサイト、「New」欄に掲載されています。該当される方は是非ご覧下さい。()2007/3/13)■あとがきブレインボード、CMOSカメラが搭載されてくると、バッテリーの減りが非常に気になります。「掲示板」でakkunさんが「電力消費性能について」において、各ボード搭載後の消費電力の数値を載せていましたが、実際にテストに夢中になっていると、いつのまにかバッテリーマークが黄色か赤くなっているのに気付きます。(現在はLogic側が一方的に減っています)しかたがないので、もう一台のID-01用の充電電池を併用して使う事にしました。テスト中にもう一組は充電という具合です。これから、走行用のモーターと腕のモーターが動き出したら、さらに減りが激しくなると予想されます。ID-01はかなり自律化ロボットに進化して面白くなってきた反面、なにかと費用がかさんできそうな予感がします。ブレインボードとCMOSカメラを付けてからは、バッテリーケースの蓋も開けたままで、eneloopの充電作業を繰り返す日々が続いています。安全な固定電源が欲しいと思う今日この頃です。次週からはいよいよベース部のホイールとタイヤが付いてきます。今週までのエキサイテングなパーツから見れば一見地味に見えますが、私は、例の「変芯問題」が絡む一大イベントと捉えています。結末はどのようになるのか、非常に楽しみです。今後とも宜しくお願いします。2台のロボットは、同じパーツを使用しているにも関わらず、2号機は認識率の悪い語句に対しては若干耳が遠いようです。確かに名前で呼ぶなど、IDを割り当てる事が可能ならば良いのですが、現在ではその機能はないようです。音声認識のROM内容を書き換える事が可能なら、新たな言葉を追加したり、英語版、イタリア語版などと差し替える事も夢ではないようなのですが・・・・ヘッドの穴に、カメラの蓋をつけられたようで、確かに色はあっていますね。私は現在、その穴から耳のLEDを出してテスト中です。そのうち記事にする予定です。おはようございます火曜日から体調を崩しており、コメントが遅くなってしまいました。ご指摘の、コマンド「1」については文章を修正しました。ありがとうございます。コマンド「1」でTracking停止後、コマンド「0」でりスタートは?を当方でもテストしてみましたが、結果は不可でした。・・・と思い、”SetTrackingColorコマンド”を”CMD_Zero”の中に移動させ、リスタートで動くようにしてみましたが、やはり不可でした。”Stopコマンド”の意味を見ると、「即時停止」とあり、「一時的な停止」<「停止」<「即時停止」の内、どの程度の停止なのか、色々考えていましました。体調が戻ったら、別のPGを作ってテストしてみようかと考えています。毎回、大変参考になる情報を提供したいただき、ありがとうございます。最初の命令「ID-01」と呼びかけで素朴な疑問が出てきました。ふみ様は2台の製作をしておられるようですが、2台並べて「ID-01」と呼びかけると、同時に応答することになるはずですね。それぞれに愛称を呼んで応答するようにプログラムできないのかなという疑問です。余談ですが、ヘッドの空いた穴は、残ったカメラのカバーを加工してつけました。大きさもほぼ同じでしたし、同色ですので違和感はありませんでした。