nyx-space / nyx

Nyx is a high fidelity, fast, reliable and validated astrodynamics toolkit library written in Rust and available in Python
https://nyxspace.com
GNU Affero General Public License v3.0
175 stars 20 forks source link

Attitude module #7

Closed ChristopherRabotin closed 2 years ago

ChristopherRabotin commented 6 years ago

It should be possible to simulate the attitude of a spacecraft or an instrument on that spacecraft.

Currently, nalgebra supports quaternion (cf. this), but I would like to add the support for CRPs and MRPs. More importantly though, nalgebra allows one to define the position of something on a rigid body. Hence, it is possible to define the position of an instrument at a given time, propagate the overall rigid body (i.e. the spacecraft), and get the updated attitude of that instrument.

The attitude dynamics should also include gravity torques for higher fidelity.

This module should also provide the control algorithms as developed in Schaub & Junkins and in the AVS lab.

ChristopherRabotin commented 6 years ago

It might be useful to provide a decomposition of a given inertia tensor into several tensors which are diagonal (via the parallel axis theorem). This would ease the use of the angular momentum struct in the dynamics.

ChristopherRabotin commented 6 years ago

I think that the best way to handle this is actually to use FFI bindings to Basilisk. That way I benefit from the thoroughly tested library.