Non gps position estimate

Hello all, I have a raspberry Pi connected to pixhawk, sending position data using mavutil. I have the following issues/questions-

  1. When doing a gps to non gps transition, I get ekf variance error and failsafe is triggered. How can I know why exactly this happened?
  2. If I try to arm when using external position data, I get ek3 needs visual odom error. I have configured src 1 to gps and src 3 to external source. Why am I getting this error?
  3. The message types given in documentation for non gps position estimate has fields for roll pitch yaw( eg odometry, vision_pos_estimate). But I cannot give it that data, and want it to use it’s sensors for it. For yaw there is a parameter to set, such that external source is not used. But for roll and pitch how can I make it ignore the data recieved through external source?

Hi @Preetham,

I’m sure you’ve read it but for others reading this is the non-GPS position estimation wiki page for developers and perhaps it needs to be expanded to cover some of your questions.

To answer your questions:

  1. re the EKF failsafe during transitions, does it only happen during transitions? I suspect that the EKF failsafe always triggers when visual odometry is used.
  2. the arming failure indicates the same as above, that the EKF is not happy with the visual odometry data being provided. Perhaps the update rate is too slow (should be 5hz or higher), perhaps it’s inconsistent with the IMU
  3. the roll and pitch values from the visual odometry related messages are not used actually. I’ll update the wiki

It’s best to provide a log if possible, as we say, it’s all guesswork without a log. For example, which VISO_TYPE is being used? This kind of critical information is held in the log.