EKF: RingBuffer minor improvements

- allocate IMU and output buffers on construction according to defaults
 - determine buffer max time delay based on configuration parameters
 - reorder flowSample and extVisionSample to minimize padding
 - adjust parameter defaults to match PX4-Autopilot
This commit is contained in:
Daniel Agar
2020-12-03 20:48:51 -05:00
committed by GitHub
parent 67f13f7ede
commit 03cfcb903e
12 changed files with 85 additions and 111 deletions
+4 -4
View File
@@ -1230,10 +1230,10 @@ Vector3f Ekf::getVisionVelocityInEkfFrame() const
// rotate measurement into correct earth frame if required
switch(_ev_sample_delayed.vel_frame) {
case BODY_FRAME_FRD:
case velocity_frame_t::BODY_FRAME_FRD:
vel = _R_to_earth * (_ev_sample_delayed.vel - vel_offset_body);
break;
case LOCAL_FRAME_FRD:
case velocity_frame_t::LOCAL_FRAME_FRD:
const Vector3f vel_offset_earth = _R_to_earth * vel_offset_body;
if (_params.fusion_mode & MASK_ROTATE_EV)
{
@@ -1253,11 +1253,11 @@ Vector3f Ekf::getVisionVelocityVarianceInEkfFrame() const
// rotate measurement into correct earth frame if required
switch(_ev_sample_delayed.vel_frame) {
case BODY_FRAME_FRD:
case velocity_frame_t::BODY_FRAME_FRD:
ev_vel_cov = _R_to_earth * ev_vel_cov * _R_to_earth.transpose();
break;
case LOCAL_FRAME_FRD:
case velocity_frame_t::LOCAL_FRAME_FRD:
if(_params.fusion_mode & MASK_ROTATE_EV)
{
ev_vel_cov = _R_ev_to_ekf * ev_vel_cov * _R_ev_to_ekf.transpose();