APM:Libraries
|
#include <quaternion.h>
Public Member Functions | |
Quaternion () | |
Quaternion (const float _q1, const float _q2, const float _q3, const float _q4) | |
Quaternion (const float _q[4]) | |
void | operator() (const float _q1, const float _q2, const float _q3, const float _q4) |
bool | is_nan (void) const |
void | rotation_matrix (Matrix3f &m) const |
void | rotation_matrix_norm (Matrix3f &m) const |
void | from_rotation_matrix (const Matrix3f &m) |
void | earth_to_body (Vector3f &v) const |
void | from_euler (float roll, float pitch, float yaw) |
void | from_vector312 (float roll, float pitch, float yaw) |
void | to_axis_angle (Vector3f &v) |
void | from_axis_angle (Vector3f v) |
void | from_axis_angle (const Vector3f &axis, float theta) |
void | rotate (const Vector3f &v) |
void | from_axis_angle_fast (Vector3f v) |
void | from_axis_angle_fast (const Vector3f &axis, float theta) |
void | rotate_fast (const Vector3f &v) |
float | get_euler_roll () const |
float | get_euler_pitch () const |
float | get_euler_yaw () const |
void | to_euler (float &roll, float &pitch, float &yaw) const |
Vector3f | to_vector312 (void) const |
float | length (void) const |
void | normalize () |
void | initialise () |
Quaternion | inverse (void) const |
float & | operator[] (uint8_t i) |
const float & | operator[] (uint8_t i) const |
Quaternion | operator* (const Quaternion &v) const |
Quaternion & | operator*= (const Quaternion &v) |
Quaternion | operator/ (const Quaternion &v) const |
Public Attributes | |
float | q1 |
float | q2 |
float | q3 |
float | q4 |
Definition at line 25 of file quaternion.h.
|
inline |
Definition at line 31 of file quaternion.h.
Referenced by inverse().
|
inline |
Definition at line 38 of file quaternion.h.
|
inline |
Definition at line 44 of file quaternion.h.
void Quaternion::earth_to_body | ( | Vector3f & | v | ) | const |
Definition at line 122 of file quaternion.cpp.
Referenced by is_nan(), and test_frame_transforms().
void Quaternion::from_axis_angle | ( | Vector3f | v | ) |
Definition at line 154 of file quaternion.cpp.
Referenced by AC_AttitudeControl::attitude_controller_run_quat(), NavEKF2_core::calcOutputStates(), NavEKF3_core::calcOutputStates(), AC_AttitudeControl::input_angle_step_bf_roll_pitch_yaw(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw_3(), is_nan(), rotate(), AC_AttitudeControl::shift_ef_yaw_target(), and AC_AttitudeControl::thrust_heading_rotation_angles().
void Quaternion::from_axis_angle | ( | const Vector3f & | axis, |
float | theta | ||
) |
void Quaternion::from_axis_angle_fast | ( | Vector3f | v | ) |
Definition at line 199 of file quaternion.cpp.
Referenced by is_nan().
void Quaternion::from_axis_angle_fast | ( | const Vector3f & | axis, |
float | theta | ||
) |
void Quaternion::from_euler | ( | float | roll, |
float | pitch, | ||
float | yaw | ||
) |
Definition at line 130 of file quaternion.cpp.
Referenced by SITL::Calibration::_attitude_set(), NavEKF2_core::calcQuatAndFieldStates(), NavEKF3_core::calcQuatAndFieldStates(), NavEKF2_core::controlMagYawReset(), GCS_MAVLINK::handle_common_vision_position_estimate_data(), NavEKF2_core::InitialiseFilterBootstrap(), NavEKF3_core::InitialiseFilterBootstrap(), AC_AttitudeControl::input_euler_angle_roll_pitch_euler_rate_yaw(), AC_AttitudeControl::input_euler_angle_roll_pitch_yaw(), AC_AttitudeControl::input_euler_rate_roll_pitch_yaw(), is_nan(), NavEKF2_core::realignYawGPS(), NavEKF3_core::realignYawGPS(), test_conversion(), test_frame_transforms(), and test_quaternion().
void Quaternion::from_rotation_matrix | ( | const Matrix3f & | m | ) |
Definition at line 76 of file quaternion.cpp.
Referenced by SITL::Calibration::_attitude_set(), AC_AttitudeControl::attitude_controller_run_quat(), SITL::Aircraft::fill_fdm(), from_vector312(), SITL::Aircraft::get_attitude(), AP_AHRS_NavEKF::get_secondary_quaternion(), AC_AttitudeControl::inertial_frame_reset(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw_2(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw_3(), is_nan(), AC_AttitudeControl::relax_attitude_controllers(), SoloGimbalEKF::RunEKF(), AC_AttitudeControl::set_attitude_target_to_current_attitude(), SITL::Aircraft::smooth_sensors(), and test_quaternion().
void Quaternion::from_vector312 | ( | float | roll, |
float | pitch, | ||
float | yaw | ||
) |
Definition at line 146 of file quaternion.cpp.
Referenced by is_nan(), and SoloGimbalEKF::RunEKF().
float Quaternion::get_euler_pitch | ( | ) | const |
Definition at line 260 of file quaternion.cpp.
Referenced by is_nan(), and to_euler().
float Quaternion::get_euler_roll | ( | ) | const |
Definition at line 254 of file quaternion.cpp.
Referenced by is_nan(), and to_euler().
float Quaternion::get_euler_yaw | ( | ) | const |
Definition at line 266 of file quaternion.cpp.
Referenced by is_nan(), and to_euler().
|
inline |
Quaternion Quaternion::inverse | ( | void | ) | const |
Definition at line 292 of file quaternion.cpp.
Referenced by AC_AttitudeControl::attitude_controller_run_quat(), initialise(), AC_AttitudeControl::input_quaternion(), AC_AttitudeControl::thrust_heading_rotation_angles(), NavEKF2_core::UpdateStrapdownEquationsNED(), and NavEKF3_core::UpdateStrapdownEquationsNED().
|
inline |
Definition at line 59 of file quaternion.h.
Referenced by NavEKF2_core::getFilterFaults(), NavEKF3_core::getFilterFaults(), NavEKF2_core::updateFilterStatus(), and NavEKF3_core::updateFilterStatus().
float Quaternion::length | ( | void | ) | const |
Definition at line 287 of file quaternion.cpp.
Referenced by NavEKF3_core::getTiltError(), is_nan(), and normalize().
void Quaternion::normalize | ( | void | ) |
Definition at line 297 of file quaternion.cpp.
Referenced by AP_InertialSensor::_acal_save_calibrations(), SITL::Calibration::_attitude_set(), SoloGimbalEKF::alignHeading(), AC_AttitudeControl::attitude_controller_run_quat(), NavEKF2_core::calcOutputStates(), NavEKF3_core::calcOutputStates(), NavEKF3_core::FuseAirspeed(), NavEKF3_core::FuseBodyVel(), SoloGimbalEKF::fuseCompass(), NavEKF3_core::FuseDeclination(), NavEKF3_core::fuseEulerYaw(), NavEKF3_core::FuseMagnetometer(), NavEKF3_core::FuseOptFlow(), NavEKF3_core::FuseSideslip(), SoloGimbalEKF::fuseVelocity(), NavEKF3_core::FuseVelPosNED(), AC_AttitudeControl::input_angle_step_bf_roll_pitch_yaw(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw(), is_nan(), SoloGimbalEKF::predictStates(), NavEKF2_core::readIMUData(), NavEKF3_core::readIMUData(), SITL::Aircraft::smooth_sensors(), test_frame_transforms(), NavEKF2_core::UpdateStrapdownEquationsNED(), and NavEKF3_core::UpdateStrapdownEquationsNED().
|
inline |
Definition at line 50 of file quaternion.h.
Quaternion Quaternion::operator* | ( | const Quaternion & | v | ) | const |
Definition at line 309 of file quaternion.cpp.
Referenced by operator[]().
Quaternion & Quaternion::operator*= | ( | const Quaternion & | v | ) |
Definition at line 330 of file quaternion.cpp.
Referenced by operator[]().
Quaternion Quaternion::operator/ | ( | const Quaternion & | v | ) | const |
Definition at line 350 of file quaternion.cpp.
Referenced by operator[]().
|
inline |
Definition at line 122 of file quaternion.h.
|
inline |
void Quaternion::rotate | ( | const Vector3f & | v | ) |
Definition at line 182 of file quaternion.cpp.
Referenced by SoloGimbalEKF::alignHeading(), NavEKF2_core::FuseAirspeed(), SoloGimbalEKF::fuseCompass(), NavEKF2_core::FuseDeclination(), NavEKF2_core::fuseEulerYaw(), NavEKF2_core::FuseMagnetometer(), NavEKF2_core::FuseOptFlow(), NavEKF2_core::FuseRngBcn(), NavEKF2_core::FuseSideslip(), SoloGimbalEKF::fuseVelocity(), NavEKF2_core::FuseVelPosNED(), is_nan(), SoloGimbalEKF::predictStates(), NavEKF2_core::readIMUData(), NavEKF3_core::readIMUData(), NavEKF2_core::UpdateStrapdownEquationsNED(), and NavEKF3_core::UpdateStrapdownEquationsNED().
void Quaternion::rotate_fast | ( | const Vector3f & | v | ) |
Definition at line 223 of file quaternion.cpp.
Referenced by is_nan().
void Quaternion::rotation_matrix | ( | Matrix3f & | m | ) | const |
Definition at line 24 of file quaternion.cpp.
Referenced by HALSITL::SITL_State::_update_gps(), HALSITL::SITL_State::_update_rangefinder(), NavEKF2_core::calcOutputStates(), NavEKF3_core::calcOutputStates(), NavEKF2_core::calcQuatAndFieldStates(), NavEKF3_core::calcQuatAndFieldStates(), earth_to_body(), NavEKF2_core::getRotationBodyToNED(), NavEKF3_core::getRotationBodyToNED(), SITL::Gimbal::Gimbal(), is_nan(), SoloGimbalEKF::predictStates(), NavEKF2_core::quat2Tbn(), NavEKF3_core::quat2Tbn(), NavEKF2_core::readIMUData(), NavEKF3_core::readIMUData(), SITL::Gazebo::recv_fdm(), test_conversion(), test_quaternion(), AC_AttitudeControl::thrust_heading_rotation_angles(), to_vector312(), SITL::Gimbal::update(), SITL::FlightAxis::update(), AP_AHRS_NavEKF::update_SITL(), NavEKF2_core::UpdateStrapdownEquationsNED(), NavEKF3_core::UpdateStrapdownEquationsNED(), NavEKF2_core::writeOptFlowMeas(), and NavEKF3_core::writeOptFlowMeas().
void Quaternion::rotation_matrix_norm | ( | Matrix3f & | m | ) | const |
Definition at line 48 of file quaternion.cpp.
Referenced by is_nan().
void Quaternion::to_axis_angle | ( | Vector3f & | v | ) |
Definition at line 189 of file quaternion.cpp.
Referenced by SITL::Calibration::_attitude_set(), NavEKF2_core::controlMagYawReset(), NavEKF3_core::controlMagYawReset(), AC_AttitudeControl::input_quaternion(), is_nan(), NavEKF2_core::readIMUData(), NavEKF3_core::readIMUData(), SITL::Aircraft::smooth_sensors(), and AC_AttitudeControl::thrust_heading_rotation_angles().
void Quaternion::to_euler | ( | float & | roll, |
float & | pitch, | ||
float & | yaw | ||
) | const |
Definition at line 272 of file quaternion.cpp.
Referenced by NavEKF2_core::calcQuatAndFieldStates(), NavEKF3_core::calcQuatAndFieldStates(), NavEKF2_core::controlMagYawReset(), NavEKF3_core::controlMagYawReset(), NavEKF2_core::fuseEulerYaw(), NavEKF3_core::fuseEulerYaw(), SoloGimbalEKF::getDebug(), NavEKF2_core::getEulerAngles(), NavEKF3_core::getEulerAngles(), GCS_MAVLINK::handle_att_pos_mocap(), AC_AttitudeControl::inertial_frame_reset(), AC_AttitudeControl::input_angle_step_bf_roll_pitch_yaw(), AC_AttitudeControl::input_euler_angle_roll_pitch_euler_rate_yaw(), AC_AttitudeControl::input_euler_angle_roll_pitch_yaw(), AC_AttitudeControl::input_euler_rate_roll_pitch_yaw(), AC_AttitudeControl::input_quaternion(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw_2(), AC_AttitudeControl::input_rate_bf_roll_pitch_yaw_3(), is_nan(), NavEKF2_core::realignYawGPS(), NavEKF3_core::realignYawGPS(), NavEKF2_core::setWindMagStateLearningMode(), NavEKF3_core::setWindMagStateLearningMode(), test_conversion(), test_quaternion(), and SITL::Vicon::update_vicon_position_estimate().
Vector3f Quaternion::to_vector312 | ( | void | ) | const |
Definition at line 280 of file quaternion.cpp.
Referenced by NavEKF2_core::fuseEulerYaw(), NavEKF3_core::fuseEulerYaw(), and is_nan().
float Quaternion::q1 |
Definition at line 27 of file quaternion.h.
Referenced by from_axis_angle(), from_axis_angle_fast(), from_euler(), from_rotation_matrix(), get_euler_pitch(), get_euler_roll(), get_euler_yaw(), inverse(), length(), DataFlash_Class::Log_Write_POS(), normalize(), operator*(), operator*=(), operator/(), operator[](), rotate_fast(), rotation_matrix(), rotation_matrix_norm(), and to_axis_angle().
float Quaternion::q2 |
Definition at line 27 of file quaternion.h.
Referenced by AC_AttitudeControl::attitude_controller_run_quat(), from_axis_angle(), from_axis_angle_fast(), from_euler(), from_rotation_matrix(), get_euler_pitch(), get_euler_roll(), get_euler_yaw(), inverse(), length(), DataFlash_Class::Log_Write_POS(), normalize(), operator*(), operator*=(), operator/(), rotate_fast(), rotation_matrix(), rotation_matrix_norm(), and to_axis_angle().
float Quaternion::q3 |
Definition at line 27 of file quaternion.h.
Referenced by AC_AttitudeControl::attitude_controller_run_quat(), from_axis_angle(), from_axis_angle_fast(), from_euler(), from_rotation_matrix(), get_euler_pitch(), get_euler_roll(), get_euler_yaw(), inverse(), length(), DataFlash_Class::Log_Write_POS(), normalize(), operator*(), operator*=(), operator/(), rotate_fast(), rotation_matrix(), rotation_matrix_norm(), and to_axis_angle().
float Quaternion::q4 |
Definition at line 27 of file quaternion.h.
Referenced by AC_AttitudeControl::attitude_controller_run_quat(), from_axis_angle(), from_axis_angle_fast(), from_euler(), from_rotation_matrix(), get_euler_pitch(), get_euler_roll(), get_euler_yaw(), inverse(), length(), DataFlash_Class::Log_Write_POS(), normalize(), operator*(), operator*=(), operator/(), rotate_fast(), rotation_matrix(), rotation_matrix_norm(), and to_axis_angle().