OpenKinect

openni に移行する人が増えているようだ。

CL NUI Platformというものも。

http://www.drdobbs.com/windows/229000752

libfreenect は Apache 2.0 と GPL 2.0 のデュアルライセンス。

Ubuntu 9.04にて

since 2010-12-01

センサー単体版を購入すれば PC につなぐ USB 変換ケーブルが手に入る。XBox 360 セットを買ってしまうと手に入らないらしい。

http://openkinect.org/wiki/Getting_Started

Ubuntu 9.04 (32bit) で Wiki のとおりで動いたので記録しておく。

 sudo apt-get install cmake libusb-1.0-0-dev libglut3-dev
 git clone https://github.com/OpenKinect/libfreenect.git
 cd libfreenect/
 mkdir build
 cd build/
 cmake ..
 make
 sudo bin/glview

CMake は marsyas で使われていた。

1280 x 480 というウィンドウを開くので画面の狭いマシンで実行すると辛いかも。

glview

2010-12-16

glview.c ソースの構成:

  • 基本的には glut アプリケーション
  • main() で直接 GLUT の関数を叩いておらず、freenect の初期化をして、freenect_threadfunc() を pthread で走らせて、最後に gl_threadfunc() を呼んでいる。
  • gl_threadfunc() で一般的な glut の初期化とメインループを実行。
  • freenect_threadfunc() でrgbとdepthのコールバックを設定。グローバル変数 die が false である間 kinect からのデータの取り込みを繰り返す。tilt_state と accel はコンソールに出力。
  • rgb_cb() コールバック関数では mid と back のバッファをswapしながら取り込みを行う。
  • depth_cb() コールバック関数では depth[] の値を t_gamma[] 配列でマッピングし、奥行き値 pval を得る。さらに可視化用の RGB 値に変換して depth_mid[] に格納。
  • DrawGLScene() コールバックは glutDisplayFunc() で指定された描画関数。front と mid のバッファを swap しながら depth と rgb を OpenGL テクスチャとして描画。
  • keyPressed() コールバックは glutKeyboardFunc() で指定された入力ハンドリング処理。
    • ESC (key==27) : プログラム終了処理
    • 'w' : Kinectセンサの角度を上向きに回転。freenect_angle を1ずつ増やし、30を上限に。
    • 's' : Kinectセンサの角度を水平に(freenect_angle を 0 に)
    • 'f' : RGBとIRの画像入力(表示)モードのトグル
    • 'x' : Kinectセンサの角度を下向きに回転。freenect_angle を1ずつ減らし、-30を下限に。
    • '1' : LED_GREEN
    • '2' : LED_RED
    • '3' : LED_YELLOW
    • '4' : LED_BLINK_YELLOW
    • '5' : LED_BLINK_GREEN
    • '6' : LED_BLINK_RED_YELLOW
    • '0' : LED_OFF

<html> <hr /> <div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;margin:0px 12px 1px 0px;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B003T9VDJQ/r4wh-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/31wUYDad5yL._SL160_.jpg" alt="Xbox 360 Kinect センサー" style="border: none;" /></a></div><div class="amazlet-info" style="line-height:120%; margin-bottom: 10px"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B003T9VDJQ/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">Xbox 360 Kinect センサー</a><div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/B003T9VDJQ/r4wh-22/ref=nosim/" title="Xbox 360 Kinect センサー" target="_blank">amazlet</a> at 10.12.12</div></div><div class="amazlet-detail">マイクロソフト (2010-11-20)<br />売り上げランキング: 2<br /></div><div class="amazlet-sub-info" style="float: left;"><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B003T9VDJQ/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div></div><div class="amazlet-footer" style="clear: left"></div></div> </html>

openkinect.txt · 最終更新: 2011/02/04 10:22 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0