Up:Tutorial?    Previous:物体を持つ動作     Next: ロボット・ダイナミクス(単純モデル)  

BVHファイルの読み込み

ここではBVH形式のモーションデータをSIGVerseで読み込むサンプルを紹介します。(※このサンプルはバージョン110223以降で正常に動作します。)

サンプルコードの取得

まずSIGVerseがインストールされたディレクトリに移動します。

$ cd ~/sigverse-<version>/bin

次にsoicoまたはsocio2サーバの以下のディレクトリからサンプルコードを取得し、展開します。

↓こちらからも取得できます。

$ cp /home/SIGVerse/samples/readBVH.tar.gz .
$ tar zxvf readBVH.tar.gz
$ cd readBVH

このパッケージの中には以下のファイルが含まれています。

コンパイル

それでは早速コンパイルをしてみましょう。

Makefile修正

Makefileを自分の環境に合わせて修正します。

$ emacs Makefile

Makefile

#SIGVerseソースの場所指定
SIG_SRC  = /home/<user-name>/sigverse-<version>/include/sigverse

#オブジェクトファイルの指定
OBJS     =  BVH.o BVHController.so BVHController.o 

all: $(OBJS) 

#コンパイルを行います。
BVHController.o: BVHController.cpp
        g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SRC) - I$(SIG_SRC)/comm/controller -fPIC -c -o $@   $<

BVH.o: BVH.cpp
        g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SRC) - I$(SIG_SRC)/comm/controller -fPIC -c -o $@ $<

BVHController.so: BVHController.o BVH.o
        g++ -shared -o BVHController.so BVHController.o BVH.o

SIG_SRC = /home/<user-name>/sigverse-<version>/include/sigverse

の部分の<user-name>, <version>をそれぞれ自分のユーザ名、バージョン番号に置き換えます。  

make

コンパイルします。

$ make

BVHController.soが作成されたらコンパイルは成功です。

設定

ファイルの移動

次にbvhファイル読み込み用のサンプル形状モデルをパスが通ったshapeディレクトリに置きます。

$ cp bvh_man.x3d ../../share/sigverse/data/shape/

クライアント側のSIGViewerのインストール場所 (デフォルトでは C:\Program Files\SIGViewer_<vesion>\SIGViewer\release) にも同様のファイルを置きます。

次に世界ファイルとエージェント設定ファイルをxmlディレクトリに置きます。

$ cp BVHWorld.xml ../xml/ 
$ cp Man-bvh.xml ../xml/  
(※コピー先 ../../share/sigverse/data/xml/)

bvhファイルの取得

読み込ませたいbvhファイルを取得してカレントディレクトリ(~/sigverse-<version>/bin/readBVH)に置きます。本ページのサンプルではPV STUDIOから取得したbvhのサンプルデータAction_Kick_bvh.bvhを読み込ませます。

世界ファイルの設定

次に読み込ませたいbvhのファイル名を世界ファイルに記述します。

$ cd ..
$ emacs BVHWorld.xml

BVHWorld.xml

    ↓

bvhファイルはSIGVerseを実行するディレクトリからのパスを指定します。

BVHWorld.xml

実行

これで準備は整いました。それでは実行してみましょう。

$ ./sigserver.sh -p 9001 -w BVHWorld.xml

SIGViewerでサーバに接続するとエージェントが手を広げて立っているのが見えます。 Sendボタンを押してシミュレーションを開始するとbvhファイルの読み込みが開始され、エージェントが動き始めます。

motion_1.jpg

エージェントがキックします。

サンプルモデル

bvh読み込みサンプルモデル(bvh_man.x3d)で定義された関節名は以下のようになっています。すべての関節がローカル座標系におけるx,y,z軸を中心に回転するように定義されいています。

joint_name.jpg

参考ページ

Up:Tutorial?    Previous:物体を持つ動作     Next: ロボット・ダイナミクス(単純モデル) 


Attach file: filereadBVH.tar.gz 826 download [Information] fileBVHController.cpp 2020 download [Information] filejoint_name.jpg 1061 download [Information] filejointname.jpg 493 download [Information] filemotion_1.jpg 1314 download [Information] fileBVHWorld.xml 1187 download [Information] fileMan-bvh.xml 1308 download [Information] fileMakefile 1291 download [Information] fileBVHController.h 1245 download [Information] filebvh_man.x3d 1200 download [Information] fileBVH.h 1457 download [Information] fileBVH.cpp 1830 download [Information]

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2012-02-24 (Fri) 11:03:01 (4444d)