SIGVerse Web (創発システムシンポジウム専用情報)
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
]
Start:
[[SIGVerse Web]]
[[SIGVerse.org:http://sigverse.org]] | [[SIGVerse Forum:h...
----
If you need English information, please see [[SIGVerse We...
%%%''&size(24){このページは2012-09-02に行われる創発システ...
%%%''&size(24){SIGVerse Web};''%%%
#contents
----
* SIGVerse Web とは? [#v827625f]
SIGVerse Web は''SIGVerseアプリケーションを構築するための...
SIGVerse Web の主な特徴は以下の通りです:
- ウェブベースでのプログラムエディタとコンパイラ
- SIGServerの遠隔操作(実行・停止・設定ファイルの整備など)
- クラウド上でのプログラム開発環境の提供
----
* セットアップ [#vd852cbc]
** Webuser アカウントの登録 [#z9349b00]
- http://192.168.1.17/web/login/index.php にアクセスして...
- トップパネルで SIGVerse Web の利用登録を行い,ログイン...
- 1つのチームで1つのアカウントをteam1, team2 という名前で...
- 登録を行うとパスワードが表示されます.このパスワードを...
&ref(SIGVerse Web/Register&Login.png,alt-title-Register &...
** SIGVerse のインストール/アンインストール [#f18f6cb3]
- 上記の中央のエリアの"Member login"からログインして下さ...
- メインページの, '''Connect to Socio''' の所に localhos...
- 次に Install という項目にあるフィールドにインストールし...
- ''*重要*'' '''Install''' ボタンをクリックした後,作業完...
- インストールの完了後,'''Go''' ボタンをクリックして, '...
&ref(SIGVerse Web (創発システムシンポジウム専用情報)/si...
** '''* NIIで運用するSIGVerseサーバー上のアカウント''' [#...
- 国立情報学研究所(NII)で運用しているSIGVerseサーバに接続...
-- ※だたし創発システムシンポジウムにご参加の方はワークシ...
- NIIで運用するサーバ上のアカウント発行には制約条件があり...
----
* 基本的な開発ガイド [#u57f6de6]
** ワークスペースの概要 [#w170fd18]
&ref(SIGVerse Web/Workspace.png,alt-title-Workspace,80%);
- プロジェクトディレクトリ
-- 左側のパネルでプロジェクトディレクトリに含まれているフ...
- 編集エリア
-- 中央の編集エリアでソースコードや設定ファイルを作成・修...
- コントロールパネル
-- 下部のパネルはコントロールパネルと呼ばれ,ソースコード...
-- ''Make'' を押すことでいわゆるmakeコマンドを実行するこ...
Makefile.txt
#highlight(xml){{
#SIGVerseソースの場所指定
SIG_SRC = ../sigverse-120330/include/sigverse
#オブジェクトファイルの指定
OBJS = Controller.so
all: $(OBJS)
#コンパイルを行います。
./%.so: ./%.cpp
g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SR...
}}
-- ''Build'' で,コンパイルしたバイナリや編集した世界ファ...
-- ''Import (.zip)'' で,zip ファイルで圧縮されているプロ...
-- ''Export'' で,現在のプロジェクトをzipファイルにエキス...
-- ''Delete'' で,現在のプロジェクトを削除します.
-- [Admin] は管理者専用のボタンになります.
** SIGServer の実行 [#t214e637]
- ''Run'' で,SIGServer (./sigverse.sh) を実行します.
- ''Check'' で,実行に伴うログを表示します.
- ''Kill'' で,SIGServerを停止させます.
----
* チュートリアル [#j1dec720]
** 最初のテスト (Tutorial01) [#x282fbcb]
- To simulate a falling object due to gravitational and e...
- ① 新しいプロジェクトの作成
-- 左側のプロジェクトディレクトリエリアの上部にある'''Add...
-- "Tutorial01"と入力し,'''SAVE'''します.
-- "Tutorial01"という新しいディレクトリが表示されます.
- ② エージェントコントローラの作成
-- エージェントの動作を定義するエージェントコントローラを...
-- "Tutorial01"を移動してディレクトリの中に居る状態で,''...
-- "MoveController"と入力し,拡張子"cpp"を選択します.
-- 編集エリア(Editor Area)に以下の内容を記入(コピー)...
MoveController.cpp
#highlight(cpp){{
#include "Controller.h"
#include "Logger.h"
//ControllerのサブクラスMoveControllerの宣言します。
class MoveController : public Controller {
public:
//定期的な処理を行うonActionの利用を宣言します。
double onAction(ActionEvent&);
};
double MoveController::onAction(ActionEvent &evt) {
return 5.0; //次にonActionが呼ばれるまでの時間を...
}
//自身のインスタンスをSIGVerseに返します。
extern "C" Controller * createController() {
return new MoveController;
}
}}
-- The above controller codes do nothing except execute "...
- ③ コントローラー·コードのコンパイル
-- 上記と同様の操作で,"Makefile"というファイル名,拡張子...
-- 編集エリア(Editor Area)に以下の内容を記入(コピー)...
Makefile.txt
#highlight(xml){{
#SIGVerseソースの場所指定
SIG_SRC = ../sigverse-120330/include/sigverse
#オブジェクトファイルの指定
OBJS = MoveController.so
all: $(OBJS)
#コンパイルを行います。
./%.so: ./%.cpp
g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SR...
}}
-- コントロールパネルの'''work/'''の部分にプロジェクト名"...
- ④ エージェントと仮想世界の作成
-- 上記と同様の操作で,"NewWorld"というファイル名,拡張子...
-- 編集エリア(Editor Area)に以下の内容を記入(コピー)...
NewWorld.xml
#highlight(xml){{
<?xml version="1.0" encoding="utf8"?>
<world name="myworld">
<!--重力の設定-->
<gravity x="0.0" y="-9.8" z="0.0"/>
<!--エージェントToy_Dのインスタンス作成-->
<instanciate class="seToy_D.xml">
<!--エージェント名-->
<set-attr-value name="name" value="Toy_D"/>
<!--C++言語の指定-->
<set-attr-value name="language" value="c++"/>
<!--作成したコントローラの指定-->
<set-attr-value name="implementation" value="./M...
<!--動力学演算フラグ-->
<set-attr-value name="dynamics" value="true"/>
<!--エージェントの最初の位置(x,y,z)-->
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="18.0"/>
<set-attr-value name="z" value="5.0"/>
<!--エージェントの質量設定-->
<set-attr-value name="mass" value="1.0"/>
</instanciate>
</world>
}}
-- 上記のファイルでは,新しい仮想世界ファイル"myworld"を...
-- この世界では,"Toy_D"という名前のエージェントが"seToy_...
-- "implementation"属性で,このエージェントに"MoveControl...
-- "dynamics"属性の値を"true"とすることで,このエージェン...
-- 初期状態は,position (x,y,z) やmassで設定されます.
- ⑤ シミュレーションの実行
-- コントロールパネル(Control Panel)の'''Build'''を押し...
-- "Port"に適切な値(例えば9100),"World" に "NewWorld.x...
-- '''Run'''をクリックし,SIGVerseを実行させます.
-- '''Check'''をクリックするとサーバのログが表示されます...
-- もし,"cannot bind socket: Address already in use"とい...
-- SIGViewerを立ち上げて,host name に192.168.1.17,ポー...
-- '''Connect to SimServer'''をクリックすると,以下の図の...
-- SIGViewer上にて視点を変えるには以下のコマンドを使います
--- Turn around - Right click
--- Zoom - Ctrl + Right click
--- Pan - Shift + Right click
#ref(動力学シミュレーションのサンプル/toy_1.jpg)
-- SIM_CTRL_CMD (START)の下にある'''Send'''をクリックする...
-- エージェントが下に自由落下する様子が見えたら成功です.
-- SIGViewer で'''Disconnect SimServer'''をクリックし,SI...
- ⑥ 外力の加える
-- ここでは,コントローラのソースコード改変して,エージェ...
-- 以下のように,コントローラのソースコードを編集します
MoveController.cpp
#highlight(cpp:firstline[13]){{
double MoveController::onAction(ActionEvent &evt) {
return 5.0; //次にonActionが呼ばれるまでの時間を...
}
}}
↓
#highlight(cpp:firstline[13]){{
double MoveController::onAction(ActionEvent &evt) {
SimObj *obj = getObj(myname()); //自分自身の取得
obj->setForce(0,0,300); //z軸方向に300[N]の力...
return 5.0; //次にonActionが呼ばれるまでの時間を...
}
}}
-- '''Make''', '''Build''','''Run'''の順序でシミュレーシ...
-- エージェントが前方に向かって進んで行くのが見えれば成功...
#ref(動力学シミュレーションのサンプル/toy_3.jpg)
** チュートリアルプロジェクトファイル [#u6078d14]
上記のファイルをウェブブラウザからコピペしても良いですし...
- Tutorial01 - &ref(SIGVerse Web/Tutorial01.zip);
** SIGVerse Web と一般的な開発の違い [#r45b397b]
SIGVerse Web はLinux環境によるプログラム開発に慣れていな...
- SIGVerse Web でのファイルシステムは,"Project"という概...
- ''*違い*'' SIGVerse Web では,仮想世界を記述するファイ...
-- SIGVerse Web での記法
#highlight(xml){{
<set-attr-value name="implementation" value="./MoveContro...
}}
-- [[Tutorial]]で説明されている開発環境での記法
#highlight(xml){{
<set-attr-value name="implementation" value="./NewWorld/M...
}}
- SIGVerse Webでは,SIGVerse サーバのバージョンに依存せず...
- ''*違い*'' Makefile の作成時には,SIGVerse バージョン番...
#highlight(xml){{
SIG_SRC = ../sigverse-$(sigversion)/include/sigverse
}}
----
* ライブラリー [#rc33b193]
- Object Gallery
- World Gallery
-- Living Room (Small)
-- Living Room (Big)
-- Kitchen
- Controller Collection
-- Mobile Robot
-- Humanoid
- User Interface Systems
-- Kinect
-- Webcam
----
SIGVerse Web システムは国立情報学研究所のJeffrey TAN が担...
#highlight(end)
End:
[[SIGVerse Web]]
[[SIGVerse.org:http://sigverse.org]] | [[SIGVerse Forum:h...
----
If you need English information, please see [[SIGVerse We...
%%%''&size(24){このページは2012-09-02に行われる創発システ...
%%%''&size(24){SIGVerse Web};''%%%
#contents
----
* SIGVerse Web とは? [#v827625f]
SIGVerse Web は''SIGVerseアプリケーションを構築するための...
SIGVerse Web の主な特徴は以下の通りです:
- ウェブベースでのプログラムエディタとコンパイラ
- SIGServerの遠隔操作(実行・停止・設定ファイルの整備など)
- クラウド上でのプログラム開発環境の提供
----
* セットアップ [#vd852cbc]
** Webuser アカウントの登録 [#z9349b00]
- http://192.168.1.17/web/login/index.php にアクセスして...
- トップパネルで SIGVerse Web の利用登録を行い,ログイン...
- 1つのチームで1つのアカウントをteam1, team2 という名前で...
- 登録を行うとパスワードが表示されます.このパスワードを...
&ref(SIGVerse Web/Register&Login.png,alt-title-Register &...
** SIGVerse のインストール/アンインストール [#f18f6cb3]
- 上記の中央のエリアの"Member login"からログインして下さ...
- メインページの, '''Connect to Socio''' の所に localhos...
- 次に Install という項目にあるフィールドにインストールし...
- ''*重要*'' '''Install''' ボタンをクリックした後,作業完...
- インストールの完了後,'''Go''' ボタンをクリックして, '...
&ref(SIGVerse Web (創発システムシンポジウム専用情報)/si...
** '''* NIIで運用するSIGVerseサーバー上のアカウント''' [#...
- 国立情報学研究所(NII)で運用しているSIGVerseサーバに接続...
-- ※だたし創発システムシンポジウムにご参加の方はワークシ...
- NIIで運用するサーバ上のアカウント発行には制約条件があり...
----
* 基本的な開発ガイド [#u57f6de6]
** ワークスペースの概要 [#w170fd18]
&ref(SIGVerse Web/Workspace.png,alt-title-Workspace,80%);
- プロジェクトディレクトリ
-- 左側のパネルでプロジェクトディレクトリに含まれているフ...
- 編集エリア
-- 中央の編集エリアでソースコードや設定ファイルを作成・修...
- コントロールパネル
-- 下部のパネルはコントロールパネルと呼ばれ,ソースコード...
-- ''Make'' を押すことでいわゆるmakeコマンドを実行するこ...
Makefile.txt
#highlight(xml){{
#SIGVerseソースの場所指定
SIG_SRC = ../sigverse-120330/include/sigverse
#オブジェクトファイルの指定
OBJS = Controller.so
all: $(OBJS)
#コンパイルを行います。
./%.so: ./%.cpp
g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SR...
}}
-- ''Build'' で,コンパイルしたバイナリや編集した世界ファ...
-- ''Import (.zip)'' で,zip ファイルで圧縮されているプロ...
-- ''Export'' で,現在のプロジェクトをzipファイルにエキス...
-- ''Delete'' で,現在のプロジェクトを削除します.
-- [Admin] は管理者専用のボタンになります.
** SIGServer の実行 [#t214e637]
- ''Run'' で,SIGServer (./sigverse.sh) を実行します.
- ''Check'' で,実行に伴うログを表示します.
- ''Kill'' で,SIGServerを停止させます.
----
* チュートリアル [#j1dec720]
** 最初のテスト (Tutorial01) [#x282fbcb]
- To simulate a falling object due to gravitational and e...
- ① 新しいプロジェクトの作成
-- 左側のプロジェクトディレクトリエリアの上部にある'''Add...
-- "Tutorial01"と入力し,'''SAVE'''します.
-- "Tutorial01"という新しいディレクトリが表示されます.
- ② エージェントコントローラの作成
-- エージェントの動作を定義するエージェントコントローラを...
-- "Tutorial01"を移動してディレクトリの中に居る状態で,''...
-- "MoveController"と入力し,拡張子"cpp"を選択します.
-- 編集エリア(Editor Area)に以下の内容を記入(コピー)...
MoveController.cpp
#highlight(cpp){{
#include "Controller.h"
#include "Logger.h"
//ControllerのサブクラスMoveControllerの宣言します。
class MoveController : public Controller {
public:
//定期的な処理を行うonActionの利用を宣言します。
double onAction(ActionEvent&);
};
double MoveController::onAction(ActionEvent &evt) {
return 5.0; //次にonActionが呼ばれるまでの時間を...
}
//自身のインスタンスをSIGVerseに返します。
extern "C" Controller * createController() {
return new MoveController;
}
}}
-- The above controller codes do nothing except execute "...
- ③ コントローラー·コードのコンパイル
-- 上記と同様の操作で,"Makefile"というファイル名,拡張子...
-- 編集エリア(Editor Area)に以下の内容を記入(コピー)...
Makefile.txt
#highlight(xml){{
#SIGVerseソースの場所指定
SIG_SRC = ../sigverse-120330/include/sigverse
#オブジェクトファイルの指定
OBJS = MoveController.so
all: $(OBJS)
#コンパイルを行います。
./%.so: ./%.cpp
g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SR...
}}
-- コントロールパネルの'''work/'''の部分にプロジェクト名"...
- ④ エージェントと仮想世界の作成
-- 上記と同様の操作で,"NewWorld"というファイル名,拡張子...
-- 編集エリア(Editor Area)に以下の内容を記入(コピー)...
NewWorld.xml
#highlight(xml){{
<?xml version="1.0" encoding="utf8"?>
<world name="myworld">
<!--重力の設定-->
<gravity x="0.0" y="-9.8" z="0.0"/>
<!--エージェントToy_Dのインスタンス作成-->
<instanciate class="seToy_D.xml">
<!--エージェント名-->
<set-attr-value name="name" value="Toy_D"/>
<!--C++言語の指定-->
<set-attr-value name="language" value="c++"/>
<!--作成したコントローラの指定-->
<set-attr-value name="implementation" value="./M...
<!--動力学演算フラグ-->
<set-attr-value name="dynamics" value="true"/>
<!--エージェントの最初の位置(x,y,z)-->
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="18.0"/>
<set-attr-value name="z" value="5.0"/>
<!--エージェントの質量設定-->
<set-attr-value name="mass" value="1.0"/>
</instanciate>
</world>
}}
-- 上記のファイルでは,新しい仮想世界ファイル"myworld"を...
-- この世界では,"Toy_D"という名前のエージェントが"seToy_...
-- "implementation"属性で,このエージェントに"MoveControl...
-- "dynamics"属性の値を"true"とすることで,このエージェン...
-- 初期状態は,position (x,y,z) やmassで設定されます.
- ⑤ シミュレーションの実行
-- コントロールパネル(Control Panel)の'''Build'''を押し...
-- "Port"に適切な値(例えば9100),"World" に "NewWorld.x...
-- '''Run'''をクリックし,SIGVerseを実行させます.
-- '''Check'''をクリックするとサーバのログが表示されます...
-- もし,"cannot bind socket: Address already in use"とい...
-- SIGViewerを立ち上げて,host name に192.168.1.17,ポー...
-- '''Connect to SimServer'''をクリックすると,以下の図の...
-- SIGViewer上にて視点を変えるには以下のコマンドを使います
--- Turn around - Right click
--- Zoom - Ctrl + Right click
--- Pan - Shift + Right click
#ref(動力学シミュレーションのサンプル/toy_1.jpg)
-- SIM_CTRL_CMD (START)の下にある'''Send'''をクリックする...
-- エージェントが下に自由落下する様子が見えたら成功です.
-- SIGViewer で'''Disconnect SimServer'''をクリックし,SI...
- ⑥ 外力の加える
-- ここでは,コントローラのソースコード改変して,エージェ...
-- 以下のように,コントローラのソースコードを編集します
MoveController.cpp
#highlight(cpp:firstline[13]){{
double MoveController::onAction(ActionEvent &evt) {
return 5.0; //次にonActionが呼ばれるまでの時間を...
}
}}
↓
#highlight(cpp:firstline[13]){{
double MoveController::onAction(ActionEvent &evt) {
SimObj *obj = getObj(myname()); //自分自身の取得
obj->setForce(0,0,300); //z軸方向に300[N]の力...
return 5.0; //次にonActionが呼ばれるまでの時間を...
}
}}
-- '''Make''', '''Build''','''Run'''の順序でシミュレーシ...
-- エージェントが前方に向かって進んで行くのが見えれば成功...
#ref(動力学シミュレーションのサンプル/toy_3.jpg)
** チュートリアルプロジェクトファイル [#u6078d14]
上記のファイルをウェブブラウザからコピペしても良いですし...
- Tutorial01 - &ref(SIGVerse Web/Tutorial01.zip);
** SIGVerse Web と一般的な開発の違い [#r45b397b]
SIGVerse Web はLinux環境によるプログラム開発に慣れていな...
- SIGVerse Web でのファイルシステムは,"Project"という概...
- ''*違い*'' SIGVerse Web では,仮想世界を記述するファイ...
-- SIGVerse Web での記法
#highlight(xml){{
<set-attr-value name="implementation" value="./MoveContro...
}}
-- [[Tutorial]]で説明されている開発環境での記法
#highlight(xml){{
<set-attr-value name="implementation" value="./NewWorld/M...
}}
- SIGVerse Webでは,SIGVerse サーバのバージョンに依存せず...
- ''*違い*'' Makefile の作成時には,SIGVerse バージョン番...
#highlight(xml){{
SIG_SRC = ../sigverse-$(sigversion)/include/sigverse
}}
----
* ライブラリー [#rc33b193]
- Object Gallery
- World Gallery
-- Living Room (Small)
-- Living Room (Big)
-- Kitchen
- Controller Collection
-- Mobile Robot
-- Humanoid
- User Interface Systems
-- Kinect
-- Webcam
----
SIGVerse Web システムは国立情報学研究所のJeffrey TAN が担...
#highlight(end)
Page: