# Orientation

Orientation object defining rotation from a frame 1 into a frame 2

# Information

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

This object describes the rotation from a frame 1 into a frame 2. An instance of this type should never be directly accessed but only with the access functions provided in package Modelica.Mechanics.MultiBody.Frames. As a consequence, it is not necessary to know the internal representation of this object as described in the next paragraphs.

"Orientation" is defined to be a record consisting of two elements: "Real T[3,3]", the transformation matrix to rotate frame 1 into frame 2 and "Real w[3]", the angular velocity of frame 2 with respect to frame 1, resolved in frame 2. Element "T" has the following interpretation:

```Orientation R;
R.T = [ex, ey, ez];
e.g., R.T = [1,0,0; 0,1,0; 0,0,1]
```

where ex,ey,ez are unit vectors in the direction of the x-axis, y-axis, and z-axis of frame 1, resolved in frame 2, respectively. Therefore, if v1 is vector v resolved in frame 1 and v2 is vector v resolved in frame 2, the following relationship holds:

```v2 = R.T * v1
```

The inverse orientation R_inv.T = R.TT describes the rotation from frame 2 into frame 1.

Since the orientation is described by 9 variables, there are 6 constraints between these variables. These constraints are defined in function Frames.orientationConstraint.

R.w is the angular velocity of frame 2 with respect to frame 1, resolved in frame 2. Formally, R.w is defined as:
skew(R.w) = R.T*der(transpose(R.T)) with

```          |   0   -w[3]  w[2] |
skew(w) = |  w[3]   0   -w[1] |
| -w[2]  w[1]     0 |
```

# Used in Components (28)

 Revolute Modelica.Mechanics.MultiBody.Joints Revolute joint (1 rotational degree-of-freedom, 2 potential states, optional axis flange) RevolutePlanarLoopConstraint Modelica.Mechanics.MultiBody.Joints Revolute joint that is described by 2 positional constraints for usage in a planar loop (the ambiguous cut-force perpendicular to the loop and the ambiguous cut-torques are set arbitrarily to zero) Spherical Modelica.Mechanics.MultiBody.Joints Spherical joint (3 constraints and no potential states, or 3 degrees-of-freedom and 3 states) FreeMotion Modelica.Mechanics.MultiBody.Joints Free motion joint (6 degrees-of-freedom, 12 potential states) UniversalSpherical Modelica.Mechanics.MultiBody.Joints Universal - spherical joint aggregation (1 constraint, no potential states) JointUPS Modelica.Mechanics.MultiBody.Joints.Assemblies Universal - prismatic - spherical joint aggregation (no constraints, no potential states) Prismatic Modelica.Mechanics.MultiBody.Joints.Constraints Prismatic cut-joint and translational directions may be constrained or released Revolute Modelica.Mechanics.MultiBody.Joints.Constraints Revolute cut-joint and translational directions may be constrained or released Spherical Modelica.Mechanics.MultiBody.Joints.Constraints Spherical cut joint and translational directions may be constrained or released Universal Modelica.Mechanics.MultiBody.Joints.Constraints Universal cut-joint and translational directions may be constrained or released RevoluteWithLengthConstraint Modelica.Mechanics.MultiBody.Joints.Internal Revolute joint where the rotation angle is computed from a length constraint (1 degree-of-freedom, no potential state) InitPosition Modelica.Mechanics.MultiBody.Joints.Internal Internal model to initialize r_rel_a for Joints.FreeMotionScalarInit InitAngle Modelica.Mechanics.MultiBody.Joints.Internal Internal model to initialize the angels for Joints.FreeMotionScalarInit InitAngularVelocity Modelica.Mechanics.MultiBody.Joints.Internal Internal model to initialize w_rel_b for Joints.FreeMotionScalarInit FixedRotation Modelica.Mechanics.MultiBody.Parts Fixed translation followed by a fixed rotation of frame_b with respect to frame_a Body Modelica.Mechanics.MultiBody.Parts Rigid body with mass, inertia tensor and one frame connector (12 potential states) BodyBox Modelica.Mechanics.MultiBody.Parts Rigid body with box shape. Mass and animation properties are computed from box data and density (12 potential states) BodyCylinder Modelica.Mechanics.MultiBody.Parts Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states) RelativeAngles Modelica.Mechanics.MultiBody.Sensors Measure relative angles between two frame connectors BasicRelativeAngularVelocity Modelica.Mechanics.MultiBody.Sensors.Internal Basic sensor to measure relative angular velocity BasicTransformAbsoluteVector Modelica.Mechanics.MultiBody.Sensors.Internal Transform absolute vector into another frame BasicTransformRelativeVector Modelica.Mechanics.MultiBody.Sensors.Internal Transform relative vector into another frame Arrow Modelica.Mechanics.MultiBody.Visualizers.Advanced Visualizing an arrow with variable size; all data have to be set as modifiers (see info layer) DoubleArrow Modelica.Mechanics.MultiBody.Visualizers.Advanced Visualizing a double arrow with variable size; all data have to be set as modifiers (see info layer) PipeWithScalarField Modelica.Mechanics.MultiBody.Visualizers.Advanced Visualizing a pipe with a scalar field Lines Modelica.Mechanics.MultiBody.Visualizers.Internal Visualizing a set of lines as cylinders with variable size, e.g., used to display characters (no Frame connector) PartialShape Modelica.Utilities.Internal.PartialModelicaServices.Animation Interface for 3D animation of elementary shapes PartialSurface Modelica.Utilities.Internal.PartialModelicaServices.Animation Interface for 3D animation of surfaces