C Attitude Math Library
Quaternion, Euler, and DCM math utilities for attitude control.
Loading...
Searching...
No Matches
validation.h File Reference
#include <stdint.h>

Go to the source code of this file.

Enumerations

enum  AttitudeValidationFailure {
  ATTITUDE_VALIDATION_EULER_TO_DCM = 1u << 0 , ATTITUDE_VALIDATION_ORTHONORMAL = 1u << 1 , ATTITUDE_VALIDATION_EULER_TO_QUATERNION = 1u << 2 , ATTITUDE_VALIDATION_QUATERNION_DCM = 1u << 3 ,
  ATTITUDE_VALIDATION_DCM_TO_QUATERNION = 1u << 4 , ATTITUDE_VALIDATION_DCM_TO_EULER = 1u << 5 , ATTITUDE_VALIDATION_INVALID_INPUT = 1u << 6
}
 

Functions

uint32_t attitude_validation_run (void)
 Run deterministic attitude conversion fixtures.
 

Enumeration Type Documentation

◆ AttitudeValidationFailure

Enumerator
ATTITUDE_VALIDATION_EULER_TO_DCM 
ATTITUDE_VALIDATION_ORTHONORMAL 
ATTITUDE_VALIDATION_EULER_TO_QUATERNION 
ATTITUDE_VALIDATION_QUATERNION_DCM 
ATTITUDE_VALIDATION_DCM_TO_QUATERNION 
ATTITUDE_VALIDATION_DCM_TO_EULER 
ATTITUDE_VALIDATION_INVALID_INPUT 

Definition at line 10 of file validation.h.

10 {
18};
@ ATTITUDE_VALIDATION_EULER_TO_QUATERNION
Definition validation.h:13
@ ATTITUDE_VALIDATION_DCM_TO_EULER
Definition validation.h:16
@ ATTITUDE_VALIDATION_INVALID_INPUT
Definition validation.h:17
@ ATTITUDE_VALIDATION_EULER_TO_DCM
Definition validation.h:11
@ ATTITUDE_VALIDATION_QUATERNION_DCM
Definition validation.h:14
@ ATTITUDE_VALIDATION_DCM_TO_QUATERNION
Definition validation.h:15
@ ATTITUDE_VALIDATION_ORTHONORMAL
Definition validation.h:12

Function Documentation

◆ attitude_validation_run()

uint32_t attitude_validation_run ( void  )

Run deterministic attitude conversion fixtures.

The fixture has no heap, file, clock, or operating-system dependencies, so the same code can run in host CI and on embedded targets.

Returns
Zero on success or a bitwise OR of AttitudeValidationFailure values.

Definition at line 96 of file validation.c.

96 {
97 const double pi = 3.14159265358979323846;
98 const EulerAngles cases[] = {
99 {0.0, 0.0, 0.0, EULER_ZYX},
100 {0.3, -0.4, 1.2, EULER_ZYX},
101 {pi, 0.0, 0.0, EULER_ZYX},
102 {0.0, pi, 0.0, EULER_ZYX},
103 {0.0, 0.0, pi, EULER_ZYX},
104 {0.7, pi / 2.0, -0.2, EULER_ZYX},
105 {-0.8, -pi / 2.0, 1.1, EULER_ZYX}
106 };
107 uint32_t failures = 0;
108
109 for (unsigned int index = 0; index < sizeof(cases) / sizeof(cases[0]); ++index) {
110 failures |= check_round_trip(&cases[index]);
111 }
112 failures |= check_rejections();
113 return failures;
114}
@ EULER_ZYX
Standard aerospace yaw → pitch → roll sequence.
Definition euler.h:15
Storage for Euler angles with an associated rotation order.
Definition euler.h:26