Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ECL] Full variance usage of vision data #13705

Merged
merged 6 commits into from
Jan 9, 2020

Conversation

kamilritz
Copy link
Contributor

@kamilritz kamilritz commented Dec 9, 2019

This adapts the interface to ECL EKF to support the use of all variance information in the visual_odometry message. More information can be found in the ECL PR.

This needs recently added function of Matrix. Therefore, it is also updating Matrix to newest version.

In addition, it is adding the missing transformation of the linear velocity covariances to local frame. This was undone before and therefore not completely correct.

Testing:
Run estimation on vehicle, which does not have a true full covariance. But it still shows that the vision estimation is not broken by this PR. Log

@kamilritz kamilritz requested a review from jkflying December 9, 2019 13:45
@kamilritz kamilritz force-pushed the ecl_ev_variance branch 2 times, most recently from 7f8be81 to fc27fe1 Compare December 9, 2019 15:03
@mhkabir
Copy link
Member

mhkabir commented Dec 17, 2019

@kamilritz How did you test this?

@@ -17,7 +17,7 @@ uint8 COVARIANCE_MATRIX_YAWRATE_VARIANCE=20

# Position and linear velocity frame of reference constants
uint8 LOCAL_FRAME_NED=0 # NED earth-fixed frame
uint8 LOCAL_FRAME_ENU=1 # ENU earth-fixed frame
uint8 LOCAL_FRAME_FRD=1 # FRD earth-fixed frame, heading different to NED
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
uint8 LOCAL_FRAME_FRD=1 # FRD earth-fixed frame, heading different to NED
uint8 LOCAL_FRAME_FRD=1 # FRD earth-fixed frame, arbitrary heading reference point

@kamilritz kamilritz force-pushed the ecl_ev_variance branch 4 times, most recently from f972559 to a64f5f5 Compare January 8, 2020 13:43
jkflying
jkflying previously approved these changes Jan 8, 2020
Copy link
Contributor

@jkflying jkflying left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, and log shows it doesn't break existing stuff at least.

sqrtf(fmaxf(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VX_VARIANCE],
fmaxf(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VY_VARIANCE],
_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VZ_VARIANCE]))));
float param_evv_noise_var = sq(_param_ekf2_evv_noise.get());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update the EKF2_EVV_NOISE parameter description to mention the new behaviour?

@kamilritz
Copy link
Contributor Author

Updated the parameter description for EKF2_EVV_NOISE, EKF2_EVP_NOISE and EKF2_EVA_NOISE

@jkflying jkflying merged commit 32a4e3a into PX4:master Jan 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants