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 XML-Element <MeasurementSystem> 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 connect 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

If the environment variable ROS_IP on the (remote) PC running ROS is not set it sends the name of this PC instead the IP and it can happen, that the PC running JDAQ can not resolve this name into the IP adress back again. As a workaround you can assign the IP adress to this host name in the /etc/hostname file.

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: 2021/09/06 07:58 von oliver