# Nimue platform

### Seitenleiste

modellingcomponents:elements:kinematics

# CoordinateSystem

This element is used to define a cartesian coordinate system, based on two given vectors using crossproducts, or by rotating a reference coordinate system by given angles about its axes. The element creates a trajectory with the name of the element.

The given FirstAxis stays as first axis. The cross product between DefiningVector and the vector defined by FirstAxis defines the second axis. The third axis is defined by the cross product between the first axis and the second axis. This behavoir corresponds to the software BodyBuilder of the company Vicon!

The element can be used to create coordinate systems also by other ways, e.g. by rotating a given coordinate system around an axis. Also non orthogonal axes systems can be defined or a calibration can be used to fix a coordinate system on a given one.

Attribute Default Description Required
name Name of the element Yes
isVisible false Flag to define if 3d/4d visualitation of the frame as a tripod is wanted No
visibleVectorLength 100 If the flag isVisible=„true“ is set, the length of the 3d vectors representing the tripod, shown in the 3d/4d view can be defined. No
FirstAxis Defines the first axis of the frame.
DefiningVector The crossproduct between this vector and FirstAxis defines the second axis. The third axis is defined by the crossproduct between FirstAxis and this second axis. No
orientation xyz Reihenfolge der Achsen. No
Position Origin of the coordinate system defined in coordinates of the global laboratory cartesian system. If this coordinate system is defined by calibration or by rotation of a reference system this attribute is optional and overwrites the origin defined by calibration. No
forceRightHanded Wenn das Flag forceRightHanded=„false“ gesetzt wurde, dann wird gegebenenfalls die dritte Achse umgedreht. D.h. bei den Konfigurationen: xzy, zyx und yxz wird die y, die x bzw. die z-Achse umgedreht. Die 3. Achse zeigt damit in etwa entgegengesetzt zu DefiningVector. No
FirstAxis Alternativ to the definition of the rotation by the attributes DefiningVector and FirstAxis with these three attributes it is possible to define a non orthogonal coordinate system. (Besser in ein eigenes Element auslagern: NonOrthogonalCoordinateSystem. Das kann ich dann gut beim Einsatz von JointCoordinateSystems gebrauchen … No
SecondAxis No
ThirdAxis No
coordinateSystem If the attribute coordinatesSystem ist used, this coordinate system is defined by a rotation about the RotAxis by RotAngle of the coordinate system set by the coordinateSystem attribue. If you want to rotate about a axis of the given coordinate system use e.g. <name>_X for a rotation about the x axis. If you want to define the coordinate system by a sequence of two or three rotations use the attribute EulerCardanAngles. (Vielleicht sollte diese Element besser wieder eliminiert werden. Besser alternativ das Element ForwardFrame verwenden.) No
RotAxis Axis to rotate the three axes of the given coordinate system to determine a new one. No
RotAngle Angle in degree to rotation the given coordinaten system around the given axis to determine a new coordinate system. Use the right-hand-rule. If the rotation axis show in direction of the thumb of the right hand, the direction of your fingers shows in direction of positive angles. No
EulerCardanAngles If the attribute coordinatesSystem ist set the coordinate system can be defined by a sequence of three rotations about the axes of this coordinate system. The needed three angles are defined as mathematical formula defining a 3d vector, e.g. „vec(10.0,0.0,0.0) for defining a one step rotation about the first axis. The sequence of the corresponding axes is defined by the attribute orientation. If only one or two rotations are needed you can set the other angles to 0. (Die Syntax in unglücklich, da die Winkel keinen Vektor bilden. Schöner wäre es die Einzelkomponenten mit einzelnen Attributen zu setzen! Vielleicht sollte diese Element besser wieder eliminiert werden. Besser alternativ das Element ForwardFrame verwenden.) No
average Additional calculation of the trial average. The value is saved as a parameter with the name of the element and „Average“ as a suffix: <name of the element>Average No
movingMeanWindowWidth (das ist obsolet, da die Methode der Ableitungsbildung geändert wurde) 0.05 Angegeben wird eine reele Zahl, die in der Regel ein Vielfaches der Schrittbreite ist. Sie gibt die Breite des Zeitintervalls in Sekunden an über das gemittelt wird, wenn Ableitungen bestimmt werden. Wenn movingMeanWindowWidth/2 kein Vielfaches der Schrittbreite ist, wird die nächst kleinere Zahl von Schritte bestimmt! No
differentiations 0 An integer, which defines how many differentiations of the trajectories are calculated. No

### Generated variables

Name Type Description trial parameter model parameter trajectorie Availability
<name> Matrix3d Representation of the three orthogonal orientation axes of the coordinate system (columns of the matrix) x always
<name>_x Vector3d first column of the matrix with name <name> X always
<name>_y Vector3d second column of the matrix with name <name> X always
<name>_z Vector3d third column of the matrix with name <name> X always
<name>Position Vector3d Origin of the coordinate system X only if it is not defined by a constant expression, e.g. vec(0.0,0.0,0.0).)
<name>_XLocal Vector3d X after calibration
<name>_YLocal Vector3d X after calibration
<name>_ZLocal Vector3d X after calibration
<name>_PositionLocal Vector3d X after calibration

