Please click the flag when you prefer English information
SIGVerse.org | SIGVerse Forum | SIGVerse Wiki (JP) | SIGVerse Web
申し訳ありませんが,このサービスは現在メンテナンス中です.詳細については開発担当者までご連絡下さい.
SIGVerse Web とは? †
SIGVerse Web はSIGVerseアプリケーションを構築するためのウェブインタフェースシステムです. SIGViewerと一緒に使う事で,Cygwinのようなターミナルコンソール経由でのコマンドラインでの開発環境を用いることなく開発を進めることができます.プログラムはウェブベースでの簡易テキストエディタで作成することになります.コンパイルや設定ファイルの配置,プログラム実行などがクリックするだけで実行できます.ブラウザがあれば,開発環境が整っていないPCからでも簡単に開発を進めることができるわけです.
SIGVerse Web の主な特徴は以下の通りです:
- ウェブベースでのプログラムエディタとコンパイラ
- SIGServerの遠隔操作(実行・停止・設定ファイルの整備など)
- クラウド上でのプログラム開発環境の提供
セットアップ †
Webuser アカウントの登録 †
SIGVerse のインストール/アンインストール †
- ログインの次に,あなたのワークスペースにSIGVerseサーバをインストールします.このSIGVerseサーバを修正・変更していくことで,あなたの実行したい実験の世界を作ることになります.別の言い方をすると,他人が作ったSIGVerseの世界を用いる場合には,このインストールは必要無い,という事になります.
- メインページの, Connect to Socio の所にSIGVerse Web のサーバーホスト名(socio2.iir.nii.ac.jp)が記載されている事を確認し,Connect ボタンを押します.ここでsocio2.iir.nii.ac.jp 以外のSIGVerse web サーバを使う場合には,そのホスト名を入力して下さい.また,Username : webuser は変更しないで下さい.
- 次に Install という項目にあるフィールドにインストールしたいSIGVerseバージョンを記入します.通所は最新版のバージョンが既に記載されているので,何もしなくて結構です.Install ボタンを押すことで,あなたのワークスペース上にSIGVerseサーバがインストールされます.
- *重要* Install ボタンをクリックした後,作業完了まで5分程度かかることがあります.ログが出力され,インストールが完了したことが確認できるまで,他のボタンを押さないでください.
- インストールの完了後,Go ボタンをクリックして, Workspace にアクセスして下さい.
* NIIで運用するSIGVerseサーバー上のアカウント †
- 国立情報学研究所(NII)で運用しているSIGVerseサーバに接続するためには,サーバでのユーザアカウントが必要になります.
- ※だたし創発システムシンポジウムにご参加の方はワークショップ当日に限り,アカウントをこちらで用意致します
- NIIで運用するサーバ上のアカウント発行には制約条件がありますので,稲邑(inamura@nii.ac.jp)までご連絡をお願い致します.
- もしくは,1ヶ月間の有効期限付き評価用アカウントの発行も可能です.評価用アカウントの利用方法は以下の通りです.
評価用アカウントの利用方法 †
- SIGVerse Web にログインした直後のメインページからSSH-Keyをダウンロードして下さい.ダウンロードしたファイルを展開をすると二つのファイル(id_rsa and id_rsa.pub) が得られるので,C:\Program Files\SIGViewer-<version>\SIGViewer\.ssh というディレクトリに置いて下さい.
- SSH接続に用いるパスフレーズ(passphrase)は,展開ファイルのうちの一つpassphrase.txtに記載されています.
- 評価用アカウントは毎月末に期限が切れます.月が新しくなったら再度上記のSSH-Keyをダウンロードして設定を行って下さい.
- SIGViewerの機能を用いたSSHによるサーバーへの接続方法は,(SSH Connection)を参照して下さい.
基本的な開発ガイド †
ワークスペースの概要 †
- プロジェクトディレクトリ
- 左側のパネルでプロジェクトディレクトリに含まれているファイルを管理します.新しいプロジェクトディレクトリの作成や新しいファイルの作成,ファイルのアップロード,プロジェクトのインポートなどができます.(インポートについては 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を停止させます.
SIGViewer を用いたSSH接続 †
- SIGViewer.exe を実行します.
- 上部にあるSetting メニューの中のSSH Connectを選択します.
- サーバのホストネームと,SSHアクセスするためのIDとパスフレーズを入力して下さい.
#ref(): File not found: "ssh_connect1.jpg" at page "SSH接続"
- SIGVerse web のサーバのホスト名またはIPアドレス, ユーザ名,パスフレーズをダイアログに入力して下さい.
- 評価用アカウントを用いる際には以下の情報を入力して下さい.
- Host: socio2.iir.nii.ac.jp
- User name: testuser
- Passphrase: passphrase.txtに記載されているもの
#ref(): File not found: "ssh_connect2.jpg" at page "SSH接続"
- Use RSA key to login.にチェックを入れて下さい.
- 以下の手順でポートフォワード機能を有効にして下さい.
- Local port forwarding with loginにチェックを入れ,以下の情報を入力して下さい.
- Local port: localhost で用いるポート番号
- Listen host: localhostと入力
- Remote port: サーバで用いるポート番号
#ref(): File not found: "ssh_connect3.jpg" at page "SSH接続"
- Remote port forwarding with loginにチェックを入れ,以下の情報を入力して下さい.
- Local port: localhost で用いるポート番号
- Listen host: localhostと入力
- Remote port: サーバで用いるポート番号
#ref(): File not found: "ssh_connect4jpg.jpg" at page "SSH接続"
- *通常は,localhostの9001ポートを使う事をお薦めします.また,ポート番号は8001番以上が望ましいです.もし,If the port number is currently in used, please try other number.という表示が出たら,別の番号で再度接続をお願いします.
- Download shape fileにチェックを入れると,新しい物体形状ファイルが提供されている場合に,サーバからダウンロードを行います.
- Connectボタンを押すことで,SSH接続が確立します."SSH Authentication succeeded (server host name)"というメッセージが出たら成功です.
#ref(): File not found: "ssh_connect5.jpg" at page "SSH接続"
チュートリアル †
最初のテスト (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"に適切な値(例えば9001),"World" に "NewWorld.xml"と入力します.
- Runをクリックし,SIGVerseを実行させます.
- Checkをクリックするとサーバのログが表示されます,最終行に" Java VM start ok" と表示されていれば,無事に動作ができていることが確認できます.
- もし,"cannot bind socket: Address already in use"という表示が出た場合には,別のポート番号を使って再接続して下さい.
- SIGViewerを立ち上げて,必要に応じてSSH接続を行って下さい.(創発シンポでのチュートリアルの際にはSSH接続は必要ありません)
- SSH接続をしている場合:host name に"localhost",ポート番号に"9001"などの使用している番号を入力して下さい
- SSH接続をしない場合(NII内部からの接続又は創発シンポチュートリアルの場合):host name に指定されたサーバ名,ポート番号に自分が用いるポート番号を入力して下さい
- 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 が担当しています.もしご質問等があれば,[i@jeffreytan.org]までご連絡下さい.
Counter: 2105,
today: 3,
yesterday: 0