[[SIGVerse.org:http://sigverse.org]] | [[SIGVerse Forum:http://sigverse.org/sigverse/forum/]] | [[SIGVerse Wiki (JP):http://www.sociointelligenesis.org/SIGVerse/]] | [[SIGVerse Web:http://web.iir.nii.ac.jp/sigverse/web/]]

----

%%%''&size(20){SIGVerse Web};''%%%
%%%''&size(24){SIGVerse Web};''%%%

#contents

----

** Introduction [#d01a4ae2]
* Introduction [#d01a4ae2]
SIGVerse Web is a ''Web Interface for SIGVerse Application Development''. Together with SIGViewer, SIGVerse application development can be done without command-line interface terminal (e.g. Cygwin). A light-weight programming editor with multiple languages support is equipped on the system to ease programming jobs. Code compiling (make), building of project files, and execution can be done with just a click. Furthermore, the web-based system also enable development to be carry out anywhere with just an internet browser.
Main feature of SIGVerse Web:
- Web-based Editor and Compiler
- Remote Control SIGServer
- Workspace on the Cloud

----

** Setup [#vd1221fc]
- Register and Login Webuser account
-- Pull down the top panel for web registration and login http://web.iir.nii.ac.jp/sigverse/web/login/index.php
* Setup [#vd1221fc]
** Register and Login Webuser account [#b09c1ddd]
- Pull down the top panel for web registration and login http://web.iir.nii.ac.jp/sigverse/web/login/index.php

&ref(./Register&Login.png,alt-title-Register & Login on Top Panel);

- SIGVerse Installation/Uninstallation
-- On the main page, after '''Connect to Socio''', select the desired version and click to install/uninstall SIGVerse.
-- ''*Important*'' After clicking the '''Install''' button, please allow some time (~5 mins) for the processing until a long list of output is displayed. Please do not press any other button during the processing.
-- Once the installation is completed, you can click '''Go''' to access your '''Workspace'''.
** SIGVerse Installation/Uninstallation [#v8122c9a]
- On the main page, after '''Connect to Socio''', select the desired version and click to install/uninstall SIGVerse.
- ''*Important*'' After clicking the '''Install''' button, please allow some time (~5 mins) for the processing until a long list of output is displayed. Please do not press any other button during the processing.
- Once the installation is completed, you can click '''Go''' to access your '''Workspace'''.

&ref(./SetupPage.png,alt-title-Setup Page);

- '''* Socio Server Access'''
-- In order for SIGViewer to visualize your simulation running on Socio server, you are required to have an access account on the server. Please contact Professor Inamura (inamura@nii.ac.jp) to apply an access account and follow the guide here http://www.sociointelligenesis.org/SIGVerse/index.php?SSH%E6%8E%A5%E7%B6%9A to establish the SSH connection.
** '''* Socio Server Access''' [#e61d1f94]
- In order for SIGViewer to visualize your simulation running on Socio server, you are required to have an access account on the server. Please contact Professor Inamura (inamura@nii.ac.jp) to apply an access account and follow the guide here http://www.sociointelligenesis.org/SIGVerse/index.php?SSH%E6%8E%A5%E7%B6%9A to establish the SSH connection.

----

** Basic Development Guide [#g3744b5c]
- Workspace Overview
* Basic Development Guide [#g3744b5c]
** Workspace Overview [#s8df86d6]

&ref(./Workspace.png,alt-title-Workspace);

-- Project Directory
--- The left panel consists of a file navigation for project directory. You can create new project folder and file, upload project file, and even import a whole project (Refer to '''Import''' below).
- Project Directory
-- The left panel consists of a file navigation for project directory. You can create new project folder and file, upload project file, and even import a whole project (Refer to '''Import''' below).

-- Editor Area
--- The center area is the editor for programming code developments. It supports multiple programming languages with syntax highlight, search and replace, and multi-tab for working of several files in parallel.
- Editor Area
-- The center area is the editor for programming code developments. It supports multiple programming languages with syntax highlight, search and replace, and multi-tab for working of several files in parallel.

-- Control Panel
--- The lower panel is the Control Panel for code compiling and execution.
--- ''Make'' - To '''make''' controller codes with a Makefile. Please make sure to prepare the Makefile.txt as below (sample):
--- Makefile.txt
- Control Panel
-- The lower panel is the Control Panel for code compiling and execution.
-- ''Make'' - To '''make''' controller codes with a Makefile. Please make sure to prepare the Makefile.txt as below (sample):

Makefile.txt

#highlight(xml){{
 #SIGVerseソースの場所指定
 SIG_SRC  = ../sigverse-$(sigversion)/include/sigverse
 
 #オブジェクトファイルの指定
 OBJS     = Controller.so
 
 all: $(OBJS)
 
 #コンパイルを行います。
 ./%.so: ./%.cpp
 	g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SRC) -I$(SIG_SRC)/comm/controller  -fPIC -shared -o $@   $<
}}

--- ''Build'' - To "build" the project files into the current SIGVerse version (indicated on the right end of Control Panel).
--- ''Import (.zip)'' - To import a project from local machine, upload the zip file of the project (with all files inside) onto Project Directory. Press '''Import''' to extract it (refresh to view the new folder).
--- ''Export'' - To download a project in zip format.
--- ''Delete'' - To delete a project (with all files inside).
--- Execute [Admin] - For administrative purpose only.
-- ''Build'' - To "build" the project files into the current SIGVerse version (indicated on the right end of Control Panel).
-- ''Import (.zip)'' - To import a project from local machine, upload the zip file of the project (with all files inside) onto Project Directory. Press '''Import''' to extract it (refresh to view the new folder).
-- ''Export'' - To download a project in zip format.
-- ''Delete'' - To delete a project (with all files inside).
-- Execute [Admin] - For administrative purpose only.

- Running Simulation
-- ''Run'' - To execute SIGServer (./sigverse.sh).
-- ''Check'' - To view output of the execution (for possible error).
-- ''Kill'' - To terminate SIGServer.
** Running Simulation [#ldee943d]
- ''Run'' - To execute SIGServer (./sigverse.sh).
- ''Check'' - To view output of the execution (for possible error).
- ''Kill'' - To terminate SIGServer.

----

** Tutorials [#i308f6c9]
- First Test (Tutorial01)
-- To simulate a falling object due to gravitational and external forces.
-- Step 1: Create a new project
--- Click the '''Add Folder''' icon on the top of the left Project Directory.
--- Insert "Tutorial01" and click SAVE.
--- A new folder named "Tutorial01" appears on the Project Directory.
* Tutorials [#i308f6c9]
** First Test (Tutorial01) [#yc3437d8]
- To simulate a falling object due to gravitational and external forces.
- Step 1: Create a new project
-- Click the '''Add Folder''' icon on the top of the left Project Directory.
-- Insert "Tutorial01" and click SAVE.
-- A new folder named "Tutorial01" appears on the Project Directory.

-- Step 2: Create an agent controller
--- An agent is an autonomous object controlled by a controller.
--- Click into "Tutorial01" and click '''Add File''' to create the controller source code.
--- Insert "MoveController" and select "cpp" as the file type.
--- Insert the following codes into the Editor Area and click SAVE.
- Step 2: Create an agent controller
-- An agent is an autonomous object controlled by a controller.
-- Click into "Tutorial01" and click '''Add File''' to create the controller source code.
-- Insert "MoveController" and select "cpp" as the file type.
-- Insert the following codes into the Editor Area and click SAVE.

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 "onAction" on every 5 s.
-- The above controller codes do nothing except execute "onAction" on every 5 s.

-- Step 3: Compiling the controller codes
--- Create a file named "Makefile" with "txt" file type.
--- Insert the following codes into the Editor Area and click SAVE.
- Step 3: Compiling the controller codes
-- Create a file named "Makefile" with "txt" file type.
-- Insert the following codes into the Editor Area and click SAVE.

Makefile.txt

#highlight(xml){{
 #SIGVerseソースの場所指定
 SIG_SRC  = ../sigverse-$(sigversion)/include/sigverse
 
 #オブジェクトファイルの指定
 OBJS     = MoveController.so
 
 all: $(OBJS)
 
 #コンパイルを行います。
 ./%.so: ./%.cpp
 	g++ -DCONTROLLER -DNDEBUG -DUSE_ODE -DdDOUBLE -I$(SIG_SRC) -I$(SIG_SRC)/comm/controller  -fPIC -shared -o $@   $<
}}

--- Click '''Make''' and refresh the Project Directory to ensure the creation of "MoveController.so" file.
-- Click '''Make''' and refresh the Project Directory to ensure the creation of "MoveController.so" file.

-- Step 4: Create a virtual world with the agent
--- Create a new file named "NewWorld" with "xml" file type.
--- Insert the following codes into the Editor Area and click SAVE.
- Step 4: Create a virtual world with the agent
-- Create a new file named "NewWorld" with "xml" file type.
-- Insert the following codes into the Editor Area and click SAVE.

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="./MoveController.so"/>
 
 <!--動力学演算フラグ-->
         <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>
}}

--- The above codes create a virtual world named "myworld".
--- In the world, an agent named "Toy_D" using the instance of "seToy_D.xml" is created.
--- The "implementation" attribute attaches "MoveController.so" as the controller of the agent.
--- With the "dynamics" attribute value set to "true", the agent is subjected to dynamics simulation.
--- The initial position (x,y,z) and mass are set.
-- The above codes create a virtual world named "myworld".
-- In the world, an agent named "Toy_D" using the instance of "seToy_D.xml" is created.
-- The "implementation" attribute attaches "MoveController.so" as the controller of the agent.
-- With the "dynamics" attribute value set to "true", the agent is subjected to dynamics simulation.
-- The initial position (x,y,z) and mass are set.

-- Step 5: Execute the simulation
--- On the Control Panel, build the project by using '''Build'''.
--- Set "Port" to 9001 and "World" to "NewWorld.xml"
--- Click '''Run''' to execute SIGVerse.
--- Click '''Check''' to check the last line of the output is " Java VM start ok" for successful execution.
--- Run SIGViewer. Establish SSH connection under Setting. Set host name as "localhost" and port no. to "9001". Click '''Connect to SimServer'''.
--- An agent in a virtual world appears as follows.
- Step 5: Execute the simulation
-- On the Control Panel, build the project by using '''Build'''.
-- Set "Port" to 9001 and "World" to "NewWorld.xml"
-- Click '''Run''' to execute SIGVerse.
-- Click '''Check''' to check the last line of the output is " Java VM start ok" for successful execution.
-- Run SIGViewer. Establish SSH connection under Setting. Set host name as "localhost" and port no. to "9001". Click '''Connect to SimServer'''.
-- An agent in a virtual world appears as follows.

#ref(動力学シミュレーションのサンプル/toy_1.jpg)

--- Click '''Send''' under SIM_CTRL_CMD (START) to start the simulation.
--- The agent falls straight down the ground.
--- '''Disconnect SimServer''' in SIGViewer and '''Kill''' in the Control Panel to terminate the simulation.
-- Click '''Send''' under SIM_CTRL_CMD (START) to start the simulation.
-- The agent falls straight down the ground.
-- '''Disconnect SimServer''' in SIGViewer and '''Kill''' in the Control Panel to terminate the simulation.

-- Step 6: Apply external force
--- To apply an external force to the agent, edit the agent controller as follows:
- Step 6: Apply external force
-- To apply an external force to the agent, edit the agent controller as follows:

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''' and '''Run''' the simulation as above.
--- The agent moves forward as below.
-- '''Make''', '''Build''' and '''Run''' the simulation as above.
-- The agent moves forward as below.

#ref(動力学シミュレーションのサンプル/toy_3.jpg)

- Tutorial Project Files
-- Tutorial01 - 
-- Tutorial02 - 
-- Tutorial03 - 
-- Tutorial04 - 
-- Tutorial05 - 
-- Tutorial06 - 
-- Tutorial07 - 
-- Tutorial08 - 
-- Tutorial09 - 
-- Tutorial10 - 
** Tutorial Project Files [#j3b3ff3e]
- Tutorial01 - &ref(./Tutorial01.zip);
- Tutorial02 - 
- Tutorial03 - 
- Tutorial04 - 
- Tutorial05 - 
- Tutorial06 - 
- Tutorial07 - 
- Tutorial08 - 
- Tutorial09 - 
- Tutorial10 - 

----

For any inquiry, please contact Jeffrey [jeffrey@nii.ac.jp].
* Library [#j37e4e6a]
- Object Gallery

- World Gallery
-- Living Room (Small)
-- Living Room (Big)
-- Kitchen

- Controller Collection
-- Mobile Robot
-- Humanoid

- User Interface Systems
-- Kinect
-- Webcam

----

For any inquiry, suggestion, and feedback, please kindly contact Jeffrey [jeffrey@nii.ac.jp].

#highlight(end)


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