C Attitude Math Library
Quaternion, Euler, and DCM math utilities for attitude control.
Loading...
Searching...
No Matches
euler.h
Go to the documentation of this file.
1#ifndef ATTITUDE_EULER_H
2#define ATTITUDE_EULER_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
14typedef enum {
18 // Extend with other orders as needed.
20
26typedef struct {
27 double roll;
28 double pitch;
29 double yaw;
32
33
40void euler_to_dcm(const EulerAngles *e, double dcm[3][3]);
41
47int euler_to_dcm_checked(const EulerAngles *e, double dcm[3][3]);
48
55void euler_to_quaternion(const EulerAngles *e, double q[4]);
56
62int euler_to_quaternion_checked(const EulerAngles *e, double q[4]);
63
64#ifdef __cplusplus
65}
66#endif
67
68#endif // ATTITUDE_EULER_H
int euler_to_quaternion_checked(const EulerAngles *e, double q[4])
Checked Euler-to-quaternion conversion.
Definition euler.c:47
void euler_to_dcm(const EulerAngles *e, double dcm[3][3])
Convert Euler angles to a direction cosine matrix.
Definition euler.c:41
EulerOrder
Enumeration of supported Euler rotation orders.
Definition euler.h:14
@ EULER_ZYX
Standard aerospace yaw → pitch → roll sequence.
Definition euler.h:15
@ EULER_XYZ
Roll → pitch → yaw intrinsic sequence.
Definition euler.h:17
@ EULER_ZYZ
Useful for certain satellite pointing laws and robotics arms.
Definition euler.h:16
void euler_to_quaternion(const EulerAngles *e, double q[4])
Convert Euler angles to a quaternion.
Definition euler.c:67
int euler_to_dcm_checked(const EulerAngles *e, double dcm[3][3])
Checked Euler-to-DCM conversion.
Definition euler.c:16
Storage for Euler angles with an associated rotation order.
Definition euler.h:26
double pitch
Rotation about y-axis.
Definition euler.h:28
double yaw
Rotation about z-axis.
Definition euler.h:29
EulerOrder order
Intrinsic rotation order.
Definition euler.h:30
double roll
Rotation about x-axis.
Definition euler.h:27