### Examples

The following example defines a coordinate system „LHumerusHDCalB“ by rotating the coordinate system „LHumerusHDCalA“ around the upright axis about 30 degrees:

```<CoordinateSystem name="LHumerusHDCalB"
coordinateSystem="LHumerusHDCalA"
RotAxis="LHumerusHDCalA"
RotAngle="30.0"

# ForwardFrame

This element defines a cartesian coordinate system based on a parent coordinate system by rotations about given angles about 1, 2 or 3 axes.

# Point

A point element defines es spatial 3d point defined by coordinates of the laboratory/global system or by coordinates in a given local coordinate system. The element creates a trajectory with the name of the element and the type of a 3d-Vector of double values.

Attribute Default Description Required
name Name of the element Yes
localPoint Instead of defining the point by coordinates in the laboratory/global system, it is possible to define the point by arbitrary local coordinates. The global coordinates of the point are then calculated by transforming with the given coordinate system. Note: This attribute needs the use of the attribute coordinateSystem. No
coordinateSystem Name of the coordinate system element which is used in two cases: 1. If the point is defined in local coordinates with the attribut „localPoint“ it defines the corresponding coordinate system. 2. If calibration is used, than for static trial which is defined by switches given with the attributes calibrateIncludes/calibrateExcludes the point is transformed in local coordinates of the coordinate system which is given with this element. For all other trials the local coordinates are back transformed to the global coordinates using the current value of the coordinate system defined by this attribute. No
referencePoint In a static trial the distance to this point is calculated as a trial mean. In no calibration trials this distance is used to translate the current position of the point to hold this fix distance. Note: This feature is not available in combination with the use of localPoint. No
expr (deprecated) Mathematical formula which defnines the point. Note: Typically this attribut is not used. The formula is given as elements content instead. No
x, y, z (deprecated) These attributes allows an alternative definition of the point by seperate mathematical formulas for each of the three components. No
noise No
noiseAmplitude No
debug No
visible No
includes A comma seperated list of switches to define for which trial the element is used. No
excludes A comma seperated list of switches to define for which trial the element is not used. No
calibrateIncludes No
calibrateExcludes No
average false Additional calculation of the trial average. The value is saved as a parameter with the name of the element and „Average“ as a suffix: <name of the element>Average, if this attribute is set to „true“. No

## Examples

In the calibration trial defined by the switch „static“ A is calculated as B+C in coordinates of the global laboratory system. The absolute coordinates are transformed in the given local coordinate system „Thorax“. In all of the following trials A is calculated by the fixed local coordinates by transforming to global coordinates by the current attitude of the „Thorax“ coordinate system.

```<Point name="A"
average="true"
excludes="static">B+C</Point>```

Calculates the point A as B+C in coordinates of the global laboratory system. If the switch „static“ is set for a trial nothing is calculated.

```<Point name="A"
localPoint="B+C"
coordinateSystem="Thorax"/>```

Calculates the point A as B+C in local coordinates and than thransform them by the coordinate system „Thorax“ in global coordinates.

```<Point name="A"
coordinateSystem="Thorax"
calibrateIncludes="static">B+C</Point>```

## Created trajectories and parameters

Name Type Condition Description
<name> Vector3d always the point values
<name>LocalPoint Vector3d if the attribute „localPoint“ is used trajectorie or parameter as defined by the formula given with the „localPoint“ attribute
<name>Local Vector3d if calibration is used
<name>ReferencePoint Vector3d if calibration is used
<name>ReferencePointDistance Vector3d only for calibration trials
<name>ReferencePointDistanceCalibrate Vector3d only for calibration trials if the reference point attribute is used distance to a given referencePoint

# LocalPoint

A local point element defines es spatial 3d point defined by coordinates of a given local coordinate system. The element creates a trajectory with the name of the element an the type of a 3d-Vector of double values.

# Vector

A <Vector>-element defines a 3d vector in coordinates of the laboratory global system or in coordinates of a given local coordinate system. The element creates a trajectory with the name of the element and the type of a 3d vector of double values.

# LocalVector

A local vector element defines es spatial 3d vector defined by coordinates of a given local coordinate system. The element creates a trajectory with the name of the element an the type of a 3d-Vector of double values.

# Real

Calculation of a double trajectorie. The element creates a trajectory with the name of the element and the type of double.

Attribute Default Description Required
name name of the element Yes
process Available values: stepbystep, post; The „process phase“, in which the calculations are done. stepbystep No
noiseAmplitude
expr Mathematical formula defining a double. This attribute can be used instead of defining the formula as elements content.
debug false No
visible
includes Comma seperated list of switches to define which trials are included. No
excludes Comma seperated list of swithces to define which trials are excluded. No
calibrateIncludes
calibrateExcludes
average (in Mean umbenennen) Additional calculation of the trial average. The value is saved as a parameter with the name of the element and „Average“ as a suffix: <name of the element>Average No
meanStd (in MeanStd umbennen) If set to true, mean average is calculated and saved in the parameter <name>MeanStd.
differentiations 0 If this attribute is set to a integer value bigger than 0, the differentiations of the trajectorie <name> are calculated in the after step by step calculation (calculateOnCompleteTrajectories())

### Calculated Parameters

Parameters are calculated, if calibration is used or one or both of the flags „average“ and „meanStd“ are set to „true“:

Name Description trial parameter model parameter trajectorie Availability
<name> X
<name>Average In the case of calibration the parameters saves the average about one or more calibration trials. In a first step each trial is averaged and than these average values are averaged. X If the average=„true“ or meanStd=„true“ or if calibration is used and a calibration trial is processed
<name>Mean, <name>Mean_<Trial number> Determines a trial average. If more than one trial is in the group of trials to be processed for this elemement than the trial number is append as an suffix. X X The parameter is saved in the trial if there is no calibration. If calibration is used the parameter is saved in the sessions parameter file.
<name>MeanStd If mean std determination is switched on (meanStd=„true“) the calculated values is saved X

### Examples

`<Real name="A">B+C</Real>`

# Matrix3x3

Calculation of a 3×3 marix trajectorie. The element creates a trajectory with the name of the element and the type of Matrix3x3.

Attribute Default Description Required
name name of the element Yes
q0 „w“-value of a quaternion to define the matrix elements No
q1 „q1“-value of a quaternion to define the matrix elements No
q2 „q2“-value of a quaternion to define the matrix elements No
q3 „q3“-value of a quaternion to define the matrix elements No
x columnvector defining the x-direction of the of a coordinate system, corresponding to the first column of the matrix No
y columnvector defining the y-direction of the of a coordinate system, corresponding to the first column of the matrix No
z columnvector defining the z-direction of the of a coordinate system, corresponding to the first column of the matrix No
process Planed values: stepbystep, post; The „process phase“, in which the calculations are done. stepbystep. Not yet implemented No
noiseAmplitude Not yet implemented. No
expr (deprecated) Mathematical formula defining a double. This attribute can be used instead of defining the formula as elements content.
debug false No
visible
includes Comma seperated list of switches to define which trials are included. No
excludes Comma seperated list of swithces to define which trials are excluded. No
calibrateIncludes Not yet implemented. No
calibrateExcludes Not yet implemented. No
average (in Mean umbenennen) Additional calculation of the trial average. The value is saved as a parameter with the name of the element and „Average“ as a suffix: <name of the element>Average No
meanStd (in MeanStd umbennen)
m<ij> with i,j=0,1,2; e.g. m00, m01, … defining all 9 matrix elements seperately No
localMatrix Not yet implemented. No

# Mean and Standard Deviation

A <MeanStd> element determines mean and std of a mathematical formula over all frames of all trials defined by includes/includes.

# Parameter

A <Parameter> element calculates time distance parameters for each trial.

# PointSetFit

A <PointSetFit> element calculates rotation and translation for best fit mapping of two given point sets based on a singular value decomposition.

Least-squares fitting of two 3-d point sets.
Arun KS, Huang TS, Blostein SD
IEEE Trans Pattern Anal Mach Intell9p698-700(1987 May)

### Attributes

Attribute Default Description Required
name Name of the element Yes
phase Type name of phases to defines the frames to be used. For each phase the mean values of the two pointset-trajectories are calculated and used as a set of points. No
pointSet Name of the trajectory from which to get the point for the seconds point set. The trajectorie to define the first point set is defined by the elements content. Yes
noise No
noiseAmplitude No
debug No
includes A comma seperated list of switches to define for which trial the element is used. No
excludes A comma seperated list of switches to define for which trial the element is not used. No
calibrateIncludes Yes
calibrateExcludes No

### Examples

```<PointSetFit name="Vicon2UR5e"
phase="Pose"
pointSet="TCPURP*1000.0"
calibrateIncludes="kirkdefault"
includes="kirkdefault">TCPP</PointSetFit>```

### Created trajectories and parameters

Name Type Condition trajectorie Description
<name> Vector3d always x p1 transformed into the least squares fittet system based on p2.
<name>P2 Vector3d always x Trajectorie which defines points of the point set 2.
<name>R Matrix3d always Rotation from pointset 1 to 2.
<name>T Vector3d always Tranlation from pointset set 1 to 2.

### Seiten-Werkzeuge 