キネクトによるエージェントの操作
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
]
Start:
//&engpage("Controlling agent with Kinect");
Up:[[Tutorial]] Previous:[[眼球運動]] Next: [...
----
#contents
*キネクトによるエージェントの操作 [#g847337f]
※このチュートリアルはv2.1.0以降で動作します。
キネクトを使ってSIGVerseの人間エージェントの体の動きを操...
※すでにOpenNIがクライアントpcにインストールされていて、サ...
**OpenNI動作確認バージョン [#w7344684]
-OpenNI Stable Build for Windows x86 (32-bit) v1.5.2.23 D...
--ダウンロードは[[こちら>http://www.openni.org/openni-sdk...
-- (※ 最新版でも動作すると思いますが,正式な動作確認は未...
-PrimeSene NITE Stable Build for Windows x86 (32-bit) v1....
--上と同じページのOpenNI Compliant Middleware Binariesを...
-PrimeSense Sensor Module for OpenNI Version 5.1.0.25
--ダウンロードは[[こちら>https://github.com/avin2/SensorK...
**クライアント側の準備 [#g906fc36]
キネクトにより骨格を抽出するサンプルプログラムを利用し、...
***ダウンロード [#a9563850]
[[KINECTサービス]]からSIGNiUserTracker_<version>.zipをダ...
//#ref(SIGNiUserTracker.sig)
//ソースコードは[[こちら>#j4c23122]]
***インストール [#m9903252]
ダウンロードしたzipファイルを展開しSIGNiUserTracker.sigを...
C:\Program Files (x86)\OpenNI\Samples\Bin\Release
(※Windows7 64bitの場合)
この状態でクライアントpcにキネクトを接続しておけば準備完...
**サーバ側の準備 [#y2f178b2]
コントローラで関節データを受信し、関節を回転させます。
***コントローラ [#w4aca122]
まずコントローラを作成します。
$ emacs kinectController.cpp
#gist(t-inamura/838ce199f60e0c2d7772);
このコントローラではキネクトからデータを受け取り関節を回...
コンパイルします。
$ ./sigmake.sh kinectController.cpp
// ***他のモデルのコントローラサンプル [#ra789b97]
//-[[Robot-nii.xml>キネクトによるエージェントの操作(ロボ...
//-[[Man-nii-v2.xml>キネクトによるエージェントの操作(Man-...
***世界ファイルの作成 [#wd8a8474]
次に世界ファイルを作成します。
$ emacs kinectWorld.xml
kinectWorld.xml
#highlight(xml){{
<?xml version="1.0" encoding="utf8"?>
<world name="myworld2">
<!--重力の設定-->
<gravity x="0.0" y="-980.7" z="0.0"/>
<!--エージェントMan-niiの設定-->
<instanciate class="Man-nii.xml">
<!--エージェント名-->
<set-attr-value name="name" value="kinect_man"/>
<!--C++言語の指定-->
<set-attr-value name="language" value="c++"/>
<!--オブジェクトファイルkinectController.soの指定-->
<set-attr-value name="implementation" value="./k...
<!--動力学演算をfalseに設定-->
<set-attr-value name="dynamics" value="false"/>
<!--エージェントの位置(x,y,z)-->
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="60.0"/>
<set-attr-value name="z" value="0.0"/>
</instanciate>
</world>
}}
人間のみが登場するシンプルな世界ファイルです。このサンプ...
**実行 [#scf358ac]
それでは実行してみましょう。
***SIGVerse起動 [#rebb6851]
まずシグバースサーバを起動します。
$ sigserver.sh -w ./kinectWorld.xml
次にSIGViewerで起動したサーバに接続します。接続すると人間...
***サービスの登録 [#x7693c87]
SIGViewerにサービスを登録します。左上のメニューのService...
#ref(キネクトによるエージェントの操作(v2.0系)/SIGNi_1.PNG)
すると以下のようなウィンドウが立ち上がるのでAddボタンを押...
#ref(キネクトによるエージェントの操作(v2.0系)/SIGNi_2.PNG...
Service listにSIGNiUserTracker.sigが登録されたらOKボタン...
次にメニューのService→Startをクリックし、先ほど登録したSI...
キネクトの深度画像ウィンドウが立ち上がり、サーバ側で
[SYS] Service: "SIGKINECT" is available
と表示されればキネクトサービスの立ち上げに成功です。
それでは"START"ボタンを押してシミュレーションを開始してみ...
キネクトの前で体を動かすと骨格が検出され、人間エージェン...
#ref(キネクトによるエージェントの操作(v2.0系)/SIGNi_3.PNG...
**ソースコードのコンパイル [#rc3b6fdb]
次にクライアント側ので動くKINECTサービスのソースコードを...
***ソースコード取得 [#j4c23122]
[[KINECTサービス]]からソースコードを取得します。
//#ref(SIGNiUserTracker_1-0-0.zip)
展開したフォルダの中に入っているSIGNiUserTrackerフォルダ...
C:\Program Files (x86)\OpenNI\Samples
***コンパイル [#j1513ff2]
次にSIGNiUserTrackerフォルダの中のソリューションファイル...
※バージョン1.0.0の場合はコンパイルにはboostライブラリのイ...
boostのインストール方法とVC++の設定方法は省略します。
VC++が起動したらソリューションエクスプローラの中のソリュ...
C:\Program Files (x86)\OpenNI\Samples\Bin\Release
拡張子を.exeから.sigに変えることによりSIGViewerに登録可能...
*Old Version [#g8ea554a]
-[[キネクトによるエージェントの操作(v2.0系)]]
-[[キネクトによるエージェントの操作(v120330, v1.4.8)]]
#highlight(end)
----
Up:[[Tutorial]] Previous:[[眼球運動]] Next: [[...
#counter
End:
//&engpage("Controlling agent with Kinect");
Up:[[Tutorial]] Previous:[[眼球運動]] Next: [...
----
#contents
*キネクトによるエージェントの操作 [#g847337f]
※このチュートリアルはv2.1.0以降で動作します。
キネクトを使ってSIGVerseの人間エージェントの体の動きを操...
※すでにOpenNIがクライアントpcにインストールされていて、サ...
**OpenNI動作確認バージョン [#w7344684]
-OpenNI Stable Build for Windows x86 (32-bit) v1.5.2.23 D...
--ダウンロードは[[こちら>http://www.openni.org/openni-sdk...
-- (※ 最新版でも動作すると思いますが,正式な動作確認は未...
-PrimeSene NITE Stable Build for Windows x86 (32-bit) v1....
--上と同じページのOpenNI Compliant Middleware Binariesを...
-PrimeSense Sensor Module for OpenNI Version 5.1.0.25
--ダウンロードは[[こちら>https://github.com/avin2/SensorK...
**クライアント側の準備 [#g906fc36]
キネクトにより骨格を抽出するサンプルプログラムを利用し、...
***ダウンロード [#a9563850]
[[KINECTサービス]]からSIGNiUserTracker_<version>.zipをダ...
//#ref(SIGNiUserTracker.sig)
//ソースコードは[[こちら>#j4c23122]]
***インストール [#m9903252]
ダウンロードしたzipファイルを展開しSIGNiUserTracker.sigを...
C:\Program Files (x86)\OpenNI\Samples\Bin\Release
(※Windows7 64bitの場合)
この状態でクライアントpcにキネクトを接続しておけば準備完...
**サーバ側の準備 [#y2f178b2]
コントローラで関節データを受信し、関節を回転させます。
***コントローラ [#w4aca122]
まずコントローラを作成します。
$ emacs kinectController.cpp
#gist(t-inamura/838ce199f60e0c2d7772);
このコントローラではキネクトからデータを受け取り関節を回...
コンパイルします。
$ ./sigmake.sh kinectController.cpp
// ***他のモデルのコントローラサンプル [#ra789b97]
//-[[Robot-nii.xml>キネクトによるエージェントの操作(ロボ...
//-[[Man-nii-v2.xml>キネクトによるエージェントの操作(Man-...
***世界ファイルの作成 [#wd8a8474]
次に世界ファイルを作成します。
$ emacs kinectWorld.xml
kinectWorld.xml
#highlight(xml){{
<?xml version="1.0" encoding="utf8"?>
<world name="myworld2">
<!--重力の設定-->
<gravity x="0.0" y="-980.7" z="0.0"/>
<!--エージェントMan-niiの設定-->
<instanciate class="Man-nii.xml">
<!--エージェント名-->
<set-attr-value name="name" value="kinect_man"/>
<!--C++言語の指定-->
<set-attr-value name="language" value="c++"/>
<!--オブジェクトファイルkinectController.soの指定-->
<set-attr-value name="implementation" value="./k...
<!--動力学演算をfalseに設定-->
<set-attr-value name="dynamics" value="false"/>
<!--エージェントの位置(x,y,z)-->
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="60.0"/>
<set-attr-value name="z" value="0.0"/>
</instanciate>
</world>
}}
人間のみが登場するシンプルな世界ファイルです。このサンプ...
**実行 [#scf358ac]
それでは実行してみましょう。
***SIGVerse起動 [#rebb6851]
まずシグバースサーバを起動します。
$ sigserver.sh -w ./kinectWorld.xml
次にSIGViewerで起動したサーバに接続します。接続すると人間...
***サービスの登録 [#x7693c87]
SIGViewerにサービスを登録します。左上のメニューのService...
#ref(キネクトによるエージェントの操作(v2.0系)/SIGNi_1.PNG)
すると以下のようなウィンドウが立ち上がるのでAddボタンを押...
#ref(キネクトによるエージェントの操作(v2.0系)/SIGNi_2.PNG...
Service listにSIGNiUserTracker.sigが登録されたらOKボタン...
次にメニューのService→Startをクリックし、先ほど登録したSI...
キネクトの深度画像ウィンドウが立ち上がり、サーバ側で
[SYS] Service: "SIGKINECT" is available
と表示されればキネクトサービスの立ち上げに成功です。
それでは"START"ボタンを押してシミュレーションを開始してみ...
キネクトの前で体を動かすと骨格が検出され、人間エージェン...
#ref(キネクトによるエージェントの操作(v2.0系)/SIGNi_3.PNG...
**ソースコードのコンパイル [#rc3b6fdb]
次にクライアント側ので動くKINECTサービスのソースコードを...
***ソースコード取得 [#j4c23122]
[[KINECTサービス]]からソースコードを取得します。
//#ref(SIGNiUserTracker_1-0-0.zip)
展開したフォルダの中に入っているSIGNiUserTrackerフォルダ...
C:\Program Files (x86)\OpenNI\Samples
***コンパイル [#j1513ff2]
次にSIGNiUserTrackerフォルダの中のソリューションファイル...
※バージョン1.0.0の場合はコンパイルにはboostライブラリのイ...
boostのインストール方法とVC++の設定方法は省略します。
VC++が起動したらソリューションエクスプローラの中のソリュ...
C:\Program Files (x86)\OpenNI\Samples\Bin\Release
拡張子を.exeから.sigに変えることによりSIGViewerに登録可能...
*Old Version [#g8ea554a]
-[[キネクトによるエージェントの操作(v2.0系)]]
-[[キネクトによるエージェントの操作(v120330, v1.4.8)]]
#highlight(end)
----
Up:[[Tutorial]] Previous:[[眼球運動]] Next: [[...
#counter
Page: