視覚に関する操作
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
]
Start:
Up:[[Tutorial]] Previous:[[エージェント間のメッ...
----
#contents
*Control method for vision sensor [#f37ce459]
※This tutorial is compatible with v2.1.0 or later.
I will explain how to use the vision sensor.
//I will explain some functions after. It is not supporte...
**Environment scanning by vision sensor [#scce7ec9]
I will introduce the sample file for scanning the environ...
***Creation of the controller [#t10e6f74]
$ cd ~/MyWorld
$ emacs WatchController.cpp
WatchController.cpp
#highlight(cpp){{
#include "Controller.h"
#include "Logger.h"
#include "ControllerEvent.h"
#define PI 3.141592
#define DEG2RAD(DEG) ( (PI) * (DEG) / 180.0 )
class WatchController : public Controller
{
public:
void onRecvMsg(RecvMsgEvent &evt);
};
void WatchController::onRecvMsg(RecvMsgEvent &evt)
{
SimObj *my = getObj(myname());
//受け取ったメッセージをint型に変換します
const char *value = evt.getMsg();
int angle = atoi(value);
if (angle <= 180 && angle >=-180){
//体全体をz軸から指定した角度だけ回転します
my->setAxisAndAngle(0, 1.0, 0, DEG2RAD(angle));
}
}
extern "C" Controller * createController ()
{
return new WatchController;
}
}}
This sample is used to rotate the body with an angle whic...
I will define the angle in z-axis direction, the angle th...
***Compiling [#ebdcf9b7]
I will compile the cpp file
$ ./sigmake.sh WatchController.cpp
***XML file for living room [#iea3d264]
I will create a new world file.
$ emacs WatchWorld.xml
WatchWorld.xml
#highlight(xml){{
<?xml version="1.0" encoding="utf8"?>
<world name="myworld5">
<gravity x="0.0" y="-980.7" z="0.0"/>
<!--エージェントRobot-niiの設定-->
<instanciate class="Robot-nii.xml">
<!--エージェント名-->
<set-attr-value name="name" value="robot_000"/>
<!--C++言語の指定-->
<set-attr-value name="language" value="c++"/>
<!--コントローラの指定-->
<set-attr-value name="implementation"
value="./WatchController.so"/>
<!--動力学演算をfalseに設定-->
<set-attr-value name="dynamics" value="false"/>
<!--エージェントの位置(x,y,z)-->
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="54.0"/>
<set-attr-value name="z" value="-40.0"/>
<!--カメラのID番号,リンク名、方向、位置の設定-->
<camera id="1"
link="HEAD_LINK"
direction="0 -1 1"
aspectRatio="1.5"
fov="45"
position="0.0 0.0 5.0"/>
</instanciate>
<!--リビングルーム-->
<instanciate class="seTV.xml">
<set-attr-value name="name" value="TV_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-20.0"/>
<set-attr-value name="y" value="87.5"/>
<set-attr-value name="z" value="-250.0"/>
<set-attr-value name="visStateAttrName" value="switch...
<set-attr-value name="switch" value="on"/>
</instanciate>
<instanciate class="seDoll_Bear.xml">
<set-attr-value name="name" value="kuma_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="9.9"/>
<set-attr-value name="z" value="0.0"/>
</instanciate>
<instanciate class="seToy_D.xml">
<set-attr-value name="name" value="penguin_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="50.0"/>
<set-attr-value name="y" value="6.15"/>
<set-attr-value name="z" value="-40.0"/>
</instanciate>
<instanciate class="seSofa_2seater.xml">
<set-attr-value name="name" value="sofa_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-200.0"/>
<set-attr-value name="y" value="31.85"/>
<set-attr-value name="z" value="-100.0"/>
<set-attr-value name="qw" value="0.707"/>
<set-attr-value name="qx" value="0.0"/>
<set-attr-value name="qy" value="0.707"/>
<set-attr-value name="qz" value="0.0"/>
</instanciate>
<instanciate class="seTVbass_B.xml">
<set-attr-value name="name" value="TVdai_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-20.0"/>
<set-attr-value name="y" value="25.1"/>
<set-attr-value name="z" value="-250.0"/>
</instanciate>
<instanciate class="sePlant_B.xml">
<set-attr-value name="name" value="ki_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="100.0"/>
<set-attr-value name="y" value="56.5"/>
<set-attr-value name="z" value="-250.0"/>
</instanciate>
<instanciate class="seSidetable_B.xml">
<set-attr-value name="name" value="sidetable_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-100.0"/>
<set-attr-value name="y" value="16.0"/>
<set-attr-value name="z" value="-100.0"/>
<set-attr-value name="qw" value="0.707"/>
<set-attr-value name="qx" value="0.0"/>
<set-attr-value name="qy" value="0.707"/>
<set-attr-value name="qz" value="0.0"/>
</instanciate>
<instanciate class="seApple.xml">
<set-attr-value name="name" value="apple_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-50.0"/>
<set-attr-value name="y" value="3.875"/>
<set-attr-value name="z" value="30.0"/>
</instanciate>
<instanciate class="seOrange.xml">
<set-attr-value name="name" value="orange_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="70.0"/>
<set-attr-value name="y" value="2.215"/>
<set-attr-value name="z" value="-30.0"/>
</instanciate>
</world>
}}
This is a world file of living room with humanoid robot (...
この世界ファイルではロボットエージェントにカメラが設置さ...
In this world file the camera is attached to the robot's ...
#highlight(xml:firstline[28]){{
<camera id="1"
link="HEAD_LINK"
direction="0 -1 1"
aspectRatio="1.5"
fov="45"
position="0.0 0.0 5.0"/>
}}
linkでカメラを設置するパーツ名を指定します。このサンプル...
カメラの位置はlinkを設定した場合はlinkの位置からの相対位...
direction, position でカメラの方向ベクトル、位置を設定し...
同様にaspectRatio, fov でカメラのアスペクト比、視野角(y方...
これらのパラメータを設定しなかった場合はデフォルト値が設...
|パラメータ名|デフォルト値|
|position| "0 0 0"|
|direction| "0 0 1" |
|link | "(Root link name)" |
|aspectRatio | "1.5" |
|fov | "45" (degree)|
1エージェントに複数個のカメラを設置する場合は以下のように...
#highlight(xml:firstline[28]){{
<camera id="1"
:
<camera id="2"
:
}}
***起動 [#s12fde3f]
それでは起動してみましょう。
$ sigserver.sh -w ./WatchWorld.xml
SIGViewerでサーバに接続して、シミュレーションを開始します...
#ref(視覚に関する操作(v2.0系)/watch_1.PNG,40%)
次に、ヒューマノイドロボットをクリックすると、左上の小さ...
#ref(視覚に関する操作(v2.0系)/watch_2.PNG)
さらにその枠の右上にあるボタンを押すとロボットから見た映...
#ref(視覚に関する操作(v2.0系)/watch_3.PNG,40%)
元に戻したい場合はもう一度左上のサブウィンドウの右上にあ...
カメラの位置や視線方向を確認したい場合はビューワーの右下...
#ref(./Watch_7.PNG,40%)
カメラの位置とカメラの視線方向がオレンジ色で示されていま...
次に右下のトレイにある"Message"ボタンをクリックして、ヒュ...
#ref(視覚に関する操作(v2.0系)/watch_4.PNG,80%)
するとロボットが90°回転してロボットの視線からはオレンジや...
#ref(視覚に関する操作(v2.0系)/watch_5.PNG,40%)
*Old Version [#e5d66315]
-[[視覚に関する操作(v2.0系)]]
-[[視覚に関する操作(v120330, v1.4.8)]]
----
#highlight(end)
Up:[[Tutorial]] Previous:[[エージェント間のメッ...
End:
Up:[[Tutorial]] Previous:[[エージェント間のメッ...
----
#contents
*Control method for vision sensor [#f37ce459]
※This tutorial is compatible with v2.1.0 or later.
I will explain how to use the vision sensor.
//I will explain some functions after. It is not supporte...
**Environment scanning by vision sensor [#scce7ec9]
I will introduce the sample file for scanning the environ...
***Creation of the controller [#t10e6f74]
$ cd ~/MyWorld
$ emacs WatchController.cpp
WatchController.cpp
#highlight(cpp){{
#include "Controller.h"
#include "Logger.h"
#include "ControllerEvent.h"
#define PI 3.141592
#define DEG2RAD(DEG) ( (PI) * (DEG) / 180.0 )
class WatchController : public Controller
{
public:
void onRecvMsg(RecvMsgEvent &evt);
};
void WatchController::onRecvMsg(RecvMsgEvent &evt)
{
SimObj *my = getObj(myname());
//受け取ったメッセージをint型に変換します
const char *value = evt.getMsg();
int angle = atoi(value);
if (angle <= 180 && angle >=-180){
//体全体をz軸から指定した角度だけ回転します
my->setAxisAndAngle(0, 1.0, 0, DEG2RAD(angle));
}
}
extern "C" Controller * createController ()
{
return new WatchController;
}
}}
This sample is used to rotate the body with an angle whic...
I will define the angle in z-axis direction, the angle th...
***Compiling [#ebdcf9b7]
I will compile the cpp file
$ ./sigmake.sh WatchController.cpp
***XML file for living room [#iea3d264]
I will create a new world file.
$ emacs WatchWorld.xml
WatchWorld.xml
#highlight(xml){{
<?xml version="1.0" encoding="utf8"?>
<world name="myworld5">
<gravity x="0.0" y="-980.7" z="0.0"/>
<!--エージェントRobot-niiの設定-->
<instanciate class="Robot-nii.xml">
<!--エージェント名-->
<set-attr-value name="name" value="robot_000"/>
<!--C++言語の指定-->
<set-attr-value name="language" value="c++"/>
<!--コントローラの指定-->
<set-attr-value name="implementation"
value="./WatchController.so"/>
<!--動力学演算をfalseに設定-->
<set-attr-value name="dynamics" value="false"/>
<!--エージェントの位置(x,y,z)-->
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="54.0"/>
<set-attr-value name="z" value="-40.0"/>
<!--カメラのID番号,リンク名、方向、位置の設定-->
<camera id="1"
link="HEAD_LINK"
direction="0 -1 1"
aspectRatio="1.5"
fov="45"
position="0.0 0.0 5.0"/>
</instanciate>
<!--リビングルーム-->
<instanciate class="seTV.xml">
<set-attr-value name="name" value="TV_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-20.0"/>
<set-attr-value name="y" value="87.5"/>
<set-attr-value name="z" value="-250.0"/>
<set-attr-value name="visStateAttrName" value="switch...
<set-attr-value name="switch" value="on"/>
</instanciate>
<instanciate class="seDoll_Bear.xml">
<set-attr-value name="name" value="kuma_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="0.0"/>
<set-attr-value name="y" value="9.9"/>
<set-attr-value name="z" value="0.0"/>
</instanciate>
<instanciate class="seToy_D.xml">
<set-attr-value name="name" value="penguin_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="50.0"/>
<set-attr-value name="y" value="6.15"/>
<set-attr-value name="z" value="-40.0"/>
</instanciate>
<instanciate class="seSofa_2seater.xml">
<set-attr-value name="name" value="sofa_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-200.0"/>
<set-attr-value name="y" value="31.85"/>
<set-attr-value name="z" value="-100.0"/>
<set-attr-value name="qw" value="0.707"/>
<set-attr-value name="qx" value="0.0"/>
<set-attr-value name="qy" value="0.707"/>
<set-attr-value name="qz" value="0.0"/>
</instanciate>
<instanciate class="seTVbass_B.xml">
<set-attr-value name="name" value="TVdai_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-20.0"/>
<set-attr-value name="y" value="25.1"/>
<set-attr-value name="z" value="-250.0"/>
</instanciate>
<instanciate class="sePlant_B.xml">
<set-attr-value name="name" value="ki_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="100.0"/>
<set-attr-value name="y" value="56.5"/>
<set-attr-value name="z" value="-250.0"/>
</instanciate>
<instanciate class="seSidetable_B.xml">
<set-attr-value name="name" value="sidetable_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-100.0"/>
<set-attr-value name="y" value="16.0"/>
<set-attr-value name="z" value="-100.0"/>
<set-attr-value name="qw" value="0.707"/>
<set-attr-value name="qx" value="0.0"/>
<set-attr-value name="qy" value="0.707"/>
<set-attr-value name="qz" value="0.0"/>
</instanciate>
<instanciate class="seApple.xml">
<set-attr-value name="name" value="apple_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="-50.0"/>
<set-attr-value name="y" value="3.875"/>
<set-attr-value name="z" value="30.0"/>
</instanciate>
<instanciate class="seOrange.xml">
<set-attr-value name="name" value="orange_0"/>
<set-attr-value name="dynamics" value="false"/>
<set-attr-value name="x" value="70.0"/>
<set-attr-value name="y" value="2.215"/>
<set-attr-value name="z" value="-30.0"/>
</instanciate>
</world>
}}
This is a world file of living room with humanoid robot (...
この世界ファイルではロボットエージェントにカメラが設置さ...
In this world file the camera is attached to the robot's ...
#highlight(xml:firstline[28]){{
<camera id="1"
link="HEAD_LINK"
direction="0 -1 1"
aspectRatio="1.5"
fov="45"
position="0.0 0.0 5.0"/>
}}
linkでカメラを設置するパーツ名を指定します。このサンプル...
カメラの位置はlinkを設定した場合はlinkの位置からの相対位...
direction, position でカメラの方向ベクトル、位置を設定し...
同様にaspectRatio, fov でカメラのアスペクト比、視野角(y方...
これらのパラメータを設定しなかった場合はデフォルト値が設...
|パラメータ名|デフォルト値|
|position| "0 0 0"|
|direction| "0 0 1" |
|link | "(Root link name)" |
|aspectRatio | "1.5" |
|fov | "45" (degree)|
1エージェントに複数個のカメラを設置する場合は以下のように...
#highlight(xml:firstline[28]){{
<camera id="1"
:
<camera id="2"
:
}}
***起動 [#s12fde3f]
それでは起動してみましょう。
$ sigserver.sh -w ./WatchWorld.xml
SIGViewerでサーバに接続して、シミュレーションを開始します...
#ref(視覚に関する操作(v2.0系)/watch_1.PNG,40%)
次に、ヒューマノイドロボットをクリックすると、左上の小さ...
#ref(視覚に関する操作(v2.0系)/watch_2.PNG)
さらにその枠の右上にあるボタンを押すとロボットから見た映...
#ref(視覚に関する操作(v2.0系)/watch_3.PNG,40%)
元に戻したい場合はもう一度左上のサブウィンドウの右上にあ...
カメラの位置や視線方向を確認したい場合はビューワーの右下...
#ref(./Watch_7.PNG,40%)
カメラの位置とカメラの視線方向がオレンジ色で示されていま...
次に右下のトレイにある"Message"ボタンをクリックして、ヒュ...
#ref(視覚に関する操作(v2.0系)/watch_4.PNG,80%)
するとロボットが90°回転してロボットの視線からはオレンジや...
#ref(視覚に関する操作(v2.0系)/watch_5.PNG,40%)
*Old Version [#e5d66315]
-[[視覚に関する操作(v2.0系)]]
-[[視覚に関する操作(v120330, v1.4.8)]]
----
#highlight(end)
Up:[[Tutorial]] Previous:[[エージェント間のメッ...
Page: