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=""/>
            <Property name="masteruri" value=""/>
            <TransducerUnitGroup name="vicon/RightHumerus" displayName="RightHumerus">
                <Property name="sampleRate" value="120"/>
                <TransducerUnit name="RightHumerus" displayName="RightHumerus" sampleRate="120">

The <MeasurementSystem>-element has the following additional properties:

Property name Description Optional
masteruri The ip of the ROS master. No
localhost The ip 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 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"/>

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"/>
        <TransducerUnitGroup name="vicon/markers" displayName="Markers">   
            <TransducerUnit name="GLOBE1" displayName="GLOBE1">
                <Channel name="v0"/>
                <Channel name="v1"/>
                <Channel name="v2"/>
                <Channel name="T"/>
integration/ros.txt · Zuletzt geändert: 2020/11/18 10:21 von oliver