Larus glider flight sensor system 3.9.2024
Software-In-The-Loop test and validation system
Loading...
Searching...
No Matches
quaternion< datatype > Class Template Reference

maintain attitude and provide coordinate transformation services More...

#include <quaternion.h>

Inheritance diagram for quaternion< datatype >:
Collaboration diagram for quaternion< datatype >:

Public Member Functions

 quaternion (vector< datatype, 3 > &init)
 constructor from euler angle
 
 quaternion ()
 constructor from datatype[4]
 
void normalize (void)
 normalize quaternion absolute value to ONE
 
 operator eulerangle< datatype > () const
 quaternion -> euler angle transformation
 
datatype get_north (void) const
 get north component of attitude
 
datatype get_east (void) const
 get east component of attitude
 
datatype get_down (void) const
 get down component of attitude
 
datatype get_heading (void) const
 get heading component of attitude
 
void rotate (datatype p, datatype q, datatype r)
 quaternion update using rotation vector
 
void from_euler (datatype p, datatype q, datatype r)
 euler angle -> quaternion transformation
 
void get_rotation_matrix (matrix< datatype, 3 > &m) const
 quaternion -> rotation matrix transformation
 
quaternion< datatypeoperator* (quaternion< datatype > &right)
 
void from_rotation_matrix (matrix< datatype, 3 > &rotm)
 
- Public Member Functions inherited from vector< datatype, 4 >
 vector (void)
 
 vector (const datatype *data)
 constructor from datatype []
 
 vector (const vector &right)
 copy constructor
 
datatype scalar_multiply (const vector &right) const
 < scalar product
 
datatype operator* (const vector &right) const
 < scalar (dot) product -> scalar
 
vector operator* (const datatype &right) const
 < multiply vector by scalar
 
vector vector_multiply (const vector &right) const
 < vector cross product -> vector
 
datatype abs (void) const
 vector abs operator returns absolute value
 
vectoroperator= (const vector &right)
 vector copy operator - size checked through template
 
void zero (void)
 set all elements to zero
 
vectornegate (void)
 
vectoroperator+= (const vector &right)
 operator +=
 
vectoroperator-= (const vector &right)
 operator -=
 
vector operator+ (const vector &right) const
 operator +
 
vector operator- (const vector &right) const
 operator - (vector - vector returns vector)
 
vectoroperator*= (const datatype &right)
 
datatypeoperator[] (const int index)
 
const datatype operator[] (int index) const
 
void normalize (void)
 vector normalization
 

Detailed Description

template<class datatype>
class quaternion< datatype >

maintain attitude and provide coordinate transformation services

Definition at line 35 of file quaternion.h.

Constructor & Destructor Documentation

◆ quaternion() [1/2]

template<class datatype >
quaternion< datatype >::quaternion ( vector< datatype, 3 > &  init)
inline

constructor from euler angle

Definition at line 39 of file quaternion.h.

References quaternion< datatype >::from_euler().

◆ quaternion() [2/2]

template<class datatype >
quaternion< datatype >::quaternion ( )
inline

constructor from datatype[4]

Definition at line 45 of file quaternion.h.

Member Function Documentation

◆ from_euler()

template<class datatype >
void quaternion< datatype >::from_euler ( datatype  p,
datatype  q,
datatype  r 
)
inline

euler angle -> quaternion transformation

Definition at line 139 of file quaternion.h.

References COS, HALF, SIN, and vector< datatype, 4 >::vector().

Referenced by quaternion< datatype >::quaternion(), and AHRS_type::set_from_euler().

◆ from_rotation_matrix()

template<class datatype >
void quaternion< datatype >::from_rotation_matrix ( matrix< datatype, 3 > &  rotm)
inline

formula from roenbaeck p35

Parameters
rotmrotation matrix -> quaternion transformation

Definition at line 194 of file quaternion.h.

References HALF, quaternion< datatype >::normalize(), ONE, QUARTER, SQRT, and vector< datatype, 4 >::vector().

Referenced by AHRS_type::attitude_setup().

◆ get_down()

template<class datatype >
datatype quaternion< datatype >::get_down ( void  ) const
inline

get down component of attitude

Definition at line 101 of file quaternion.h.

References TWO, and vector< datatype, 4 >::vector().

Referenced by AHRS_type::get_down().

◆ get_east()

template<class datatype >
datatype quaternion< datatype >::get_east ( void  ) const
inline

get east component of attitude

Definition at line 91 of file quaternion.h.

References TWO, and vector< datatype, 4 >::vector().

Referenced by AHRS_type::get_east().

◆ get_heading()

template<class datatype >
datatype quaternion< datatype >::get_heading ( void  ) const
inline

get heading component of attitude

Definition at line 111 of file quaternion.h.

References ATAN2, and TWO.

◆ get_north()

template<class datatype >
datatype quaternion< datatype >::get_north ( void  ) const
inline

get north component of attitude

Definition at line 81 of file quaternion.h.

References vector< datatype, 4 >::vector().

Referenced by AHRS_type::get_north().

◆ get_rotation_matrix()

template<class datatype >
void quaternion< datatype >::get_rotation_matrix ( matrix< datatype, 3 > &  m) const
inline

quaternion -> rotation matrix transformation

R.Rogers formula 2.90

Definition at line 156 of file quaternion.h.

References ONE, TWO, and vector< datatype, 4 >::vector().

Referenced by AHRS_type::attitude_setup(), and AHRS_type::set_from_euler().

◆ normalize()

template<class datatype >
void quaternion< datatype >::normalize ( void  )
inline

normalize quaternion absolute value to ONE

Definition at line 52 of file quaternion.h.

References ONE, SQRT, and vector< datatype, 4 >::vector().

Referenced by quaternion< datatype >::from_rotation_matrix(), and quaternion< datatype >::rotate().

◆ operator eulerangle< datatype >()

template<class datatype >
quaternion< datatype >::operator eulerangle< datatype > ( ) const
inline

quaternion -> euler angle transformation

formula from roenbaeck p34

Definition at line 65 of file quaternion.h.

References ASIN, ATAN2, TWO, and vector< datatype, 4 >::vector().

◆ operator*()

Parameters
rightquaternion multiplication

Definition at line 176 of file quaternion.h.

References vector< datatype, size >::vector(), and vector< datatype, 4 >::vector().

◆ rotate()

template<class datatype >
void quaternion< datatype >::rotate ( datatype  p,
datatype  q,
datatype  r 
)
inline

quaternion update using rotation vector

R.Rogers formula 2.92

Definition at line 122 of file quaternion.h.

References quaternion< datatype >::normalize().


The documentation for this class was generated from the following file: