SIGVerse Web
SIGVerse.org | SIGVerse Forum | SIGVerse Wiki (JP) | SIGVerse Web
If you need English information, please see SIGVerse Web (English Verseion).
このページは2012-09-02に行われる創発システムシンポジウムワークショップ専用の情報です.それ以外の方は参照されても意味が無いので,SIGVerse Webをご覧下さい.
SIGVerse Web
SIGVerse Web とは? †
SIGVerse Web はSIGVerseアプリケーションを構築するためのウェブインタフェースシステムです. SIGViewerと一緒に使う事で,Cygwinのようなターミナルコンソール経由でのコマンドラインでの開発環境を用いることなく開発を進めることができます.プログラムはウェブベースでの簡易テキストエディタで作成することになります.コンパイルや設定ファイルの配置,プログラム実行などがクリックするだけで実行できます.ブラウザがあれば,開発環境が整っていないPCからでも簡単に開発を進めることができるわけです.
SIGVerse Web の主な特徴は以下の通りです:
- ウェブベースでのプログラムエディタとコンパイラ
- SIGServerの遠隔操作(実行・停止・設定ファイルの整備など)
- クラウド上でのプログラム開発環境の提供
セットアップ †
Webuser アカウントの登録 †
- http://192.168.1.15/web/login/index.php にアクセスして下さい.
- トップパネルで SIGVerse Web の利用登録を行い,ログインして下さい.(以下の図の一番右側のエリアで利用登録をします)
- 1つのチームで1つのアカウントをteam1, team2 という名前で作って下さい.
- 登録を行うとパスワードが表示されます.このパスワードをメモして紛失しないようにして下さい.紛失してしまうと再発行できませんのでご注意下さい(本日の特別の設定条件に起因しています)

SIGVerse のインストール/アンインストール †
- 上記の中央のエリアの"Member login"からログインして下さい.ログインの後,あなたのワークスペースにSIGVerseサーバをインストールします.このSIGVerseサーバを修正・変更していくことで,あなたの実行したい実験の世界を作ることになります.別の言い方をすると,他人が作ったSIGVerseの世界を用いる場合には,このインストールは必要無い,という事になります.
- メインページの, Connect to Socio の所に localhost が記載されている事を確認し,Connect ボタンを押します.また,Username : webuser は変更しないで下さい.(以下の画像では socio2.iir.nii.ac.jp というホスト名が記載されていますが,本日は特別な接続なのでこの点は無視して下さい.)
- 次に Install という項目にあるフィールドにインストールしたいSIGVerseバージョンを記入します.通所は最新版のバージョンが既に記載されているので,何もしなくて結構です.Install ボタンを押すことで,あなたのワークスペース上にSIGVerseサーバがインストールされます.
- *重要* Install ボタンをクリックした後,作業完了まで5分程度かかることがあります.ログが出力され,インストールが完了したことが確認できるまで,他のボタンを押さないでください.
- インストールの完了後,Go ボタンをクリックして, Workspace にアクセスして下さい.

* NIIで運用するSIGVerseサーバー上のアカウント †
- 国立情報学研究所(NII)で運用しているSIGVerseサーバに接続するためには,サーバでのユーザアカウントが必要になります.
- ※だたし創発システムシンポジウムにご参加の方はワークショップ当日に限り,アカウントをこちらで用意致します
- NIIで運用するサーバ上のアカウント発行には制約条件がありますので,稲邑(inamura@nii.ac.jp)までご連絡をお願い致します.
基本的な開発ガイド †
ワークスペースの概要 †

