Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
ROS measurement system integration
The ROS-integration is based on rosjava. Connections to one or more running ROS systems are possible. The master uri of a ros system has to be configured as property of the measurement system configuration as follow:
<?xml version="1.0" encoding="iso-8859-1" ?> <MeasurementProcess name="Upperlimb Measurement"> <MeasurementSystem id="default" system="ROS" fileSuffix="r3d"> <Property name="localhost" value="192.168.10.100"/> <Property name="masteruri" value="http://192.168.10.2:11311"/> <TransducerUnitGroup name="vicon/RightHumerus" displayName="RightHumerus"> <Property name="sampleRate" value="120"/> <TransducerUnit name="RightHumerus" displayName="RightHumerus" sampleRate="120"> ... ... ... </MeasurementProcess>
The <MeasurementSystem>-element has the following additional properties:
Property name | Description | Optional |
---|---|---|
masteruri | The ip adress of the ROS master. | No |
localhost | The ip adress of the networkinterface used to connecto to the ROS master. Without using it, a default value is determined automatically which can result in the wrong ip, if more than one network adapters are available. | Yes |
The <TransducerUnitGroup>-element can have the following specific property element children:
Property name | Default value | values |
---|---|---|
sampleRate | 500 [Hz] | positive float value |
The <TransducerUnit>-element has additional specific properties:
Property name | Values | Optional |
---|---|---|
timestampsMethod | rosheader, autoarrive, autofix | No |
Methods to get timestamps:
Normally the ROS-messages have timestamps in it header. If this is not possible timestamps can be estimated by different methods. The default timestamp estimation method is called „autofix“. Available methods are described in the following table:
Method | Description |
---|---|
rosheader | The timestamp from the ROS-header is used. |
autoarrive | As an estimation the time at which a frame arrives JDAQ is used. |
autofix | The configured sample rate is used as a basis and it is assumed that no frame is lost in the pipleline. |
UR specific topics
Based on the FZI UR-robot-driver branch.
Topic type | Description | Channel name | Unit | Type |
---|---|---|---|---|
ur_rtde_msgs.JointTemperature | Temperatures in 6 segments of an UR-robot. | „URt<index>“ and „URtT“ for the timestamps | °C | REAL |
ur_rtde_msgs.JointPosition | Joint angles for 6 segments of an UR-robot. | „URAngle<index>“ and „URAngleT“ for the timestamps | rad | REAL |
Example configuration fragment:
<TransducerUnitGroup name="ur_hardware_interface/rtde_data" displayName="UR"> <TransducerUnit name="joint_temperatures" displayName="JointTemperatures" sampleRate="120"> <Channel name="URt0"/> <Channel name="URt1"/> <Channel name="URt2"/> <Channel name="URt3"/> <Channel name="URt4"/> <Channel name="URt5"/> <Channel name="URtT"/> </TransducerUnit> <TransducerUnit name="target_q" displayName="JointAngles" sampleRate="120"> <Channel name="URAngle0"/> <Channel name="URAngle1"/> <Channel name="URAngle2"/> <Channel name="URAngle3"/> <Channel name="URAngle4"/> <Channel name="URAngle5"/> <Channel name="URAngleT"/> </TransducerUnit> </TransducerUnitGroup>
Vicon specific topics
A Vicon markerbased motion analysis system can be integrated via ROS by usage of a „Vicon-ROS-bridge“.
Topic type | Description | Channel name | Unit | Type |
---|---|---|---|---|
geometry_msgs.TransformStamped> | Orientation defined by an quaternion to describe the pose of a segment | „q<index>“ | - | REAL |
geometry_msgs.TransformStamped> | origin defined as a vector-3d to describe the pose of a segment. | „v<index>“ | mm | REAL |
Example configuration fragment:
<?xml version="1.0" encoding="UTF-8"?> <MeasurementProcess name="Calibration Measurements"> <MeasurementSystem id="default" system="ROS" fileSuffix="r3d"> <Property name="sampleRate" value="120.0"/> <TransducerUnitGroup name="vicon/TCP" displayName="TCP"> <TransducerUnit name="TCP" displayName="TCP"> <Channel name="q0"/> <Channel name="q1"/> <Channel name="q2"/> <Channel name="q3"/> <Channel name="v0"/> <Channel name="v1"/> <Channel name="v2"/> </TransducerUnit> </TransducerUnitGroup> ... <TransducerUnitGroup name="vicon/markers" displayName="Markers"> <TransducerUnit name="GLOBE1" displayName="GLOBE1"> <Channel name="v0"/> <Channel name="v1"/> <Channel name="v2"/> <Channel name="T"/> </TransducerUnit> ... </TransducerUnitGroup> </MeasurementSystem> ... </MeasurementProcess>