Browse Source

Fix get frame aligning quaternion function

master
kamilritz 6 years ago committed by Paul Riseborough
parent
commit
a2ff415fe4
  1. 2
      EKF/ekf.h
  2. 10
      EKF/ekf_helper.cpp
  3. 2
      EKF/estimator_interface.h

2
EKF/ekf.h

@ -256,7 +256,7 @@ public: @@ -256,7 +256,7 @@ public:
void get_ekf_soln_status(uint16_t *status);
// return the quaternion defining the rotation from the EKF to the External Vision reference frame
void get_ekf2ev_quaternion(float *quat);
void get_ev2ekf_quaternion(float *quat);
// use the latest IMU data at the current time horizon.
Quatf calculate_quaternion() const;

10
EKF/ekf_helper.cpp

@ -1653,14 +1653,14 @@ void Ekf::resetExtVisRotMat() @@ -1653,14 +1653,14 @@ void Ekf::resetExtVisRotMat()
_ev_rot_mat = Dcmf(q_error); // rotation from EV reference to EKF reference
}
// return the quaternions for the rotation from the EKF to the External Vision system frame of reference
void Ekf::get_ekf2ev_quaternion(float *quat)
// return the quaternions for the rotation from External Vision system reference frame to the EKF reference frame
void Ekf::get_ev2ekf_quaternion(float *quat)
{
Quatf quat_ekf2ev;
quat_ekf2ev.from_axis_angle(_ev_rot_vec_filt);
Quatf quat_ev2ekf;
quat_ev2ekf.from_axis_angle(_ev_rot_vec_filt);
for (unsigned i = 0; i < 4; i++) {
quat[i] = quat_ekf2ev(i);
quat[i] = quat_ev2ekf(i);
}
}

2
EKF/estimator_interface.h

@ -287,7 +287,7 @@ public: @@ -287,7 +287,7 @@ public:
const matrix::Quatf &get_quaternion() const { return _output_new.quat_nominal; }
// return the quaternion defining the rotation from the EKF to the External Vision reference frame
virtual void get_ekf2ev_quaternion(float *quat) = 0;
virtual void get_ev2ekf_quaternion(float *quat) = 0;
// get the velocity of the body frame origin in local NED earth frame
void get_velocity(float *vel)

Loading…
Cancel
Save