=====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: ... ... ... This configuration is read, if in the conext menu of "MeasurementSystems" the entry "Load configuration" is invoked. Before, the __masteruri__ is set to a hardcoded default value. This default value is used, if the "scan" method is invoked before "Load Configuration". **The XML-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 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 -element can have the following specific property element children:** ^ Property name ^ Default value ^ values | ^ sampleRate | 500 [Hz] | positive float value | **The -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 | From the configured sample rate delata_T is determined as 1/(sample rate) and this is added to the previous time(stamp) to determine the current one. This procedure assumes that no frame is lost in the pipleline. This method is used as default.| ====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" and "URtT" for the timestamps | °C | REAL | ^ ur_rtde_msgs.JointPosition| Joint angles for 6 segments of an UR-robot. | "URAngle" and "URAngleT" for the timestamps | rad| REAL | **Example configuration fragment:** ====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" | - | REAL | ^ geometry_msgs.TransformStamped | origin defined as a vector-3d to describe the pose of a segment. | "v" | mm | REAL | **Example configuration fragment:** ... ... ... ====Mediapipe ==== The BLAZE model of media type includes 33 positions. The coordinates of these positions are defined relativ to the pelvis center of the BLAZE model but given in a coordinate system of the camera with x,y-axes in the picture plane of the camera and z upright to this plane. All coordinates are given in the unit [m]. A second set of positions called global positions are determined from the mediapipe raw data as follows: The left corner of the camera defines the origin of a coordinate system. x,y-coordinate given as values between 0 and 1 if the positions are seen from the camera are scales using the hight/width of the camera sensor in pixel. ===Mediapipe specific topics and types === ^ Topic Type ^ Topic ^ Description ^ Unit ^ ^ geometry_msgs.PoseArray | /mediapipe_poses/BLAZE | All positions of the Blazepose model. | mm | ** Example configuration fragment:** ... ====How to add unknown topics?==== If the message type of the topic is known, integration works with the following steps: