WOLFRAM SYSTEM MODELER

from_T

Return quaternion orientation object Q from transformation matrix T

Wolfram Language

In[1]:=
SystemModel["Modelica.Mechanics.MultiBody.Frames.Quaternions.from_T"]
Out[1]:=

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

Syntax

Q = Quaternions.from_T(T, Q_guess);

Description

This function returns a quaternions orientation Q. computed from a transformation matrix T and depending on the initial guess Q_guess. Generally, the transformation matrix T can be gained using a function from the TransformationMatrices package.

See also

to_T. from_T_inv, Frames.from_T, TransformationMatrices.from_T.

Syntax

Q = from_T(T, Q_guess)

Inputs (2)

T

Type: Real[3,3]

Description: Transformation matrix to transform vector from frame 1 to frame 2 (v2=T*v1)

Q_guess

Default Value: nullRotation()

Type: Orientation

Description: Guess value for Q (there are 2 solutions; the one close to Q_guess is used

Outputs (1)

Q

Type: Orientation

Description: Quaternions orientation object to rotate frame 1 into frame 2 (Q and -Q have same transformation matrix)

Revisions

  • January 2021 by Jakub Tobolar
    reimplemented for more efficient and numerically stable algorithm according to https://d3cw3dd2w32x2b.cloudfront.net/wp-content/uploads/2015/01/matrix-to-quat.pdf. It compares only one particular diagonal element with another to select one of the four code parts. Then, the selected code delivers four components which are close to the desired quaternion, so that it has only be scaled by an appropriate factor.
    We appreciate the effort of Mike Day, the author of the abovementioned document. Credit also goes to Matthias Hellerer (DLR) for making inquiries and the first Modelica implementation.