Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Main process configuration
The subfolder msprocesses of a Nimue platforms project includes the so called process configuration file with the default name DefaultConfig.xml. This file defines the data sources and the details about how to get data from the sources (measurement systems configuration). The main structure of such a file looks as follow:
<?xml version="1.0" encoding="iso-8859-1" ?> <MeasurementProcess name="Upperlimb Measurement"> <MeasurementSystem id="default" system="ROS" fileSuffix="r3d"> <TransducerUnitGroup name="vicon/RightHumerus" displayName="RightHumerus"> <TransducerUnit name="RightHumerus" displayName="RightHumerus" sampleRate="120"> <Channel name="q0"/> <Channel name="q1"/> <Channel name="q2"/> <Channel name="q3"/> <Channel name="v0"/> <Channel name="v1"/> <Channel name="v2"/> <Channel name="T"/> </TransducerUnit> ... </TransducerUnitGroup> ... </Measurementsystem> <TrialType name="takeover" duration="2" labelset="Input.xml" measurementSystemConfigIds="default"> <PropertyGroup name="ROSTrigger"> <Property name="robot_cmd_node_name" value="robot_command_server"/> <Property name="robot_cmd_service_name" value="robotCommand"/> <Property name="nextcycle_cmd_node_name" value="robot_nextcycle"/> <Property name="nextcycle_cmd_service_name" value="nextCycle"/> </PropertyGroup> <PropertyGroup name="multicycles"> <Property name="cycles" value="5"/> </PropertyGroup> <PropertyGroup name="modalities"> <Property name="cycle_nr" value="*"/> </PropertyGroup> ... </TrialType> ... </MeasurementProcess>
Configuration of the measurement system
The most important element is <MeasurementSystem> with the following attributes:
Attribute name | Description |
---|---|
id | unique identifier of the measurement system used in the trialType definitions |
system | Name of the measurement system type as defined in their implementations. |
fileSuffix | file suffix of the default output file written in the motiondata file format. |
Multiple <MeasurementSystem>-elements are possible to define one or more measurement systems. Properties which are specific for a measurement system can be added by <Property>-elements:
<?xml version="1.0" encoding="iso-8859-1" ?> <MeasurementProcess name="Upperlimb Measurement"> <MeasurementSystem id="default" system="ROS" fileSuffix="r3d"> <Property name="sampleRate" value="120.0"/> ...
The data sources are defined as a hierarchy of <TransducerGroup>- and <TransducerUnit>-children-elements. In the current implementation it is not allowed that <TransducerGroup>-elements can contain further <TransducerGroup>-elements.
Attributes of <TransducerUnitGroup>:
Attribute name | Description |
---|---|
name | name of the measurement unit group. |
dispayName | Name shown in the nodes hierarchie after loading the configuration. |
A <TransducerUnit>-element defines a sequence of channels streaming double-data. If the sequence of channels is not defined by the appropriate <channel>-elements, a default sequence is used. But it is recommend to explicitly define the channels sequence to be sure about the data.
Attributes of <TransducerUnit>:
Attribute name | Description |
---|---|
name | name of the measurement unit. |
dispayName | Name shown in the nodes hierarchie after loading the configuration. |
sampleRate | Sample rate of the data streamed by this measurement unit. |
<TransducerUnit>- and <TransducerUnitGroup>-elements can have <Property>-elements as children to define specific properties.
Configuration of the trial types
A trial type defines general aspects of the recording and especially which data should be written into files.
Attribute name | Unit | Type | Description | Optional |
---|---|---|---|---|
name | String | The name of the trial type. It is visible in the list of available trial types in the record UI. | No | |
duration | seconds | float | The duration of the recording. If not set variable-length-recording should be used. But this is currently not implemented. | No |
offset | seconds | float | An offset/time interval to wait after start triggering bevor starting the recording | Yes |
measurementSystemConfigIds | String | A list of measurement system IDs to be used. All measurementsystem which are not listed here are automatically disabled. | No | |
labelset | filename with suffix xml | The name of the labelset to define, which data should be written into files. Details are described in the chapter „Configuration of the output“. | Yes |
Further e.g. trigger or multicycle specific trial type configurations are defined in property-groups. This is described in the following sub chapters.
Multicycle configuration
There are two types of multicycles configuration available. The first one defines only how many cycles should be measured. The following attributes are used as children from the property group multicycles:
Attribute name | Description |
---|---|
cycles | The number of cycles |
The second type defines a sequence of trial types. The following attributes are used as children from the property group multicycles:
Attribute name | Description |
---|---|
cyclesSequence | A space separated list of trial type names |
Trigger configuration
Configuration of the output
Each trial is saved into a seperate file in the motion data object file format. The default suffix of such files is „.r3d“.
Timeseries
Which data to be saved is defined in a labelset xml file as follows:
<?xml version="1.0" encoding="UTF-8"?> <LabelSet name="Vicon Objects and Markers."> <Labels name="ROS" baseFile="true"> <Label sensorName="Thorax" name="ThoraxQ" mathType="QUATERNION_D"/> <Label sensorName="Thorax" name="ThoraxP" mathType="COLUMN_VECTOR_3D"/> <Label sensorName="Thorax" name="ThoraxT" mathType="REAL"/> ...
The sequence of the labels is used to connect to the corresponding channels.
If the unit contains more than one channel for REAL/1dim-type than the label name must contain the channel index as its suffix, starting with „0“.
The current implementation does not allow that a unit contains more than one matrix3x3 or vector3 types.
The <Label>-elements can have the following attributes:
Attribute name | Description | Optional |
---|---|---|
name | A unique label name. It is not needed that this name matches with the corresponding channel name of the sensor. Only the sequence of labels is used to match the sequence of channels of the sensor. | No |
sensorName | The name of the sensor to collect data from. Be careful: This name must match the sensor name. If it does not match no data is saved for this label without any error message. | Yes |
mathType | The math type of the data to collect. | Yes |
differentiations | The count of differentiations to be created. Each differentiation creates a timeserie with an additional prefix „d“. | Yes |
Filter
The timeseries can be filtered automatically before saved.
Sometimes all values of Vector3d-tripples are zero but should be NaN. This can be reached by including:
<Filter name="zero2nan"/>
as a child-element of the <Labels>-element.
Additionel export of subsets of the data
Optional a subset of this data can be saved into additional files of different file formats. To do this, the labelset must include an additional <Labels>-element for each file to write.
<Labels name="ROS" mimeType="text/x-csv" fileSuffix="csv"> <Label name="RightScapulaQ" mathType="QUATERNION_D"/> ...
The following file formats are available:
Mimetype | Description |
---|---|
text/x-csv | A CSV-file with timeseries. The delimiter can be configured in the Options-Pane. A header is given. No metadata are saved. |
Metadata
For each trial meta data is saved into the modalities property group for further postprocessing steps.
There are some properties which are automatically saved:
Property name | Description |
---|---|
TrialType | The name of the used trial type |
SUBJECT | The name of the subject, as configured in the recording UI |
SESSION | The name of the session. Per default this is the name of the session folder. It can be overwritten by the recording UI. |
SIDE | This can be used if the trial is focussed of left, right or both sides of a human body. |
Additional properties are available but must be explicitly configured to be saved as follow:
<PropertyGroup name="modalities"> <Property name="cycle_nr" value="*"/> </PropertyGroup>
The value „*“ is used, if the value is overwritten, e.g. by the nextCycle() response of an iTrigger-SPI implementation.