ReferenceFrameRotations.jl
This module contains functions related to 3D rotations of reference frames. It is used on a daily basis on projects at the Brazilian National Institute for Space Research (INPE).
Requirements
Julia >= 0.6
StaticArrays
Installation
This package can be installed using:
julia> Pkg.update()
julia> Pkg.add("ReferenceFrameRotations")Status
This packages supports the following representations of 3D rotations:
Euler Angle and Axis (INCOMPLETE);
Euler Angles;
Direction Cosine Matrices (DCMs);
Quaternions.
However, composing rotations is only currently supported for DCMs and Quaternions.
Furthermore, the following conversions between the representations are available:
Direction Cosine Matrices to Euler Angles;
Direction Cosine Matrices to Quaternions;
Euler Angle and Axis to Quaternions;
Euler Angles to Direction Cosine Matrices;
Euler Angles to Quaternions;
Small Euler Angles to Direction Cosine Matrices;
Small Euler Angles to Quaternions;
Quaternions to Direction Cosine Matrices;
Quaternions to Euler Angle and Axis;
Quaternions to Euler Angles.
Roadmap
This package will be continuously enhanced. Next steps will be to add other representations of 3D rotations such as Euler angle and axis (initial support is already available), Rodrigues parameters, etc.
Manual outline
- Euler Angle and Axis
- Euler Angles
- Quaternion
- Conversions
- DCMs to Euler Angles
- DCMs to Quaternions
- Euler Angle and Axis to Quaternions
- Euler Angles to Direction Cosine Matrices
- Small Euler Angles to Direction Cosine Matrices
- Small Euler Angles to Quaternions
- Quaternions to Direction Cosine Matrices
- Kinematics
- Composing rotations
- Inverting rotations
Library documentation
ReferenceFrameRotations.DCMReferenceFrameRotations.EulerAngleAxisReferenceFrameRotations.EulerAnglesReferenceFrameRotations.QuaternionReferenceFrameRotations.QuaternionReferenceFrameRotations.QuaternionReferenceFrameRotations.QuaternionBase.:*Base.:*Base.:*Base.:*Base.:*Base.:+Base.:-Base.:/Base.:/Base.LinAlg.normBase.conjBase.copyBase.eyeBase.eyeBase.getindexBase.imagBase.invBase.realBase.showBase.zerosBase.zerosReferenceFrameRotations.angle2dcmReferenceFrameRotations.angle2dcmReferenceFrameRotations.angle2quatReferenceFrameRotations.angle2quatReferenceFrameRotations.angle2rotReferenceFrameRotations.angle2rotReferenceFrameRotations.angleaxis2quatReferenceFrameRotations.angleaxis2quatReferenceFrameRotations.compose_rotationReferenceFrameRotations.create_rotation_matrixReferenceFrameRotations.dcm2angleReferenceFrameRotations.dcm2quatReferenceFrameRotations.ddcmReferenceFrameRotations.dquatReferenceFrameRotations.inv_rotationReferenceFrameRotations.quat2angleReferenceFrameRotations.quat2angleaxisReferenceFrameRotations.quat2dcmReferenceFrameRotations.smallangle2dcmReferenceFrameRotations.smallangle2quatReferenceFrameRotations.smallangle2rotReferenceFrameRotations.vect