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.