Releases: JuliaSpace/ReferenceFrameRotations.jl
Releases · JuliaSpace/ReferenceFrameRotations.jl
v0.5.6
ReferenceFrameRotations v0.5.6
- The operation
-(::Quaternion)is now defined. - The package is now tested only against Julia 1.0 and 1.5.
v0.5.5
ReferenceFrameRotations v0.5.5
- Quaternion now supports scalar indexing. This forced
Quaternionto be a subtype ofAbstractVector. Thus, it can now be broadcasted to a vector without any allocations. - The package is now tested only against Julia 1.0 and 1.4.
v0.5.4
ReferenceFrameRotations v0.5.4
- Improvements in the documentation of functions and macros.
- The package is now tested only against Julia 1.0 and 1.3.
Closed issues:
- dcm_to_quat may have wrong sign on the img part (#8)
Merged pull requests:
- Install TagBot as a GitHub Action (#9) (@JuliaTagBot)
v0.5.3
- It is not necessary to use
sprintto create the color sequences when using Crayons.jl.
v0.5.2
Dummy release to add Project.toml and switch to Registrator.jl.
v0.5.1
- The conversion from DCM to Euler Angle and Axis had a bug when an identity DCM was being used. In this case, the returned axis was
[NaN, NaN, NaN], when the correct is[0, 0, 0]. - The test coverage was highly improve, reaching more than 97% of the code.
- All the colors in printing functions are now handled by the package Crayons.jl.
v0.5.0
- The function
smallangle_to_dcmnow returns a orthornormalized DCM by default. This behavior can be modified by the keywordnormalize. - The nomenclature of all conversion functions was changed from
<representation 1>2<representation 2>to<representation 1>_to_<representation 2>. Hence, for example,angle2dcmis now calledangle_to_dcm. All the older names are now deprecated. - Many bugs were fixed in the conversion from DCM to Euler angles related to singularities, gimbal-locks, multiple representations, and signed zeros.
- When converting from Euler angle and axis to quaternion, the real part will always be positive now.
- The operations
*andinvwithEulerAnglesare now defined. - The operations
*andinvwithEulerAngleAxisare now defined. - The conversion functions between DCM and Euler angle and axis were added (
angleaxis_to_dcmanddcm_to_angleaxis). EulerAnglesandEulerAngleAxisstructures now have a dedicated printing function.- The conversion functions between Euler angle and axis and Euler angles were added (
angleaxis_to_angleandangle_to_angleaxis). - The function
orthonormalize, which orthonormalizes DCMs using the Gram-Schmidt algorithm, was added. - The function
angle_to_anglewas added to modify the rotation sequence of Euler angles. - Many performance improvements.
- Improvements in the printing function of quaternions.
- The API functions
inv_rotationandcompose_rotationnow support all the representations (DCM, Euler angle and axis, Euler angles, and quaternions). - A new, more general constructor for
EulerAngleswas added.
v0.4.1
- The operation
\between Quaternions and Vector now supports everyAbstractVector. - The
EulerAngleAxisnow stores the vectorvusingSVectorinstead ofVector. Notice that the constructors were adapted to accept allAbstractVector. Hence, it is not expected any breakage in old code. - The conversion between
QuaternionandEulerAngleAxisnow checks if the Euler angle is 0. In this case, the Euler vector[1;0;0]is used. Previously, a vector withNaNwas returned.
v0.4.0
- The function
dcm2quatforced the returned Quaternion to be of the same type of DCM. However, since some floating-point operations are required to convert between these two rotation representation, then it could lead toInexactErrorexception. Old code that depends on the quaternion type returned fromdcm2quatmay break. DCM{T}was defined asSMatrix{3,3,T}. However, this can lead to type-unstable functions in some cases. Hence, the definition was changed toSMatrix{3,3,T,9}. Code usingDCM{T}will continue to work without problems.- The function
eyehas been marked as deprecated in favor of the initialization using theUniformScalling(I) object. - The
normfunction was not being exported. - The left and right division operations between two quaternions was defined. Hence, the operation
inv(q)*v*qcan be now written in the more compact formq\v*q. - DCMs and Quaternions now fully support the
UniformScallingobject for initialization and operations. Hence, an identity DCM can be created usingDCM(I)and an identity quaternion can be created usingQuaternion(I). - The structures and operations no longer restrict the type of the rotation representation to be real numbers. Hence, it is now possible to perform, for example, the multiplication between two integer quaternions. The type of the result will be automatically inferred.
- The package is not tested against Julia 0.7 anymore. Although it is still supposed to work with Julia 0.7, it is highly advisable to use Julia 1.0 or higher.
- The documentation of the functions was modified to be less verbose.
v0.3.0 - Full support for Julia 0.7 and 1.0
- Full support for
Julia 0.7andJulia 1.0.- The support for
Julia <= 0.6is dropped in this version. Hence, ReferenceFrameRotations.jl will not work with those versions anymore. If it is necessary to useJulia <= 0.6, then you should need to stick withReferenceFrameRotations.jl <= 0.2.1.
- The support for