@RoyAzriel Hello there,
This goes back a bit to my first question, but let's break it down systematically:
-
Do you need VIO estimates to be always continuos or reset jumps are okay?
-
If you need VIO during takeoff and your application is not robust to SFM resets (potential jump discontinuity), I recommend never using dynamic init and warm reset
Back to what you reported
"still sometimes it fails to converge. Can you recomend what is the best sequence one should do to get convergence in high precentage after power cycle ?"
Convergence for a initialization would usually refer to a dynamic initialization (nonlinear optimization), as the static initialization does not involve optimization. That being said, some static inits can be bad as soon as the platform is in the air: noisy ZUPT updates, bad IMU calibration and sigma/random-walk values. This is natural under custom frame mods, perhaps a full IMU intrinsics recalibration could help.
Nevertheless, it seems that you're running VIO by passing estimates to PX4, instead of using VFC Position (Local Controller with VIO estimates that send just setpoints to PX4). I am personally curious if the issues you're having are related to the PX4 integration with VIO estimates or if it's truly pure VIO estimates.
Experimental Attempt
Please try:
voxl-configure-vision-hub factory_enable_vfc_starling
- In the voxl-vision-hub.conf, make sure you verify your hover thrust value and the offboard_mode key is set to vfc
- Make sure you change your Position flight mode switch to offboard in PX4
- Set a Kill switch in PX4 -- this is an experimental attempt, and you might have to tune the PID/PD values in vfc.conf
If you have logs to share, please feel free to send them.
Q: What is your EV_q (quality minimum) in PX4? Also what your HGT ref?
PS: We are bringing up better VIO debug tools for users, so stay tuned for updates as well.
All the best, ZBFT (Joao Leonardo Silva Cotta)