JuliaSpace / ReferenceFrameRotations.jl

A toolbox to represent 3D rotations of coordinate frames for Julia language.
MIT License
59 stars 13 forks source link

Add conversion methods to DCM #19

Closed juliohm closed 2 years ago

juliohm commented 3 years ago

Related to #18

This PR is a first step towards solving the manual conversion between different rotation types. After reading the code more carefully I realized that we will need to refactor existing types before we can add more conversion methods. I will open specific issues to discuss this further.

Appreciate if you can review this PR before I can continue working in other improvements.

ronisbr commented 2 years ago

Any idea why the tests are failing against nightly?

juliohm commented 2 years ago

Hi @ronisbr the errors on nightly seem unrelated to the changes in the PR. Can you please double check and see if everything is ok to merge?

ronisbr commented 2 years ago

Hi @juliohm

I will investigate because it seems that master is passing here without problems.

ronisbr commented 2 years ago

Hi @juliohm

Sorry for the late response. Yes, the errors does not seem to be related to this PR, but with something that has changed with Julia-nightly.

ronisbr commented 2 years ago

I also added the conversion to quaternions. The problem with Euler Angles and Euler Angle and Axis is that the type by itself does not fully define the representation. Hence, I am not sure how to implement the Julia conversion API for them.

juliohm commented 2 years ago

Yes it would be nice to refactor these types so that they are self contained somehow at compile time. The symbol :ZXZ for example could be a type parameter.

On Tue, Dec 28, 2021, 10:46 Ronan Arraes Jardim Chagas < @.***> wrote:

I also added the conversion to quaternions. The problem with Euler Angles and Euler Angle and Axis is that the type by itself does not fully define the representation. Hence, I am not sure how to implement the Julia conversion API for them.

— Reply to this email directly, view it on GitHub https://github.com/JuliaSpace/ReferenceFrameRotations.jl/pull/19#issuecomment-1002113340, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZQW3NVO4AD6ULTML6EL5TUTG5SDANCNFSM5H44CAJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

ronisbr commented 2 years ago

Yes, this will solve for Euler angles. However, for Euler angle and axis I have no idea :D

juliohm commented 2 years ago

Can every rotation be converted to an angle axis? I thought that this was a subset of all possible rotations. In that case it would make sense to figure out which representations could be naturally converted into angle axis. Maybe we don't need conversion methods for this one.

On Tue, Dec 28, 2021, 11:12 Ronan Arraes Jardim Chagas < @.***> wrote:

Yes, this will solve for Euler angles. However, for Euler angle and axis I have no idea :D

— Reply to this email directly, view it on GitHub https://github.com/JuliaSpace/ReferenceFrameRotations.jl/pull/19#issuecomment-1002124981, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZQW3KHEJ5AHEODCYUAQLLUTHAVRANCNFSM5H44CAJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

ronisbr commented 2 years ago

Yes, you can always convert a rotation to an Euler angle and axis. However, the axis direction is not constant. For every DCM, for example, there is a different rotation axis.