I wish to configure the drone for Vision based flight. (transition from GPS)
I have a 3D camera connected to a companion computer that using SLAM provides me Pos x/y/z and yaw for EKF source 3 .
In some cases everything is fine and the EKF follows the vision (external nav) which is tested stationary and during flight.
However, sometimes (not clear why), the EKF seems to ignore the vision data causing PSC.N/E/D to behave in a bad manner.
Below is a link to a log file where the EKF rejects the vision data.
The drone is completely stationary (not flying yet) and the EKF source is set to source 3= Ext_nav =vision.
a) Around t=14:12:06 the Vision data starts and as expected is around [x,y,z]~[0,0,0] with very low noise (<1cm), but the PSC estimate of the EKF jumps wild (>1000m). At the same time the GPS has bad accuracy issues, that I know are caused by strong EMI interference from the USB3 camera cable. The issues seem to be synced with the EKF jump (not configured to GPS!), or maybe its just 2 phenoma that are sync to the start of the vision pos.
Remark : the EKF parameter to fuse all velocities is disabled.
b) later on (E.g. 14:13:40), the Vision continues to output [0,0,0] (as expected, since not movement), but the EKF has strong Zig-Zags of around 5-20m. It seems to drift and then reset to zero (it happens with all 3 IMU of the cube orange) every few seconds.
why is the Vision pos sometimes rejected (and some times not)?
Is it possible the GPS data effects the EKF although its configured to extenal nav
I saw some parts in the ardupilot code where in ext_nav it uses GPS accuracy, but its hard to debug.
.
For refence, here everything is o.k ( stationary and also flight)