UAV toolbox support package for PX4 : local position estimation problem
8 views (last 30 days)
I am trying to estimate my vehicle's local position using EKF algorithm in PX4 software.
To evaluate the accuracy of the estimator, I put my drone stationary and estimate my local position.
I used vehicle_local_position.msg uorb message to read my vehicle local position.
When I read my vehicle local position, it exactly follows the data of gps as you can see beneath
First graph shows the local position estimation of x, and second graph shows the raw latitude data of gps. Third graph shows the covariance as time passes. As you can see, the covariance converges well as time passes but vehicle local position estimation follows gps exactly.
This is strange because EKF fuses IMU and gps, therefore local position estimate and gps data should be somewhat different.
I speculated this is because I put the noise of gps(covariance of gps noise) too low.
Therefore, I changed px4 parameter gps_noise_p from 0.5 to 10m, which increases the covariance of gps noise and therefore not believe gps data much, and expected not to follow the gps data.
However, the data still followed the gps data as you can see beneath.
As you can see, it still follows the gps data exactly though the covariance increases from 0.2 to 1.
Can you help me why vehicle local position follows exactly gps data? Is it because drone is stationary and mean value of IMU is 0 so follow the gps data exactly?
Ankur Bose on 1 Apr 2022
We recommend looking into the PX4 EKF2 estimator code to evaluate why you are seeing the tight coupling between GPS and estimated value. The estimation and fusion depends on a lot of parameters and PX4 has a way of picking/rejecting sensor values it does not find suitable or appropriate