======Functional joint center/axes estimation methods ====== The calculation of a functional joint is based on the movement of one segment relative to another segment. This allows to estimate knee- and elbow joint axes, hip- and glenohumeral joint centers. The calibrations movements should have sufficient range of motion that the computation statistics produce a reasonable stationary point, but the range of motion should not be too large because soft tissue artifact (e.g. movement of markers relative to the underlying skeleton) should be minimized. Typically specific calibration trials have to be executed. Several cycles of movement should be included, but there is no study which analyses how many cycles is best. We recommend more than 3 cycles, others recomment a minimum of 5. The optimal number may depend on many issues, including the joint and the amount of soft tissue artfeacts. Each user should experiment with his own measurement procedure. A special feature of the Upperlimb software is flexibility in defining cycles. You can use events, if you want to explicitly define the cycles or you can use automatic algorithm based on a first estimation of joint-centers/axes. ==== References==== {{pubmed>long:19651514}} ===== Centre of rotation estimation===== ==== References==== {{pubmed>long:16293257}} ====CoRGamage2002 ==== ===Attributes=== ^ Attribute ^ Default ^ Description ^ Required ^ ^ name | | name of the element | Yes | ^ coordinateSystem | | The name of the base coordinates system the moving marker is defined in. | Yes | ^ biasCompensation | false | Switch bias compensation on or off. | No | ^ biasCompensationIterations | 3 | If bias compensation is used with this attribute the number of iterations can be defined. | No | ^ biasCompensationMaximumChange | 10 | If bias compensation is used and the different between the last two iteration is bigger than the given value in at least one component a warning is given. | No | ^ Condition | | A formula, which defines which frames are included in the functional calibration. If the formula value is 1 the frame is used. | No | ^ phase | | The name of the phases used for functional calibration. If this and the attribute Condtion are both not used the complete trials are used. | No | ===Generated trajectories=== ^Name ^ Type ^ ^ Origin | 3d vector | ===Generated parameters=== ^ Name ^ Type ^ Description ^ ^ OriginLocal | 3d vector | CoR in local coordinates of the parent system. | ^ Radius | Double | Radius of the estimated sphere. | ^ FramesCount | Integer | Number of frames used for calibration. | ^ RadiusStd | Double | Std of the estimated radius of the sphere. | === Comments === * The current implementation is limited to cosider only one "moving" marker. === References=== {{pubmed>long:11747887}} {{pubmed>long:12757809}} ===Examples=== RHUMS ====SCoRE - symmetrical centre of rotation estimation==== ===Attributes=== ^ Attribute ^ Description ^ Required ^ ^ name | name of the element | Yes | ^ parentCoordinateSystem | The name of the base coordinates system. | Yes | ^ childCoordinateSystem | The name of the moving coordinate system. | Yes | ^ Condition | As an alternative to phases or events with this attributes a formula can be defined to be used to descide if a frame should be includes or excluded to the input data. If the value of the formula is bigger than zero than the frame is included. | No | ^ phase | phase name, used if the phases are calculated elsewhere | No | ===Generated trajectories=== ^Name ^ Type ^ ^ Origin | 3d vector | ===Generated parameters=== ^ Name ^ Type ^ Description ^ ^ OriginLocal | 3d vector | CoR in local coordinates of the parent system | ^ FramesCount | double | count of frames used for the estimation | ^ Radius | double | radius of the sphere around the origin of the parent coordinate system on which the origin of the child coordinate system is assumed to move around. | ^ RadiusStd |double | standard deviation of the radien | === References=== {{pubmed>long:16293257}} ===Examples=== ===Notes=== A warining is given, if the count of frames selected by the defined phases is smaller than 30. Keep in mind that even 30 frames typically are too less to get a "good" estimation of a center of rotation. In this case the frames of the complete trial are used, which also typically does not result in an good estimation. ====CoRChang2006 ==== ===Attributes=== ^ Attribute ^ Default ^ Description ^ Required ^ ^ name | | name of the element | Yes | ^ coordinateSystem | | The name of the base coordinates system the moving marker is defined in. | Yes | ====CoRNewton ==== ===Attributes=== ^ Attribute ^ Default ^ Description ^ Required ^ ^ name | | name of the element | Yes | ^ coordinateSystem | | The name of the base coordinates system the moving marker is defined in. | Yes | ===== Axis of rotation estimation===== ===Attributes available for all axis of rotation estimation elements=== ^ Attribute ^ Default ^ Description ^ Required ^ ^ name | | name of the element | Yes | ^ coordinateSystem | | The name of the base coordinates system the moving marker is defined in. | Yes | ^ ReferencePoint| | Typically the estimated axis is the rotation axis of a joint. If this attribute defines a point the joint center is defined by the point on the estimated axis which is as close as possible to the given point. | No | ^ includes | | | No | ^ calibrateIncludes | | | Yes| ^ startEvent | | Event type name to be used to defined the start position of phases to limit the frames for the estimation. | No | ^ endEvent | | Event type name to be used to defined the endposition of phases to limit the frames for the estimation. | No | ^ phase| | Phase type name to define phase to limit the frames for the estimation. | No | ^ Condition | | As an alternative to phases or events with this attributes a formula can be defined to be used to descide if a frame should be includes or excluded to the input data. If the value of the formula is bigger than zero than the frame is included. | No | ===Generated trajectories for all axis of rotation estimation elements=== ^ Name ^ Type ^ Description ^ ^ Axis | 3d vector | Estimated axis direction. | ^ Origin | 3d vector | Estimated axis origin. | ^ ReferencePoint | 3d vector| The trajectory of the optional given reference point | ^ Condition | double | values of the condition formula to include/exclude input frames | ===Generated parameters for all axis of rotation estimation elements=== ^ Name ^ Type ^ Description ^ ^ AxisLocal | 3d vector | Estimated axis in coordinates of the base/local coordinate system. | ^ OriginLocal | 3d vector | Origin of the axis. | ^ Radius | Double | Radius of the estimated sphere. | ^ RadiusStd | Double | Std of the estimated radius of the sphere. | ^ MeanPlaneDist | double | Mean distance of the plane the estimated circle lays in to a plane through the projection of the reference point into the estimated axis. | ^ PlaneDistStd | double | Standard deviation of the distance described in the parameter above (meanPlaneDist) | ====AoRGamage2002==== === Specific Attributes=== ^ Attribute ^ Default ^ Description ^ Required ^ ^ SignAxis | | The functional method determines a line in space but not the sign needed to define an axis. If this attribute is set to a vector, the orientation of the estimated directions is defined to be as close a possible to this vector/orientation. | No | ^ biasCompensationMaximumChange | 10.0 | If bias compensation is used, the value of this attributes defines a maximum difference between two iterations. | No | ^ biasCompensation | false | If set to true, than bias compensation is used | No | ^ biasCompensationInterations | 3 | Number of iterations for the bias compensation | No | ===Generated specific trajectories=== ^Name ^ Type ^ Description ^ ^ | 3d vector | Points which are used as input for the estimation | ^ SignAxis| 3d vector | The given axis to define the sign of the estimated axis | ===Generated specific parameters=== ^ Name ^ Type ^ Description ^ ^ SignAxisLocal| 3d vector| Sign axis in coordinates of the base/local coordinate systen, if the sign axis attribute is used. | === Comments === * The current implementation is limited to cosider only one "moving" marker. ===Examples=== BASEP === References=== {{pubmed>long:11747887}} ====AoRSARA==== Least square optimization of an axis of rotation, based on symmetrical center of rotation estimation, solved with SVD decomposition. ===Specific Attributes=== ^ Attribute ^ Default ^ Description ^ Required ^ ^ movingCoordinateSystem | | The name of the base coordinates system the moving marker is defined in. | Yes | ^ considerSymmetricSolution | false | If this attribute is set to true, than the symmetric solution with the moving coordinate as a reference is calculated and the corresponsing parameters are saved. | No | ^ SignAxis | | The functional method determines a line in space but not the sign needed to define an axis. If this attribute is set to a vector, the orientation of the estimated directions is defined to be as close a possible to this vector/orientation. | No | ===Generated specific trajectories=== ^Name ^ Type ^ Description ^ ^ SignAxis| 3d vector | The given axis to define the sign of the estimated axis | ===Generated specific parameters=== ^ Name ^ Type ^ Description ^ ^ SignAxisLocal| 3d vector| Sign axis in coordinates of the base/local coordinate systen, if the sign axis attribute is used. | ^ AxisLocal2 | 3d vector | Estimated axis in coordinates of the moving coordinate system, if the corresponding attribute is set to true. | ^ OriginLocal2 | 3d vector | Origin of the axis in the coordinate of the moving coordinate systen, if the corresponding attribute is set to true. | ===Examples=== ====AoRChang2007==== ===Attributes=== ^ Attribute ^ Default ^ Description ^ Required ^ ^ name | | name of the element | Yes | ^ coordinateSystem | | The name of the base coordinates system the moving marker is defined in. | Yes |