Test 1

Execution of SIGVerse

Execute SIGVerse server on the server.

 $ cd ~/sigverse-<version>/bin

You can execute the SIGVerse server, using shell script sigserver.sh put on ~/sigverse-<version>/bin. You should specify a port number with -p option to be used for server/client connection. You should choose free port number. Over 9000 is recommendation.

 $ ./sigserver.sh -p 9001
[SYS]  data directory :
[SYS]   [1]  /home/<username>/sigverse-100317/share/sigverse/data/xml/
[SYS]   [2]  /home/<username>/sigverse-100317/share/sigverse/data/shape/
[SYS]  world file : MyWorld.xml
[SYS]  reading /home/<username>/sigverse-  100317/share/sigverse/data/shape/sample3.x3d...
read /home/<username>/sigverse-100317/share/sigverse/etc/X3DParser.cfg
*** JavaVMOption ***
options[0].optionString = (-Djava.class.path=/home/okamoto/sigverse-  

&b100317/share/sigverse/jar/X3DParser.jar:/home/<username>/sigverse- 

100317/share/sigverse/jar/xj3d-all.jar)
options[1].optionString = (-Djava.library.path=/tmp)
Java VM start ok
all done.[SYS]  waiting for connection...

The above messages indicates that the SIGVerse server have started.

Puch Ctrl-z to suspend the server to progress the next step.

Stop of SIGVerse server

If you didn't quit the SIGVerse server, the port number used in the process will be blocked. You should quit the process with kill command.

The following shell script is one of the useful solution.

$ cd ~
$ emacs kill.sh
#!/bin/bash

for i in `ps aux | grep sig | grep <username> | awk '{print $2}'`; do
    echo process id: $i
    kill -9 $i
done

username> indicates your account ID.

$ chmod 744 kill.sh
$ ./kill.sh
    :
[1]+  Stopped           ./sigserver.sh -p 9001  (wd: ~/sigverse-100908/bin)

The following message indicates quit of the process.

If you don't know detail mechanism of process management, you should execute kill.sh after you used the SIGVerse on host server.

テスト実行2

次に世界ファイルというものを作成して仮想世界にオブジェクトを登場させます。

世界ファイル作成

$ cd ~/sigverse-<version>/share/sigverse/data/xml

ここに世界ファイルを作成します。世界ファイルはxmlファイルで記述されており、仮想世界に登場するキャラクターの設定を行います。

$ emacs test.xml

test.xml

<?xml version="1.0" encoding="utf8"?>
<world name="myworld">

  <!--重力の指定-->  
  <gravity x="0.0" y="-9.8" z="0.0"/> 
  
  <!--登場キャラクターのインスタンス作成-->
  <instanciate class="seToy_D.xml">

        <!--キャラクターの名前-->
        <set-attr-value name="name" value="Toy_D"/>
        
        <!--動力学演算の機能off-->
        <set-attr-value name="dynamics" value="false"/>
       
        <!--C++言語の指定-->
        <set-attr-value name="language" value="c++"/>

  </instanciate>
</world>

※ファイル保存時にコードシステムを聞かれたらutf-8を入力します。

これは仮想世界にペンギンのキャラクターを登場させる世界ファイルです。

起動

それではSIGVerseを起動してみましょう。

$ cd ~/sigverse-<version>/bin
$ ./sigserver.sh -w test.xml -p 9001 &

先ほど作成した世界ファイルを-wオプションで指定しました。

次にSIGViewerを起動して接続先のホスト名、上で起動したポート番号を入力して、"Connect to SimServer"ボタンを押してサーバに接続します。

test_1.jpg

ペンギンのようなキャラクターが見えます。

接続が完了したら、サーバ側では以下のようなメッセージが出ます。(ポートフォワーディングによる接続時のメッセージ)

all done.[SYS]  waiting for connection...
[SYS]  attach view : polling
[SYS]  127.0.0.1 connected
[SYS]  SIGViewerDataPort : dataport
[SYS]  127.0.0.1 connected
[SYS]  127.0.0.1:8000  : service provider
[SYS]  127.0.0.1 connected

SIGViewerの視点や方向を変えるには画面上でCtrlを押しながら右クリック(または右クリックのみ)でマウスを動かします。

キャラクターへのアタッチ

このキャラクターを動かす為にはコントローラを作成し、登場するキャラクターにアタッチしなければなりません。ここではすでにいくつかのコントローラのサンプルが用意されているのでそれを使ってテスト実行してみましょう。

それでは準備されているサンプルコントローラバイナリを読み込み、エージェントにアタッチします。(Enterキーを押すとコマンドが使えます。)

ペンギンが見えている状態で以下のコマンドを実行します。

$ ./sigrunac -l ../share/sigverse/samples/GoRound.so -n Toy_D -p 9001
[SYS]  Controller attached to "Toy_D"
[SYS]  127.0.0.1 connected
[SYS]  Toy_D : dataport
[SYS]  127.0.0.1 connected

これでキャラクタ-にアタッチしました。 sigrunacはコントローラをシミュレーションサーバ中のエージェントにアタッチしてテストするためのツールです。-lオプションでアタッチするコントローラライブラリを指定します。サンプルのコントローラライブラリは

sigverse-<version>/share/sigverse/samples/

にいくつか用意されています。 GoRound.soというコントローラは登場するキャラクターがぐるぐる回るサンプルです。

SIGViewerで動作確認

それではシミュレーションを開始してみましょう。

次にSIM_CTRL_CMDの枠の中がSTARTとなっている状態でSendボタンを押してシミュレーションを開始します。

test_2.jpg

ペンギンがぐるぐる回転しているのが見えましたでしょうか?

シミュレーションを停止するにはSIM_CTRL_CMDの枠の中がSTOPとなっている状態でSendボタンを押します。

それではいったんSIGViewerを終了しましょう。 次はいよいよコントローラを作成します。

戻る?
次へ

Front page   New List of pages Search Recent changes   Help   RSS of recent changes