Inhaltsverzeichnis
Measurement Systems
A measurement system is a source of streaming data. Best supported is data of type timeseries of double values. A double-timeserie is called channel.
Multiple measurement systems can be used, even more than one of the same type.
If Rotations should be read in the form of 3×3-Matrixes from the sensors but the sensors does not define such data types, than it is automatically asked for roations in quaterion format. The quaternions are than automatically converted into matrixes.
Configuration of the file formats
The data read from each measurement system is saved into an own file. A labelset is defined to specify the file formats of these files and defines the names of the labels used to save the timeseries.
<?xml version="1.0" encoding="UTF-8"?> <LabelSet name="Recording - Vicon Objects."> <Labels name="Vicon" baseFile="true" fileSuffix="Vicon"> <Filter name="zero2nan"/> <Label sensorName="TCP" name="TCPQ" mathType="MATRIX_3X3D"/> <Label sensorName="TCP" name="TCPP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="TCP" name="TCPT" channelNames="T" mathType="REAL"/> <Label sensorName="TCP" name="TCPQuality" channelNames="q" mathType="REAL"/> <!-- TCP marker am Adapter --> <Label sensorName="TCPA" name="TCPAQ" mathType="MATRIX_3X3D" interpolatorType="NONE"/> <Label sensorName="TCPA" name="TCPAP" mathType="COLUMN_VECTOR_3D" interpolatorType="NONE"/> <Label sensorName="TCPA" name="TCPAT" channelNames="T" mathType="REAL" interpolatorType="NONE"/> <Label sensorName="TCPA" name="TCPAQuality" channelNames="q" mathType="REAL" interpolatorType="NONE"/> <Label sensorName="UR_Wrist2" name="UR_Wrist2Q" mathType="MATRIX_3X3D"/> <Label sensorName="UR_Wrist2" name="UR_Wrist2P" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="UR_Wrist2" name="UR_Wrist2Quality" channelNames="q" mathType="REAL"/> <Label sensorName="UR_Wrist1" name="UR_Wrist1Q" mathType="MATRIX_3X3D"/> <Label sensorName="UR_Wrist1" name="UR_Wrist1P" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="UR_Wrist1" name="UR_Wrist1Quality" channelNames="q" mathType="REAL"/> <Label sensorName="UR_Elbow" name="UR_ElbowQ" mathType="MATRIX_3X3D"/> <Label sensorName="UR_Elbow" name="UR_ElbowP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="UR_Elbow" name="UR_ElbowQuality" channelNames="q" mathType="REAL"/> <Label sensorName="UR_Shoulder" name="UR_ShoulderQ" mathType="MATRIX_3X3D"/> <Label sensorName="UR_Shoulder" name="UR_ShoulderP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="UR_Shoulder" name="UR_ShoulderQuality" channelNames="q" mathType="REAL"/> <Label sensorName="BASE" name="BASEQ" mathType="MATRIX_3X3D"/> <Label sensorName="BASE" name="BASEP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="BASE" name="BASEQuality" channelNames="q" mathType="REAL"/> <Label sensorName="GLOBE" name="GLOBEQ" mathType="MATRIX_3X3D"/> <Label sensorName="GLOBE" name="GLOBEP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="GLOBE" name="GLOBEQuality" channelNames="q" mathType="REAL"/> </Labels> <Labels name="RTDE" fileSuffix="RTDE"> <!-- vermutlich wird der Filter beim recording gar nicht benutzt --> <Filter name="zero2nan"/> <!-- falscher "sensorName" führrt zu keiner Fehlermeldung, nur im gespeicherten Trial fehlt dann die betreffende Zeitreihe --> <Label sensorName="actual" channelNames="URt0" name="Temperature0" mathType="REAL"/> <Label sensorName="actual" channelNames="URt1" name="Temperature1" mathType="REAL"/> <Label sensorName="actual" channelNames="URt2" name="Temperature2" mathType="REAL"/> <Label sensorName="actual" channelNames="URt3" name="Temperature3" mathType="REAL"/> <Label sensorName="actual" channelNames="URt4" name="Temperature4" mathType="REAL"/> <Label sensorName="actual" channelNames="URt5" name="Temperature5" mathType="REAL"/> <Label sensorName="actual" channelNames="URAngle0" name="Angle0" mathType="REAL"/> <Label sensorName="actual" channelNames="URAngle1" name="Angle1" mathType="REAL"/> <Label sensorName="actual" channelNames="URAngle2" name="Angle2" mathType="REAL"/> <Label sensorName="actual" channelNames="URAngle3" name="Angle3" mathType="REAL"/> <Label sensorName="actual" channelNames="URAngle4" name="Angle4" mathType="REAL"/> <Label sensorName="actual" channelNames="URAngle5" name="Angle5" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle0" name="TargetAngle0" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle1" name="TargetAngle1" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle2" name="TargetAngle2" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle3" name="TargetAngle3" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle4" name="TargetAngle4" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle5" name="TargetAngle5" mathType="REAL"/> <Label sensorName="actual" channelNames="T" name="Timestamp" mathType="REAL"/> <Label sensorName="actual" name="TCPURP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="actual" name="TCPURQ" mathType="QUATERNION_D"/> <Label sensorName="target" name="TargetTCPURP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="target" name="TargetTCPURQ" mathType="QUATERNION_D"/> </Labels> <Labels name="RPS" fileSuffix="RPS"> <Label sensorName="target" channelNames="URAngle0" name="TargetAngleRPS0" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle1" name="TargetAngleRPS1" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle2" name="TargetAngleRPS2" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle3" name="TargetAngleRPS3" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle4" name="TargetAngleRPS4" mathType="REAL"/> <Label sensorName="target" channelNames="URAngle5" name="TargetAngleRPS5" mathType="REAL"/> <Label sensorName="target" channelNames="T" name="TimestampRPS" mathType="REAL"/> <Label sensorName="target" name="TCPURPRPS" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="target" name="TCPURQRPS" mathType="QUATERNION_D"/> </Labels>
The name- and the fileSuffix-Attributes must be set to the name of the corresponding measurement system. Escpecially keep in mind that the attribute fileSuffix in this context does not define the file-format/suffix of the corresponding file because the file format is defined in the measurement system configuration instead.