Hello, I am trying to debug my QVIO flight which is very unstable. When hovering the vehicle does not stay still instead it pitches back and forth aggressively. I can fly in manual mode and altitude mode without any issues at all, but when hovering in altitude mode and switching to position it immediately starts cyclically shaking back and forth and gets worse the longer I let it go.
Its paired with the AR0144 tracking cam and has been calibrated. This is setup to also use a GPS/MAG but indoors use VIO. there is also a VL53L1X mounted for altitude sensing below 4m. Is there something that anyone would recommend checking to see what may be happening here. I followed along with the EKF2 param helpers for VIO in px4 as well.
This is my extrinsics:
"extrinsics": [{
"parent": "imu_apps",
"child": "tracking",
"T_child_wrt_parent": [0.0237, 0.0024, -0.0073],
"RPY_parent_to_child": [0, 90, 90]
}, {
"parent": "body",
"child": "imu_apps",
"T_child_wrt_parent": [0.1138, -0.006, 0.040],
"RPY_parent_to_child": [0, 0, 0]
}, {
"parent": "body",
"child": "ground",
"T_child_wrt_parent": [0, 0, 0.0537],
"RPY_parent_to_child": [0, 0, 0]
}]
}
and qvio-server config:
{
"odr_hz": 30,
"use_camera_height_bootstrap": true,
"camera_height_off_ground_m": 0.085000000894069672,
"enable_init_while_moving": false,
"cam_imu_timeshift_s": 0,
"cam_imu_timeshift_s_uncertainty": 9.99999974737875e-05,
"T_cam_wrt_imu_uncertainty": [0.00050000002374872565, 0.00050000002374872565, 0.00050000002374872565],
"R_cam_to_imu_uncertainty": [0.00499999988824129, 0.00499999988824129, 0.00499999988824129],
"accl_fsr_ms2": 156,
"gyro_fsr_rad": 34,
"accl_noise_std_dev": 0.31600001454353333,
"gyro_noise_std_dev": 0.00999999977648258,
"cam_noise_std_dev": 100,
"min_std_pixel_noise": 0.5,
"fail_high_pixel_noise_points": 1.6650999784469604,
"limited_imu_bw_trigger": 25,
"gps_imu_time_alignment_s": 0,
"T_gps_wrt_imu": [0, 0, 0],
"enable_mapping": true,
"enable_gps_vel": false,
"en_auto_reset": true,
"auto_reset_max_velocity": 10,
"auto_reset_max_v_cov_instant": 0.10000000149011612,
"auto_reset_max_v_cov": 0.00999999977648258,
"auto_reset_max_v_cov_timeout_s": 0.5,
"auto_reset_min_features": 3,
"auto_reset_min_feature_timeout_s": 1,
"en_standby_mode": true,
"standby_skip_frames": 1,
"mask_file_path": ""
}
vio_cams config:
{
"cams": [{
"enable": true,
"name": "tracking",
"pipe_for_preview": "tracking",
"pipe_for_tracking": "tracking_misp_norm",
"is_occluded_on_ground": false,
"imu": "imu_apps",
"cal_file": "opencv_tracking_intrinsics.yml"
},{
"enable": false,
"name": "tracking_down",
"pipe_for_preview": "tracking_down",
"pipe_for_tracking": "tracking_down_misp_norm",
"is_occluded_on_ground": true,
"imu": "imu_apps",
"cal_file": "opencv_tracking_down_intrinsics.yml"
}]
}
And heres my qvio overlay:

Would looking into opvenins be a solution, and can it work well with just a single tracking camera ?