- プロジェクトディレクトリ
- 左側のパネルでプロジェクトディレクトリに含まれているファイルを管理します.新しいプロジェクトディレクトリの作成や新しいファイルの作成,ファイルのアップロード,プロジェクトのインポートなどができます.(インポートについては Import を参照して下さい).
- 編集エリア
- 中央の編集エリアでソースコードや設定ファイルを作成・修正します.検索や置換などの機能が使えます.プログラムの種類に応じたカラーハイライト機能も備えています.
- コントロールパネル
- 下部のパネルはコントロールパネルと呼ばれ,ソースコードのコンパイルや実行を行います.
- Make を押すことでいわゆるmakeコマンドを実行することになり,Makefileの内容に沿ってコントローラがコンパイルされます.なお,仕様によりMakefileには拡張子.txtが付くことになります.Makefile.txt のサンプルを下記に示しておきます.
Makefile.txt
- Build で,コンパイルしたバイナリや編集した世界ファイルなどを実行するための環境の準備を行います.具体的には各種ファイルを適切なディレクトリにコピーする作業が行われます.使用するSIGVerseのバージョンはコントロールパネルの右側で確認できます.
- Import (.zip) で,zip ファイルで圧縮されているプロジェクト全体のデータをインポートすることができます.プロジェクトのインポートを行うには,まず,zipファイルをインポートしたいプロジェクトディレクトリにアップロードし,Importボタンを押します.refreshをすることで,インポートしたファイルが見られるようになります.
- Export で,現在のプロジェクトをzipファイルにエキスポートします.
- Delete で,現在のプロジェクトを削除します.
- [Admin] は管理者専用のボタンになります.
SIGServer の実行 †
- Run で,SIGServer (./sigverse.sh) を実行します.
- Check で,実行に伴うログを表示します.
- Kill で,SIGServerを停止させます.
チュートリアル †
最初のテスト (Tutorial01) †
- To simulate a falling object due to gravitational and external forces.
- ① 新しいプロジェクトの作成
- 左側のプロジェクトディレクトリエリアの上部にあるAdd Folderアイコンをクリックします
- "Tutorial01"と入力し,SAVEします.
- "Tutorial01"という新しいディレクトリが表示されます.
- ② エージェントコントローラの作成
- エージェントの動作を定義するエージェントコントローラを作成します
- "Tutorial01"を移動してディレクトリの中に居る状態で,Add Fileをクリックします.
- "MoveController"と入力し,拡張子"cpp"を選択します.
- 編集エリア(Editor Area)に以下の内容を記入(コピー)し,SAVEをクリックします.
MoveController.cpp
- The above controller codes do nothing except execute "onAction" on every 5 s.
- ③ コントローラー·コードのコンパイル
- 上記と同様の操作で,"Makefile"というファイル名,拡張子"txt"で新しいファイルを追加して下さい.
- 編集エリア(Editor Area)に以下の内容を記入(コピー)し,SAVEをクリックします.
Makefile.txt
- コントロールパネルのwork/の部分にプロジェクト名"Tutorial01"を入力し,Makeをクリックします."MoveController.so"ファイルが作成されたかどうかを確認するため,プロジェクトディレクトリをRefreshアイコンで再表示して下さい.もし,"MoveController.so"が作成されていなければ,コンパイル時にエラーが出たことを意味しますので,ソースコードを確認・編集して下さい.また,Makefile.txtでタブ記号の部分がスペースになっていないかの確認もして下さい.
- ④ エージェントと仮想世界の作成
- 上記と同様の操作で,"NewWorld"というファイル名,拡張子"xml"で新しいファイルを追加して下さい.
- 編集エリア(Editor Area)に以下の内容を記入(コピー)し,SAVEをクリックします.
NewWorld.xml
- 上記のファイルでは,新しい仮想世界ファイル"myworld"を定義しています.
- この世界では,"Toy_D"という名前のエージェントが"seToy_D.xml"という定義ファイルに従って生成されます.
- "implementation"属性で,このエージェントに"MoveController.so"というコントローラが割り当てられる事が定義されます.
- "dynamics"属性の値を"true"とすることで,このエージェントはODEに基づく物理シミュレーションが適用されます.
- 初期状態は,position (x,y,z) やmassで設定されます.
- ⑤ シミュレーションの実行
- コントロールパネル(Control Panel)のBuildを押して,設定したファイルやコンパイルしたコントローラを実行する準備を行います.
- "Port"に適切な値(例えば9100),"World" に "NewWorld.xml"と入力します.
- Runをクリックし,SIGVerseを実行させます.
- Checkをクリックするとサーバのログが表示されます,最終行に" Java VM start ok" と表示されていれば,無事に動作ができていることが確認できます.
- もし,"cannot bind socket: Address already in use"という表示が出た場合には,別のポート番号を使って再接続して下さい.
- SIGViewerを立ち上げて,host name に192.168.1.15,ポート番号に自分のチームが用いるポート番号を入力して下さい
- Connect to SimServerをクリックすると,以下の図のようなエージェントが表示されます.
- SIGViewer上にて視点を変えるには以下のコマンドを使います
- Turn around - Right click
- Zoom - Ctrl + Right click
- Pan - Shift + Right click
#ref(): File not found: "toy_1.jpg" at page "動力学シミュレーションのサンプル"
- SIM_CTRL_CMD (START)の下にあるSendをクリックするとシミュレーションが開始されます.
- エージェントが下に自由落下する様子が見えたら成功です.
- SIGViewer でDisconnect SimServerをクリックし,SIGVerse web のコントロールパネルでKillをクリックすれば,シミュレーションが終了します.
- ⑥ 外力の加える
- ここでは,コントローラのソースコード改変して,エージェントに外力を与えてみます.
- 以下のように,コントローラのソースコードを編集します
MoveController.cpp
↓
- Make, Build,Runの順序でシミュレーションを開始します.
- エージェントが前方に向かって進んで行くのが見えれば成功です.
#ref(): File not found: "toy_3.jpg" at page "動力学シミュレーションのサンプル"
チュートリアルプロジェクトファイル †
上記のファイルをウェブブラウザからコピペしても良いですし,以下のファイルをダウンロードして,SIGVerse web にアップロードする形でもソースコードや設定ファイルを作成できます.
SIGVerse Web と一般的な開発の違い †
SIGVerse Web はLinux環境によるプログラム開発に慣れていない人のための簡易開発環境であるため,通常のLinux開発環境によるアプリケーション開発と大きく異なる点がいくつか存在します.特に,このwikiのTutorial?に記載されている内容と異なる点がありますのでご注意下さい.
- SIGVerse Web でのファイルシステムは,"Project"という概念で整理されています.あるアプリケーションに必要なファイル (.cpp, .so, .xml, .wrl, .x3d, など)は,同じプロジェクトディレクトリの下で管理されます."Build"を用いることで,SIGVerse Webは自動的にこれらの必要なファイルをSIGVerseのバージョン番号などに従って,実際に必要なディレクトリに自動的に転送(コピー)します. これによって,"Import"や"Export"がより簡単にできるようになっています.
- *違い* SIGVerse Web では,仮想世界を記述するファイル (.xml)の文法として,以下に示す通り,エージェントコントローラの置き場所は通常カレントディレクトリをも用います.しかし,通常の開発環境(例えばTutorial?)では,プロジェクトディレクトリの下に置くような文法になっています.この点を注意して,Tutorial に記載されている表記をSIGVerse Web の表記に直して使って下さい.
- SIGVerse Webでは,SIGVerse サーバのバージョンに依存せず,同じ設定ファイルを共有することができます.
- *違い* Makefile の作成時には,SIGVerse バージョン番号を以下のように指定する必要があります.もしSIGVerseのバージョンがアップデートされた場合などには,以下の部分を書き換えて使う必要がありますので,ご注意下さい.
ライブラリー †
- World Gallery
- Living Room (Small)
- Living Room (Big)
- Kitchen
SIGVerse Web システムは国立情報学研究所のJeffrey TAN が担当しています.もしご質問等があれば,[jeffrey@nii.ac.jp]までご連絡下さい.