その7こんにちは、GRA父です。今日は、”NXTCamでボールをトラッキングできるか??”です。今回で、このシリーズも最終回となります。新型ボールは”MODE_A”、パルス変調モードでのトラッキングテストです。NXTCamとボールとの距離は、約10cm、ここで、新ボールの発光部分の色を覚えさせます。今回は、3番目のオブジェクトとして覚えさせます。この距離のまま、トラッキングを開始させます。»»続きを読む上の通り、新ボールの発光部分をトラッキングしました。この場所で覚えさせたのですから、トラッキングに成功するのは当たり前です。次に距離を5cmほど遠くしてみると、新ボールの発光部を1つだけ認識しました。トラッキングしたサイズは、かなり小さいですが、成功です。距離を伸ばしてみると、トラッキングできません!!。距離を戻していくと、約15cm前後ではトラッキングできたり、できなかったりします。登録時の10cmならば確実に、トラッキングは成功できます。発光が一番強いLED中心部のほぼ白色を覚えさせた場合は、このような結果になりました。LED周辺の色の場合は、全く無理でした。ラスト、電源モニターにもなっている赤色LEDの色では?。これは、結構な距離(40cmぐらい)までトラッキングできましたが、新ボールの後ろにGRA・CAHN!のGK(ボディー色:赤)を置くと・・・・。GKがでっかく認識されてしまい、新ボールは判らなくなりました。-------GRA父の結論!!------標準装備のレンズのままでは、通常使用する光センサーのような使い方のボール検出センサーとしては、使用できません。!!但し、近接センサとして使うなら仕様できるかも・・・と思います。元々の趣旨は、個人的な興味でインプレッションを始めましたので、別売りのIRレンズは購入しておりません。今後も購入予定はないので、すいませんがボールトラッキングテストは、ここまでです。ボールを追跡するためにNXTCamを購入検討されている方がいましたら、IRレンズも同時に購入された方がいいかもしれません。私はテストしてないので、使えるかどうかは、自己責任でお願いします。以上、最終回でした~。その6こんにちは、GRA父です。本業が忙しくて、ちょっとさぼっていました。前々回の”その4”で、”次回は、このNXCサンプルプログラムが何を表示しているのかの解析と、通信仕様がどうなっているのかをUPしますね。”と宣言しておきながら、他のことをしてしまいました。今日こそ、宣言内容をやってみます。通信仕様の概要を説明します。NXTCamからNXTへ送られてくるのは、以下の通りです。・オブジェクト番号に該当し認識したオブジェクト数それ以外にもコマンドで、赤色/緑色/青色のカラーマップデータをもらうことができます。»»続きを読むNXTCamviewでのトラッキング表示の場合は、X座標とY座標以外に、高さ/長さ/面積が表示されていたと思いますが、NXTには、送られてきません。従って、高さ/長さ/面積は、NXTCamviewが内部で処理した結果を表示しているものであることが判ります。これらの値が必要な場合には、プログラムで計算式を組んで求めなければいけません。”その4”で、NXTのLCDで表示していた内容を下の画像で説明しておきました。その4で紹介したサンプルプログラムも含め、参考にして下さい。あと、動かした感想からですが、NXTを起動させて11~13秒は、初期化しているのか、上のような表示はしませんでした。いうことは、その間は、ロボットが動かないこととなります!!。LCDでの表示をしないのであれば、もう少しは速くなります。(ほんの数秒ですが短縮します。)その他として、登録オブジェクトを最大数である8個登録している場合は、一巡するのに結構、時間がかかりますので、あまり登録しない方が良いみたいです。最後に、NXTCamを実際に使おうとしている方へ、ひとこと!!。NXTCamを使う場合、マルチタスク機能を搭載していないCPUでは、かなり負担が大きいと思いますので、注意して下さい。使うのであれば、登録するオブジェクト数は、2個が限界かもしれません。認識したいオブジェクトを必ず、1番目に登録しないと、読み込み中にロボットは止まります。NXTユーザーの場合は、マルチタスク機能がありますから、それを有効利用して下さい。それでも、4個が限界かと・・・。あとは、NXTCamを何の認識に使うかですけどね。次で”NXTCamインプレッションシリーズ”は、一旦、終わりにしようと思います。これ以上は、NXTCamをI2C接続するCPUによって違うので、現時点では書きようがありません。(NXTでNXCのみのことなら書けますが・・・。)それと言い訳になりますが、本業が忙しくなってきましたし。次回(=シリーズ最終回)は、前にコメント返信で書いたとおり、”ボールのトラッキング”です。その5こんにちは、GRA父です。今日(既に昨日になってしまいました。)は、GRA・CHAN!達と一緒に埼玉大に行ってきました。”ロボットと未来研究会”のご厚意で、新フィールドを借りることができ、GRA・CHAN!の空き時間で、新型FWを借りて、実験をしてみました。NXCでのプログラムはまったくしてませんし、もともと、そんなつもりは無かったので、NXTサンプルプログラムもないので、YのPCにインストールされているNXTcamviewのみでの実験です。今回は、いつもと違い、助手をYとNがしてくれました。NXTcamにUPLOADしている1番オブジェクト(家での青=カッティングシート)、2番目のオブジェクト(家での黄色=発泡塩ビ板)のまま、トラッキングできるかテストしてみました。»»続きを読む各ゴールがNXTcamの映像内に入るように、カメラ高さを調整し、その後、トラッキングしてみました。2番オブジェクトである黄色は、黄色いゴールをそのまま認識できました。(もちろん、余分な箇所も認識しましたが・・・。)では、1番オブジェクトは?・・・・全く認識せずです。確かに見た感じで、色が異なるようにも見えましたので、当然の結果ですかね。1番に青色のゴール色を覚えさせ、トラッキングできるかテストします。異なる所で、ゴール色を覚えさせ、写真のように、ロボットを配置し、NXTCamviewの”capture”で静止画を取り込みます。その後に”Tracking”ボタンを押します。うまく、トラッキングできました。続いて、黄色ゴール前にFWを置き、同様にトラッキングしてみました。カメラをしっかり固定してないので、静止画が変な方向を見ていますが、映像内に青ゴールが入っていましたので、これも成功です。いろんな所でトラッキングテストをすると、それなりのトラッキングはしますが、やはり光が当たらない部分は、トラッキングはしづらい傾向があるみたいです。そのまま、フィールド中央で、手でロボットを回してみて、トラッキングすると、黄色いゴールと、青いゴールをしっかり認識し、それ以外の壁=黒色は、認識しませんでした。ゴールの真上に同色系を置くと、どうなるかというテストしてみることにします。同色系は、認識します。いうことは、映像内に同色系があると認識してしまうので、どこから見ても、衣服や背景が極力映らないような、カメラ位置をキープしないと、まずそうです。今回のトラッキングテスト結果から考えると、前よりさらに先進的に”ゴール色判定はできそう”です。今回の家と現場との青色違いの件があるように、事前に覚えさせておくのは難しいそうです。色を覚えさせる行為が、当日、会場のフィールド単位で必要だろうと思います。リーグ戦の場合は、基本的にフィールドは変わりませんから良いのですが、トーナメントの場合は、フィールドが、かわりますから・・・です。それと、ノード/ブロックは、ジャパンオープンと違い、1日で実施しますので調整時間も、1時間もないですから、調整する時間も練習しておく必要も感じます。NXTcamは、価格の割には”かなり優秀”といえるでしょう!。今回、YとNが助手してくれたおかげで、NXTCamviewの操作方法と、NXTcamの取り扱いをついでに教えられたのは、ラッキーでした。最終的には、プログラムでしょうか・・・。その4こんにちは、GRA父です。今日は、NXTとNXTCamを接続してみます。いいつつ、実は偶然にも、サンプルプログラムを動かしてみましたら、そのまま利用できたので、何の理解もせずにテストしてみます。(プログラムは、一切理解してません、悪しからず・・・。)前回、黄色いゴールの代わりとして使用した発泡塩ビ板を利用します。»»続きを読むNXTCamから発泡塩ビ板までの距離は約110cmです。NXTCamは、上の写真のように新型FWへ、逆さまに取り付けられています。(Nが新型FWへ適当にNXTCamを取り付けていた場所に、そのままつけています。)まず、NXTCamviewで、”capture”で静止画を取り込み、”Tracking”を実施します。前回、2番オブジェクトとして黄色を記憶しているので、今回は、RGB色彩率はそのままです。下の写真が、NXTCamから見た静止画と、トラッキング状況です。静止画の映像は、NXTCamの取り付け通り、逆さまです。それと、何の設定もしていないので、発泡塩ビ板以外も、2番オブジェクトと認識しています。今回は、認識テストではなく、NXTとの接続テストですから、RGB色彩率は無視して、いよいよNXTとNXTCamを接続してみます。今回、利用しているサンプルプログラムは、”nxtcam_test”というNXCのプログラムです。このプログラムは、LCDにNXTCamviewのトラッキング画面と類似した描画も表示する優れものでした。四角い図形が、認識したオブジェクトで、見ていて判った範囲では、右横の数値の”n:17”が、17回目の認識結果で、下の方にある”clr:1”が2番オブジェクトを認識していることを意味しています。NXTCamviewと異なり、viewの1番は、このプログラムでは”0”となるみたいです。新型FWを発泡塩ビ板の方向とは異なる向きに変え、NXTのLCD画面を見ると、先ほどの写真のような図形描写と数値は現れず、下の写真のようになりました。V2.0”と、上に先ほどのトラッキング番号と思われる”n”が高速に表示しています。登録オブジェクトの認識は成功ですね。今日は、ここまでで~す。次回は、このNXCサンプルプログラムが何を表示しているのかの解析と、通信仕様がどうなっているのかをUPしますね。その3こんにちは、GRA父です。前回は、NXTCamにNXTのオレンジボタンの色を覚えさせました。今日は、その覚えた色を見つけることができるかを実験してみます。その前に、NXTcam仕様の説明を一つ。仕様では、トラッキングスピードが”30fps"となっています。second”=”フレーム毎秒”のことです。1フレームとは何かといいますと、1枚の静止画(=写真または絵)と考えていいです。動画とは、パラパラ漫画のように、静止画が何枚も集まったもので、TVアニメを例にすると、だいたい、1秒間に8枚程度の静止画を表示させて、動いているように見せています。NXTCamの”30fps”とは、1秒あたり静止画として30枚、撮影して認識しているという事になります。秒にもどすと、”1/30秒”ということです。人間からみると、高速な認識をしていますが、瞬時判断が必要なロボットの場合は・・・使う方のプログラム次第ですね。皆さんの目で例えると、目の前に黄色いボールがあるとします。この黄色いボールを取らなければいけないとします。ボールが右横から左横に転がっていった場合、人はボールを取るために右横から左横に目または体を動かしてボールを追います。この追いかける行動(=追跡)を、トラッキング(Tracking)といいます。NXTCamに戻すと、目で見えている風景=映像または静止画、黄色いボール=黄色いオブジェクト(=または黄色のモノ)に置き換えて下さい。日が経っていますが、できるだけ前回と同じ環境になるようにしています。カメラから約30cm離れた位置に、NXTを置いて、まず、NXTCamviewの”capture”で静止画を取り込みます。その後に”Tracking”ボタンを押します。»»続きを読むそうすると、”Tracking”モニターが現れます。NXTCamが覚えた色が、カメラ映像の中にあると、その色と同色部分を認識して、認識できた範囲を表示させます。写真の通り、”Tracking”モニターに茶色のモノが表示されました。これが、NXTボタンを認識した結果です。認識が成功すると、認識した結果である茶色のモノの下に、カメラ映像内での座標が黄色の文字枠で表示されました。(見にくくてすいません。後から、黄色文字を黒にすることができました。・c=1:色を覚えさせた1番オブジェクトであること・x=124、y=66:モノの上部方向の座標が(124,66)・W=7:このモノの横幅が”7”であること・H=4:このモノの高さが”4”であること・A=28:このモノの面積が”28”(=7×4)であることと表示しています。モノの位置は、ほとんどかわりませんが、茶色のモノの形状や情報は、刻一刻と変化しており、見ていた限りでは、同じ情報ではありませんでした。なんとか認識できたようです。サッカーチャレンジをしている以上、今年から変更になった”新フィールドのゴール色の判定に使えるのでは?”と思っていると思いますので、家にあった黄色の発泡塩ビ板をNXTの後ろに置いてみました。(青色はやっていません。)距離は、カメラから約110cmです。2番面のオブジェクトとして、NXTCamに登録しました。その後、”Tracking”してみますと、緑のモノとして認識できました。”じゃあ、2オブジェクト同時は?”と思い、黄色のゴールを塞ぐように、NXTも映像内に置いてやると、NXTボタンもゴール色の黄色も認識できました。力尽きました・・・今日は、ここまで勘弁です。今回の実験であるNXTCamViewのトラッキング判定を体感しますと、ゴール判定用として、”使えそうな予感”は感じました。照明の照度の強弱、カメラとオブジェクトの位置関係(=角度及び距離)、新フィールドや大阪ローカルルールフィールド上でのテストではなく、いわゆる簡単なテスト結果ですから、本当に本番に通用するかは辛口評価すると、現時点、疑わしい気がしてなりません。2009年ジャパンオープンの会場であった”京セラドーム”のように複数の方向から照明が当たる環境ではどうなるか予想ができません。各自でロボットに取り付ける位置を決めて、詳細なテストを繰り返し行い、初めて使えると各自での判断が必要であるような気がします。”基本的に使う”と自身で判断されたのであれば、会場によっては、コンパスセンサーのように”使わない”勇気も必要になるかもしれません!次回は、いよいよ、NXTとNXTCamを接続してみます。サンプルプログラムも未解読です。その2こんにちは、GRA父です。自分の時間が取れました。今日は、NXTCamViewを使って、オブジェクト判定をしてみたいと思います。これから、徐々に難しくなっていきますね。(GRA父は、英語解読が難しい!!)先に念押ししておきますが、画像処理の基本とは、物や形を認識するもの(=できるもの)ではありません。仮に、画像処理判定の結果が”物”であると判定できるとします。これは、映像内の色変化を捕らえて、その色彩変化を、いくつもの固まりにして”一つのもの”として認識できるように覚えさせ、それを1つのパターン(=オブジェクト)とします。それと同じことを何パターンも覚えさせ、その覚えているパターンとカメラ映像内のパターンが一致したとき初めて”物”と判定しているのです。この認識判定方法を、”パターンマッチィング”といいます。イメージ的には、刑事ドラマで指紋照合をする場面があると思いますが、それと全く同じです。NXTCamは、仕様を見る限り、高度なことが出来るわけではなく、基本の画像処理しかできません。従って、物を判定するものではなく、オブジェクト=色彩率判定(覚えている色と映像内の色が同色かどうかを判定するパターンマッチィング)をするものであることをまず、覚えておいてください。NXTCamの仕様では、8つ色を覚えることができ、その色がカメラ映像にあるかどうかを判定できるとのことです。写真のようにNXTCamと今回の被写体であるNXTを配置します。NXT~NXTCamまでの距離は約15cmです。»»続きを読む配置後、NXTCamViewの”capture”で、静止画を取り込みます。その後、静止画像の中で、覚えたいオブジェクト(=覚えさせたい色)をマウスで選ぶと、そこの同色認識された部分が黄色く点滅を開始し、左横の”colors”ウインドーの赤/緑/青のバー(RGB色彩率)が、黄色点滅している色をRGBで表現します。今回のテストターゲットは、NXTの中央部にあるオレンジボタン(以下、NXTボタン)としますので、静止画像のNXTボタンをマウスでクリックしてみます。NXTボタンの一部だけ黄色点滅しました。出来るだけ、もっとNXTボタンを認識できるようにRGB色彩率の各バーをスライドさせていくと、だんだん黄色点滅の範囲が広がっていき、場合によっては、映像内にある同色系までも黄色点滅し始めました。再調整して、出来るだけ、NXTボタンのみを認識させたのが下の写真です。(これが、先日、がんばってピント調整した映像です。ピンぼけではありません)ちょっと右隅のバックにある、同色に反応していますが、この状態が一番、NXTボタンを認識しているので、1番目のオブジェクトとして覚えさせます。覚えさせ方は、2つ方法があるらしく、NXTからのプログラムでRGB値を指定して命令する方法と、このNXTCamViewを使って覚えさせる方法です。普通は、NXTCamViewで覚えさせる方法ですので、NXTCamが繋がっている状態で”colors”の”upload”を押すと、NXTCamにRGB色彩率を送り、覚えさせるみたいです。本当にNXTCamが覚えたかは、NXTでプログラムしてみないと?ですけど・・・(道程は、はるか遠い・・・・)それと、いろいろNXTCamViewをさわってみましたが、オブジェクトのサイズを覚えさせる、または指定するようなコマンドが見つかりませんでした。いうことは、色のみ??の判定のようです。8色は異なる色でも、全く同じ色でも登録できるようです。(まあ、当たり前と言えば当たり前。)ROBOLAB風に言うと、8個のコンテナがあり、その中身は自由に決められるということです。何の取説も読まずに、さわってやってみましたので、これで本当にあっているかは??です。このNXTCamインプレッションは、いろいろな実装テスト結果までUPしたら、長編小説化しそうですね(もしかしたら、もっと詳しく書いたら、一冊、本作れるかも!)。その1こんにちは、GRA父です。今日は長らく、見て見ぬふりをしてきたNXTCamでもさわろうということで、やってみましました。本当は、”NXTCamV2きた~!”シリーズでUPするつもりでしたが、時間が経過しすぎたので、題名を新たに”NXTCamインプレッション”シリーズに変更しました~(・・・どうでもいいか・・・)。考えたら、何の設定もしていない(・・・当たり前か)で、まず、PCに接続できるようにUSBドライバーをダウンロードして、インストール?、インストールできない!!。このUSBドライバのインストール中にエラーが発生・・・。dllを一旦、PCから消去し、再インストール・・・また、エラー・・・。何度もやってもエラーのオンパレード。”XPって対応できないのか?”とNXTCamのHPで、1時間ほど、英語と格闘してみましたが、問題なさそう・・・。»»続きを読む”う~ん、できない・・・。”と悩んで、さらに1時間経過し、ラチがあかないので、同じXPである”Y”用PCにインストールしてみると・・・・問題なくできました・・・。逆に、何故だ~と思い、いろいろPC設定やXPバージョンなど比較して見ても、違いがない。あきらめて、YのPCでやることにしたはいいが、教育上の問題で、ネット接続できないようにしているから、もう一度、自分のPCでネット接続、NXTCamViewrをダウンロードし、メモリー経由でYのPCへインストール。これで、NXTCamとの接続環境は整いましたが、ここまでで約3時間ほど消費。やる気がなくなりましたが、今度はいつできるか判りませんので、しょうがなく、NXTCamとPCを接続してみます。本来は、NXTと接続するものですが、NXTCamでないと、カメラ映像が見えません。ピントが合っているか確認しないと、この先には進めないからピント合わせをするために、接続しますが、Viewrには、リアルタイムビュー機能がない!。しょうがないので、キャプチャー機能で、映像を取り込むことに・・・。キャプチャーする時間が長い!。PCが若干古いので仕方ないことですが、すべて表示しきるまで、約5秒かかる!。しょうがないと思って、取り込んだ静止画像を見ると、ピントが合っていないので、なにを写しているのか、全く判らん状態。あきらめかけた所で、撮影対象としていたNXT本体の姿らしきものが見えだした。繰り返して、1時間後、若干ピンぼけですが一番ピントが合っていると思われる位置で、最終的にあきらめました。画素数が少ないので、ピンぼけ状態が正式映像だろうと解釈しました。システムも扱いますが、数百~数十万以上するシステムと比較するのはおかしいですが、あまりにも、ここまでの過程、手間がかかりすぎる!!。リアルタイムビュー機能だけでもあれば、そんなに苦労しないのですが・・・。今日は、ピント合わせまでで終了です。時間がある時に、また、さわりま~す。このペースだと、簡単なプログラムを作って、実装テストするまで、相当時間がかかりそうですね・・・。あと、明日、GRA・CHAN!達が帰ってきます。これで来週以降から、やっと2010年度に向けて本格的に活動を再開します。脱力感と疲労感に襲われているGRA父でした。[Wed]NXTCamV2きた~1!こんにちは、GAR父です。今日、NXTCamV2が届きました。届いただけですが・・・・。サイズはHPで判っていましたが実物を見ると思っていた以上に小さいですね。USBコネクターが小型であることをすっかり忘れていました。小型USBケーブルは、家にないので接続できないです(涙)。ファーストインプレッションは、盆休み中のお楽しみにとっといて、まずは、マニュアルの読解から・・・・。くろック最新記事お久しぶりです&ありがとうございました。(09/09)ありがとうございます。BlogYのGCR日記(私の2015年の活動ブログです。)でんぐり返ししましょうか?(注:ロボットは関係ないblogです。BeigeHeart.。