Initial commit of gyro-integrating function. #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a function for integrating gyroscopes measurements given an initial (az/el/pa) angle: qp_omega2azelpsi(), in qpoint.c. It needs two auxiliary functions, both in quaternion.c: apply_angular_velocity(), and a Quaternion_rot_vector(), which rotates a vector by a quaternion.
There is also a new qp_quat_azelpsi(), which inverts qp_azelpsi_quat(). I don't think these should be exposed, because it's the only place in qpoint where the quaternion doesn't represent a Celestial coordinate.
There are two versions: Quaternion_rot_vector(), and Quaternion_rot_vector_fast(). In principle, only the fast one needs to exist, but there's a bug and I haven't gotten it to work yet. So for now, there's a flag in omega2azelpa() to switch between them, for testing purposes. That'll be removed later.