Copyright | (c) 2018 Cedric Liegeois |
---|---|
License | BSD3 |
Maintainer | Cedric Liegeois <ofmooseandmen@yahoo.fr> |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Rotation matrices from/to 3 angles about new axes
All functions are implemented using the vector-based approached described in Gade, K. (2010). A Non-singular Horizontal Position Representation
Documentation
r2xyz :: [Vector3d] -> [Angle] Source #
Angles about new axes in the xyz-order from a rotation matrix.
The produced list contains 3 Angle
s of rotation about new axes.
The x, y, z angles are called Euler angles or Tait-Bryan angles and are defined by the following procedure of successive rotations: Given two arbitrary coordinate frames A and B. Consider a temporary frame T that initially coincides with A. In order to make T align with B, we first rotate T an angle x about its x-axis (common axis for both A and T). Secondly, T is rotated an angle y about the NEW y-axis of T. Finally, T is rotated an angle z about its NEWEST z-axis. The final orientation of T now coincides with the orientation of B. The signs of the angles are given by the directions of the axes and the right hand rule.
r2zyx :: [Vector3d] -> [Angle] Source #
Angles about new axes in the xyz-order from a rotation matrix.
The produced list contains 3 Angle
s of rotation about new axes.
The z, x, y angles are called Euler angles or Tait-Bryan angles and are
defined by the following procedure of successive rotations:
Given two arbitrary coordinate frames A and B. Consider a temporary frame
T that initially coincides with A. In order to make T align with B, we
first rotate T an angle z about its z-axis (common axis for both A and T).
Secondly, T is rotated an angle y about the NEW y-axis of T. Finally, T
is rotated an angle x about its NEWEST x-axis. The final orientation of
T now coincides with the orientation of B.
The signs of the angles are given by the directions of the axes and the
right hand rule.
Note that if A is a north-east-down frame and B is a body frame, we
have that z=yaw, y=pitch and x=roll.
xyz2r :: Angle -> Angle -> Angle -> [Vector3d] Source #
Rotation matrix (direction cosine matrix) from 3 angles about new axes in the xyz-order.
The produced (no unit) rotation matrix is such
that the relation between a vector v decomposed in A and B is given by:
v_A = mdot R_AB v_B
The rotation matrix R_AB is created based on 3 angles x,y,z about new axes (intrinsic) in the order x-y-z. The angles are called Euler angles or Tait-Bryan angles and are defined by the following procedure of successive rotations: Given two arbitrary coordinate frames A and B. Consider a temporary frame T that initially coincides with A. In order to make T align with B, we first rotate T an angle x about its x-axis (common axis for both A and T). Secondly, T is rotated an angle y about the NEW y-axis of T. Finally, T is rotated an angle z about its NEWEST z-axis. The final orientation of T now coincides with the orientation of B. The signs of the angles are given by the directions of the axes and the right hand rule.
zyx2r :: Angle -> Angle -> Angle -> [Vector3d] Source #
rotation matrix (direction cosine matrix) from 3 angles about new axes in the zyx-order.
The produced (no unit) rotation matrix is such
that the relation between a vector v decomposed in A and B is given by:
v_A = mdot R_AB v_B
The rotation matrix R_AB is created based on 3 angles z,y,x about new axes (intrinsic) in the order z-y-x. The angles are called Euler angles or Tait-Bryan angles and are defined by the following procedure of successive rotations: Given two arbitrary coordinate frames A and B. Consider a temporary frame T that initially coincides with A. In order to make T align with B, we first rotate T an angle z about its z-axis (common axis for both A and T). Secondly, T is rotated an angle y about the NEW y-axis of T. Finally, T is rotated an angle x about its NEWEST x-axis. The final orientation of T now coincides with the orientation of B. The signs of the angles are given by the directions of the axes and the right hand rule.
Note that if A is a north-east-down frame and B is a body frame, we have that z=yaw, y=pitch and x=roll.