- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
Up:[[Tutorial]] Previous:[[SIGViewerによるSSH接続]] Next:[[動力学シミュレーションのサンプル]]
----
#contents
*テスト実行1 [#h73b6ff6]
SIGVerseサーバを起動して、ビューワーからサーバに接続できることを確認します。
**SIGVerseの起動 [#v57d5f89]
サーバ側でSIGVerseをインストールした場所に移動してSIGVerseを起動してみます。
$ cd ~/sigverse-<version>/bin
SIGVerseを起動するには~/sigverse-<version>/binにあるsigserver.shシェルスクリプト実行して起動します。このとき-pオプションでポート番号を指定します。ポート番号は空いている番号でしたら何番でも構いません。9000番以上の番号で他人と重複しにくい番号をお勧めします。ポートフォワーディングによる接続の場合はローカルポートフォワーディングで指定した「サーバ側で使用するポート番号」をここで指定します。
$ ./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...
SIGVerseが正常に起動しました。
**ビューワーからサーバへの接続 [#y6dcd8b2]
次にSIGVerseを起動した状態のままビューワーを使ってサーバに接続します。
まずSIGViewerを起動します。
***サービス名の入力 [#tfaa5f8b]
まず、サービス名を入力します。ビューワーは画像データなどをSIGVerseに提供します。SIGVerseのエンティティがこのサービスを利用する際にこの名前が必要となります。現在は他のユーザーがいないのでデフォルトの"SIGViewer"のままにしておきます。
***SSH接続しない場合 [#rcaf844d]
SSHによる接続はせず直接サーバに接続する場合はSIGVerseサーバのホスト名、上で起動したポート番号をそれぞれ入力します。
#ref(./connectServer1.PNG,60%)
***CygwinによるSSH接続の場合 [#g5c8de6d]
[[CygwinによるSSH接続]]の設定が完了しているものとします。ホスト名をlocalhostと入力し、ポートフォワーディングで設定したポート番号を入力します。
#ref(./connectServer2.PNG,60%)
***ビューワーによるSSH接続の場合 [#g8845514]
[[SIGViewerによるSSH接続]]の設定が完了しているものとします。ログインしたいサーバのホスト名と、ポート番号を入力した後Connect by SSH にチェックを入れます。次にSSHログイン時のユーザー名とキー作成時に設定したパスフレーズを入力します。
#ref(./connectServer3.PNG,60%)
***接続 [#vf88da90]
"Connect"ボタンを押してビューワーで以下のようなロボットが見えれば接続成功です。
#ref(./connectServer4.PNG,50%)
SIGViewerの視点や方向を変えるには画面上でCtrl(もしくはShift)を押しながら右クリック、または右クリックのみの状態でマウスを動かします。
接続が完了したら、サーバ側では以下のようなメッセージが出ます。
[SYS] waiting for connection...
[SYS] SIGViewer is connected
[SYS] Service: "SIGViewer" is available
**SIGVerseの停止 [#j89cc189]
ビューワーからSIGVerseを停止するには"Quit Simulation"ボタンを押します。本当に終了してもよいか聞かれるのでOKを選択します。これでSIGVerseシミュレーションは終了します。
ビューワーからではなくサーバでシミュレーションを終了する場合は以下のようにします。
まず、サーバ側でctrl+zボタンを押してSIGVerseサーバを一旦停止します。
このときSIGVerseがバックグラウンドで起動し続けているため、同じポート番号でSIGVerseを起動することができなくなります。よって、killコマンドを使ってSIGVerseプロセスを終了する必要があります。
以下のシェルスクリプトを作成します。
// $ cd ~
$ emacs kill.sh
#!/bin/bash
for i in `ps aux | grep sig | grep $(whoami) | awk '{print $2}'`; do
echo process id: $i
kill -9 $i
done
// for i in `ps aux | grep sigserver | grep <username> | awk '{print $2}'`; do
// echo process id: $i
// kill -9 $i
// done
実行できるように権限を変更します。
$ chmod 744 kill.sh
実行します。
$ ./kill.sh
:
[1]+ 強制終了 ./sigserver.sh -p 9001 (wd: ~/sigverse-100908/bin)
これでプロセスが終了します。
現在起動中のプロセスを確認するには以下のコマンドを使います。
$ ps aux | grep $(whoami)
今後省略しますが、SIGVerseを起動するたびにビューワーでシミュレーションを終了するか、サーバ側でkill.shを実行するようにしてください。
//**SIGViewerの起動 [#k2157e91]
//
//インストールが完了したら、サーバ側でまずSIGVerseを起動します。
//
//$ cd ~/sigverse-<version>/bin
//$ ./sigserver.sh -p 9001
//次にSIGViewerを起動し、"Connection"の枠の中にある"server host name"に接続するサーバのホスト名、"server port No"にサーバで-pオプションを使って指定したポート番号を入力します。ポートフォワーディングによる接続方法は[[こちら>ポートフォワーディングでサーバに接続する方法]]
//次にサーバ側でSIGVerseを起動した状態でSIGViewerの"Connect to SimServer"ボタンを押してサーバに接続します。
//※この時firewallによるブロックを行いますかと聞かれることがあります。ここではfirewallによるブロックを解除するを選択してください。firewallによるブロックをすると一部使えない機能があります。
//#ref(inst_1.jpg)
//ここでSIGViewerで接続しても現時点では何も見えないと思います。
//SIGViewerを終了するときは、Disconnect SimServerボタンをクリックして接続を断ってから終了します。
//**SIGViewerの設定 [#r909f8c1]
//SIGViewerの設定はインストールした場所
//(デフォルトではc:\Program Files)
//の
//SIGViewer_*.*\release\
//
//にあるstartup.cfgで行います。
//
//このファイルではSIGViewerのカメラの位置や視線の方向などの設定を行えます。
*テスト実行2 [#k98de9c8]
次に世界ファイルというものを作成して仮想世界にオブジェクトを登場させます。
先ほど登場したロボットはデフォルトで用意された世界ファイル(MyWorld.xml)に記述されたものです。
**世界ファイル作成 [#z2214ae9]
$ cd ~/sigverse-<version>/share/sigverse/data/xml
ここに世界ファイルを作成します。世界ファイルとはxmlファイルで記述されており、仮想世界の設定や登場するキャラクターの設定を行います。
$ emacs test.xml
test.xml
#highlight(xml){{
<?xml version="1.0" encoding="utf8"?>
<world name="testworld">
<!--重力の設定-->
<gravity x="0.0" y="-980.6" 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を入力します。
これは仮想世界にペンギンのキャラクターを登場させる世界ファイルです。
**起動 [#uaa20dda]
それではSIGVerseを起動してみましょう。
$ cd ~/sigverse-<version>/bin
$ ./sigserver.sh -w test.xml -p 9001 &
先ほど作成した世界ファイル(test.xml)を-wオプションで指定しました。xmlファイルを作成したディレクトリまでのパスはあらかじめ設定されているので、指定する必要はありません。
次にSIGViewerを起動して接続先のホスト名、上で起動したポート番号を入力して、"Connect"ボタンを押してサーバに接続します。
#ref(./test_1.PNG,40%)
ペンギンのようなキャラクターが見えます。
//それではSIGViewer、メインサーバを一度終了します。(この時先ほど作成したkill.shを実行します。)
**キャラクターへのアタッチ [#w06ddb12]
このキャラクターを動かす為にはコントローラを作成し、登場するキャラクターにアタッチしなければなりません。ここではすでにいくつかのコントローラのサンプルが用意されているのでそれを使ってテスト実行してみましょう。
//まずSIGVerseを起動します。
// $ cd ~/sigverse-<version>/bin
// $ ./sigserver.sh -w test.xml -p 9001 &
// all done.[SYS] waiting for connection...
//この状態ではメインサーバではエージェントがアタッチされるのを待っています。
それでは準備されているサンプルコントローラバイナリを読み込み、エージェントにアタッチします。
ペンギンが見えている状態で以下のコマンドを実行します。(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はSIGVerseコントローラのサンプルの一つです。このサンプルは登場するキャラクターがぐるぐる回るサンプルです。
次の-nオプションでアタッチするエージェントの名前を指定します。Toy_Dは先ほどのペンギンのようなキャラクターの名前です。
つまりコントローラGoRound.soがエージェントToy_Dにアタッチされました。
**SIGViewerで動作確認 [#d8e640c8]
それではシミュレーションを開始してみましょう。
次にSIM_CTRL_CMDの枠の中がSTARTとなっている状態でSendボタンを押してシミュレーションを開始します。
ペンギンがぐるぐる回転しているのが見えましたでしょうか?
シミュレーションを停止するには"STOP"ボタンを押します。
"Disconnect"ボタンを押すとサーバとの接続を断つことができます。
それではいったんSIGViewerを終了しましょう。
次はいよいよコントローラを作成します。
*Old Version [#p618608f]
-[[テスト実行(v2.0系)]]
-[[テスト実行(v120330, v1.4.8)]]
Up:[[Tutorial]] Previous:[[SIGViewerによるSSH接続]] Next:[[動力学シミュレーションのサンプル]]
#highlight(end)