This package provides classes to represent simple attitudes.
Some force models, such as the atmospheric drag for maneuvers, need to know the spacecraft orientation in an inertial frame. Orekit uses a simple container for Attitude which includes both the geometric part (i.e. rotation) and the kinematic part (i.e. the instant spin axis). The components held by this container allow to convert vectors from inertial frame to spacecraft frame along with their derivatives. This container is similar in spirit to the various extensions of the abstract Orbit class: it represents a state at a specific instant.
In order to represent attitude evolution in time, the AttitudeProvider interface is available. At a higher level, attitude laws defined by a ground pointing law are also available. This corresponds to a "real" situation where satellite attitude law is defined in order to perform a mission, i.e. pointing a specified point/area. All these laws are collected under an abstract class called "GroundPointing". Finally, there exist attitude laws that wrap a "base" attitude law, and add to this base attitude law a complementary rotation in order to fulfill specific mission constraints.
These classes are designed to represent attitude laws used to fulfill pointing missions. Several pointing laws are modelized :
All these ground pointing laws are relative to corresponding body frame, which is used for their construction. Depending on their nature, each ground pointing law also have its own specific construction arguments. For each of these laws, satellite attitude state at any time in any given frame can be computed, as well as the observed ground point, or a target in the body frame.
Several classes have been implemented in order to represent attitude laws in which a "base" attitude law is used, and a "complementary" rotation is added in order to fulfill specific mission constraints. They are gathered under abstract class GroundPointingWrapper. At this point, implemented laws of this kind are:
The AttitudeSequence class manages a sequence of different attitude laws activated in rows according to switching events. Only one attitude law in the sequence is in an active state. When one of the switch events associated with the active law occurs, the active law becomes the one specified with the event.
It is possible to have perpetually alternating laws, for example when eclipse entry triggers a switch from a day light attitude to a night attitude and eclipse exit triggers the reverse (possibly with intermediate transition modes).