スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

キネクト無双 #1

遅くなりましたが、MakerFaireTokyo2014で出展した"キネクト無双"の動画と解説をUPします!

★ 概要

犬型ロボットがアフロ人形を次々となぎ倒すというモノです。
KinectとOpenCVを使ってアフロを画像認識し、アフロ人形が倒れたことを検知して叫び声を上げさせる仕様。全部倒すと"You win"という声と勝利のBGMが流れます。

★ 詳細
KinectMuso.jpg
左上にKinectがあり、斜め下を見下ろしています。下のノートPCで処理を行い、出力画像をモニターに映し出しています。アフロを検出して赤い丸をモニター上に表示しています。ちなみに人形を動かすとリアルタイムに追従します。右にある黄色い物体が犬型ロボットです。中央にあるAndroidタブレットを用いてBluetoothで遠隔操作します。人形が倒れているのかいないのかは、アフロの高さを検出して自動判定しています。
画像処理はPCソフトウエア、遠隔操作はAndroidアプリ、ロボットはハード改造とファームウエアから構成されていますので、1つずつ解説します。

★ PCソフトウエア
KinectMuso2.jpg
Visual Studio C++を使って書きました。まず、アフロを検出するためにOpenCVを利用します。HSV変換を行い赤色のみを抽出、Hough変換を行い丸い形のモノのみを抽出。複数の赤丸を1つ1つのアフロと認識させるためにラべリング処理を行います。このままでは3次元座標位置が分からないのでKinectの登場です。Kinectは赤外線を利用したDepthセンサーを有しているため、物体までの距離を検出することが可能です。この距離とカメラ2次元座標の位置から、実空間の3次元座標が計算できる訳です。ただしKinectは傾いているため、Knectの加速度センサーから得られる角度などを使って、先ほど得られた座標に回転行列を掛け合わせます。このようにすることで、アフロの床からの高さが分かり、人形が倒れているか倒れていないかを自動判定できる仕組みです。
Bluetooth通信に関しては.NETを使っていないためちょっとややこしく、Win32APIを使ってシリアルの受信を行いました。マルチスレッド化して非同期で動かしています。

★ Androidアプリ
device-2014-12-29-192532.png
Eclipseを使いJAVAで作成しています。BluetoothChatというGoogleのサンプルアプリを改造しました。UUIDを変更し、XMLにボタンや画像、テキストを追加して画面レイアウトを構成しています。

★ ロボットのハードウエア
131102_ChaserRobot.jpg
ロボットはタミヤのロボクラフト"メカドッグ"を改造して作っています。
ユニバーサル基板上にマイコン、Bluetooth通信用USBドングル、Bluetooth-UART変換モジュール、モータードライバ、サーボモーター、フォトリフレクタ、レギュレーターIC、昇圧DC-DCモジュール、電池を搭載したモノを追加しました。素のメカドックは本体に付いているスイッチで前に進むか後ろに進むかしかできません。Bluetoothとモータードライバを使って、遠隔操作で前進と後退とストップ、ブレーキを出来るようにしました。またサーボモーターを駆使することにより、メカドッグの片足を浮かせ、回転させる動作を加えています。また前と後ろにフォトリフレクタを付け、黒い線を検出できるようにしています。中央にLEDがありますが、これは使用していません。前回はこの赤外線LEDを発光させ、Kinectで生の赤外線映像を取得していましたが、今回はKinect本来のDepthセンサーを活用しています。なお、アフロ人形は赤丸の発泡スチロールを頭にかぶっているだけで、電気的な仕掛けはありません。

★ ロボットのファームウェア
マイコンはArduino UNO上で書き込みを行い、引っこ抜いたモノを使っていますので、ソフトはArduino IDEを使って書いています。Bluetoothで受信したコマンド通りにモーターを動かしています。コマンドは前進、後退、停止、ブレーキ、回転移動、サーボ回転です。また、フェールセーフのため、前後のフォトセンサーで片側で黒を検出したら逆方向に進む、両方検知したら停止させるという自動制御も組み込んでいます。

★ 感想
当初はロボットが自動で人形を倒す予定でしたが、間に合わな・・・いや、MakerFaireに来場されている人たちに直接動かして体験してもらおうという趣旨で、Androidタブレット操作に仕様変更しました。おかげで子供たちにも人気で、たくさん遊んでくれました。また倒れると悲鳴を出すという分かり易さから、子供にも外国の方にも言葉で説明することなく理解してもらえ、笑顔をたくさんいただきました。


スポンサーサイト

comment

管理者にだけ表示を許可する

03 | 2017/04 | 05
Su Mo Tu We Th Fr Sa
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
プロフィール

エレクトリックバカ

Author:エレクトリックバカ

ポケコンでプログラミングに目覚め、PICマイコンで電子工作に希望を抱き、来たるべきUGDの時代を夢見て眠る。
そんな うだつが上がらないサラリーメン。
先生、電子工作はおやつに入りますか?




Electric Baka

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。