-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Grassmann.jl vs Quaternions.jl #146
Comments
Hi, thank you for maintaining Grassmann.jl! If you would like to add compatibility with Quaternions.jl to Grassmann.jl, it would be reasonable to define some methods in a package extension. Feel free to contact me if you have any problems! I'm happy to help with that. |
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
I don't see any particular need for integration between Quaternions and Grassmann:
|
This comment was marked as abuse.
This comment was marked as abuse.
I just want to add an information here for future readers of this thread. There is a huge number of applications using quaternions and each one has its own specificities. For example, I work with the attitude control subsystem of satellites. For us, quaternions are a good attitude representation. However, we see them as a 4 x 1 vector with real numbers and we only need to implement quaternion multiplication and its conversion to direct cosine matrices, Rodriguez parameters, Euler angles, etc. With only those algorithms, we can control the satellite attitude (it is almost the same with airplanes). Now, I am seeking to develop an entire AOCS system using Julia language in a CubeSat. We have huge constraints on memory and processing power. Let's see how much time it takes to import each package: julia> @time using Grassmann
0.218593 seconds (354.27 k allocations: 27.317 MiB, 1.45% compilation time)
julia> @time using ReferenceFrameRotations
0.144537 seconds (278.27 k allocations: 15.431 MiB, 1.52% compilation time)
julia> @time using Quaternions
0.004729 seconds (9.21 k allocations: 728.609 KiB) Hence, for my application, I will probably use Quaternions.jl and "copy" the required algorithm from ReferenceFrameRotations.jl to convert them to DCMs. Those timings show that Quaternions.jl probably has a significant smaller footprint compared to the other ones. My point here is that having a way more complex package as Grassmann.jl that can provide an excellent workspace to deal with quaternion algebra does not turn every other package that defines quaternion deprecated. |
This comment was marked as abuse.
This comment was marked as abuse.
This information is very nice indeed! Thanks for sharing! |
Grassmann.jl has its own dedicated
Quaternion
type for a while now, I've been focused on smoothing out various general things related to this package. Now things have stabilized and smoothed out again, I can look into further standardizing the quaternion interface. Grassmann.jl supports quaternions in a much more general way, but it the definitions are such thatk = -v13
If anybody has anything to say about this, let me know.
The text was updated successfully, but these errors were encountered: