Rotation Types
Abstract rotations
A matrix $R$ is called rotation matrix if $R$ satisfies
\[\begin{aligned} R^\top &= R^{-1}, & \det(R)&=1. \end{aligned}\]
In Rotations.jl
, there's an abstract type for rotations matrix, Rotation{L}
. Where L
is a size of the rotation matrix.
Type hierarchy
julia> using Rotations, StaticArrays
julia> Rotation <: StaticMatrix <: AbstractMatrix
true
julia> subtypes(Rotation{2})
2-element Vector{Any}: Angle2d RotMatrix{2}
julia> subtypes(Rotation{3})
27-element Vector{Any}: AngleAxis MRP QuatRotation RodriguesParam RotMatrix{3} RotX RotXY RotXYX RotXYZ RotXZ ⋮ RotYZY RotZ RotZX RotZXY RotZXZ RotZY RotZYX RotZYZ RotationVec
Overview of each type
For more information, see the sidebar page.
2D rotations
RotMatrix2{T}
- Rotation matrix in 2 dimensional Euclidean space.
Angle2d
- Parametrized with rotational angle.
3D rotations
RotMatrix3{T}
- Rotation matrix in 3 dimensional Euclidean space.
RotX
,RotYZ
,RotXYZ
and etc.- Euler angles.
AngleAxis
- Rotation around given axis and angle.
RotationVec
- Rotation around given axis. The length of axis vector represents its angle.
QuatRotation
- A 3D rotation parameterized by a unit quaternion.
MRP
- A 3D rotation encoded by the stereographic projection of a unit quaternion.