Overview
The controller bridge is the process which manage input/outputs(I/O) between the simulating model
and each OpenRTM component.The I/O port is set and the connection between ports is specified
by the start option or using the configuration file.
Manual
Start-Options
The start-options are as follows;
Start option (format) |
Explanation |
--server-name <controller> |
The name of the factory server that generates the component to the CORBA name server |
--in-port <port>[:<joint id>]:<property> |
Specifies the input port name and its property |
--out-port <port>[:<joint id>]:<property> |
Specifies the output port name and its property |
--connection <port>[:<controller instance>]:<port> |
Specifies the connection between ports |
-h / --help |
Display start-options list |
--config-file <configuration file> |
Specifies the file that configures start-options |
--robot-name <targeted model> |
Specifies the targeted model. |
--name-server <name server host>:<port> |
Specifies OpenHRP's CORBA name server. |
Table 1: Start Options List
--server-name <controller>
This option used to specify the name of the factory server that generates the CORBA
component of the bridge. To view controller settings, go to "Controller View"
in GrxUI and select the particular controller from "Controller" drop-down list.
Fig.1: GrxUI Controller View
--in-port <port>[:<joint id>]:<property>
This option allows you to sepecify input port name and its property name. If
the joint id name is specified, only the value of a specific part will be input.
Here the joint id name means joint node name of the VRML Model.
Multiple id names can be specified by delimiting with comma(,). Data is input in the order
it is specified.
Ex: --in-port arm_elbow:RARM_ELBOW,LARM_ELBOW:JOINT_VALUE
Values of the JOINT_VALUE property of RARM_ELBOW and LARM_ELBOW joints are input.
--out-port <port>[:<joint id>]:<property>[:<Output Interval(sec)>]
This option allows you to sepecify output port name and its property name. If
the joint id name is specified, only the value of a specific part will be output.
Here the joint id name means joint node name of the VRML Model.
Multiple id names can be specified by delimiting with comma(,). Data is output in the order
it is specified.
However, only one joint id name can be specified when the property name is
CONSTRAINT_FORCE. When you specify Outout Interval, data is output by integral multiples of
the time specified in Controll Time shown in Fig.1, and keeping closer time intervals to the
specified interval. If the Outout Interval is not specified, data is output by the interval
specified in Control Time.
If the output contains image data, sensorId value of VisionSensor must be specified,
instead of the joint id name. Specifying multiple sensorIds is not supported.
Ex: --out-port image:0:COLOR_IMAGE:0.1
Outputs color image for every 0.1 seconds, taken by VisionSensor, which is sensorId is 0.
--connection <port>[:<controller instance>]:<port>
This is used to specify connection between I/O ports. Specify the port name of targeted model
at left, and the port name of controller at right, delimited by colon.
The controller instance name can be omitted.
Ex: --connection angle:JoystickController0:angle
Connects the port(angle) of the targeted model with the port(angle) of the JoystickController0
instance.
-h / --help
This option displays a list of start-options that can be used, and their explanations,in English.
You may use either -h or --help.
--config-file <configuration file>
Used to specify the file that configures start-options. You may use this for unifying start-options
and complex I/O port configurations. Please refer the configuration file "bridge.conf" in the sample
controllers' folder. (NOTE)
Format of OpenHRP/Controller/rtc/SamplePD/bridge.conf is as follows;
server-name = SamplePDController
in-port = torque:JOINT_TORQUE
out-port = angle:JOINT_VALUE
connection = angle:angle
connection = torque:torque
The content of the text file is basically collection of start-options having removed hyphen(-)
and specified string values for each using '='. The space and tab letter that surrounds '=' from
left and right, will be neglected. Considering the operation on UNIX environments, it is much
safer to use LF as line-feed code even on Windows environments; so then it would be compatible
for both platforms.
NOTE:
This file is not available on versions prior to Ver3.0.0. And a part of files' format was
changed with Ver3.0.2. So we recommand you to upgrade your OpenHRP to the latest version.
--robot-name <targeted model>
Specifies the name of the targeted model(equiped with I/O ports) that has to communicate with.
The default value is "VirtualRobot". Considering the generation of multiple instances,
its name is appended with an index number starting from 0. Therefore "TargetedModelName0" will
be the first instance to register in the nameserver.
--name-server <name server host>
Specifies the CORBA name server of OpenHRP.
Default value is "localhost:2809".
Ex: --module 192.168.1.10:2809
Specifies the CORBA name server of OpenHRP that has been connected and waiting through port 2809
of ip address 192.168.1.10 .
Property
Properties that can be specified in the above start-options are as follows;
Property |
In Port / Out Port |
Joint datatype |
Data length |
Explanation |
JOINT_VALUE |
yes/yes |
RTC::TimedDouble |
1 |
Joint-angle or Joint-position |
JOINT_VELOCITY |
yes/yes |
RTC::TimedDouble |
1 |
Differentiation of JOINT_VALUE |
JOINT_ACCELERATION |
yes/yes |
RTC::TimedDouble |
1 |
2nd differentiation of JOINT_VALUE |
JOINT_TORQUE |
yes/yes |
RTC::TimedDouble |
1 |
Joint-torque |
EXTERNAL_FORCE |
yes(1) /no |
RTC::TimedDoubleSeq |
6 |
Force, Torque |
ABS_TRANSFORM |
yes(1) /yes |
RTC::TimedDoubleSeq |
12 |
Joint location and posture with correspond to World coordinate system (first 3 elements are
positions vectors and the next 9 elements are for posture)
|
ABS_VELOCITY |
yes(1) /yes |
RTC::TimedDoubleSeq |
6 |
Joint velocity(3D vector) and joint-angular-velocity(3D vector) with correspond to World coordinate
system
|
ABS_ACCELERATION |
yes(1) /yes |
RTC::TimedDoubleSeq |
6 |
Joint acceleration(3D vector) and joint-angular-acceleration(3D vector) with correspond to World
coordinate system
|
FORCE_SENSOR |
no/yes |
RTC::TimedDoubleSeq |
6 |
Force(3D vector), Torque(3D vector) |
RATE_GYRO_SENSOR |
no/yes |
RTC::TimedDoubleSeq |
3 |
Gyro-Sensor (3D vector) |
ACCELERATION_SENSOR |
no/yes |
RTC::TimedDoubleSeq |
3 |
Acceleration Sensor (3D vector) |
RANGE_SENSOR |
no/yes |
RTC::TimedDoubleSeq |
sensor output rate |
Distance sensor. It includes the range data scanned from right side toward the direction
of the measurement. Distance is output until a collision is occured, even it is far beyond than
the maxDistance. If no collision, output is 0. |
CONSTRAINT_FORCE |
no/yes(3) |
RTC::TimedDoubleSeq |
6*(number of contact points) |
Contact point(3D vector) and Force(3D vector) with correspond to World coordinate system |
COLOR_IMAGE(4) |
no/yes(2) |
RTC::TimedLongSeq |
pixel count |
color image |
GRAYSCALE_IMAGE(4) |
no/yes(2) |
RTC::TimedOctetSeq |
pixel count |
gray-scale image |
DEPTH_IMAGE(4) |
no/yes(2) |
RTC::TimedFloatSeq |
pixel count |
depth image |
Table 2: Property List
(1): Becomes enable when [:Joint-ID] is specified in in-port option
(2): Becomes enable when [:sensorId] is specified in out-port option
(3): Becomes enable when only one [:sensorId] is specified in out-port option
(4): Bocomes enable when View Simulation is checked in
Simulation View.