Hi all,
I am running the voxl 2 mini with 3x ar0144 cameras, all extrinsics and intrinsics were verified, and a Kalibr calibration was done for each camera. When doing a bench test and moving the drone, handheld feature recognition is great.
The problem is when the drones take off on its own, from the 0 feature state, it doesn't start recognizing new features, and the position hold doesn't work. I have to manually pick up the drone and shake it around a bit, and then it will start to recognize new features.
Here is a log, my estimator, open-vins-server and vision-hub settings: https://review.px4.io/plot_app?log=589a6bd9-e8dd-4aaa-8e0d-b0b386450142
%YAML:1.0
verbosity: INFO
use_fej: true
integration: rk4
use_stereo: false
max_cameras: 3
calib_cam_extrinsics: true
calib_cam_intrinsics: true
calib_cam_timeoffset: true
calib_imu_intrinsics: false
calib_imu_g_sensitivity: false
max_clones: 11
max_slam: 30
max_slam_in_update: 15
max_msckf_in_update: 10
dt_slam_delay: 2
gravity_mag: 9.81
feat_rep_msckf: ANCHORED_MSCKF_INVERSE_DEPTH
feat_rep_slam: ANCHORED_MSCKF_INVERSE_DEPTH
feat_rep_aruco: ANCHORED_MSCKF_INVERSE_DEPTH
try_zupt: true
zupt_chi2_multipler: 1.0
zupt_max_velocity: 0.03
zupt_noise_multiplier: 1
zupt_max_disparity: 8
zupt_only_at_beginning: true
init_window_time: 2.0
init_imu_thresh: 1.0
init_max_disparity: 20.0
init_max_features: 30
init_dyn_use: true
init_dyn_mle_opt_calib: false
init_dyn_mle_max_iter: 50
init_dyn_mle_max_time: 0.05
init_dyn_mle_max_threads: 4
init_dyn_num_pose: 13
init_dyn_min_deg: 5.0
init_dyn_inflation_ori: 10
init_dyn_inflation_vel: 100
init_dyn_inflation_bg: 10
init_dyn_inflation_ba: 100
init_dyn_min_rec_cond: 1e-12
init_dyn_bias_g: [0.0, 0.0, 0.0]
init_dyn_bias_a: [0.0, 0.0, 0.0]
init_gravity_max_angle: 15.0
record_timing_information: false
record_timing_filepath: /tmp/traj_timing.txt
save_total_state: false
filepath_est: /tmp/ov_estimate.txt
filepath_std: /tmp/ov_estimate_std.txt
filepath_gt: /tmp/ov_groundtruth.txt
use_klt: true
use_gpu: true
num_pts: 100
fast_threshold: 3
grid_x: 4
grid_y: 3
min_px_dist: 8
knn_ratio: 0.70
track_frequency: 30.0
downsample_cameras: false
num_opencv_threads: 4
histogram_method: CLAHE
fi_min_dist: 0.1
fi_max_dist: 60
fi_max_baseline: 40
fi_refine_features: true
fi_max_runs: 5
use_aruco: false
num_aruco: 1024
downsize_aruco: true
up_msckf_sigma_px: 1.2
up_msckf_chi2_multipler: 20.0
up_slam_sigma_px: 1.2
up_slam_chi2_multipler: 1.0
up_aruco_sigma_px: 1.0
up_aruco_chi2_multipler: 3.5
use_mask: false
relative_config_imu: kalibr_imu_chain.yaml
relative_config_imucam: kalibr_imucam_chain.yaml
{
"en_auto_reset": true,
"auto_reset_max_velocity": 20,
"auto_reset_max_v_cov_instant": 0.20000000298023224,
"auto_reset_max_v_cov": 0.20000000298023224,
"auto_reset_max_v_cov_timeout_s": 0.5,
"auto_reset_min_features": 1,
"auto_reset_min_feature_timeout_s": 10,
"ok_state_grace_timeout_s": 2,
"auto_fallback_timeout_s": 3,
"auto_fallback_min_v": 0.600000023841858,
"en_cont_yaw_checks": false,
"fast_yaw_thresh": 5,
"fast_yaw_timeout_s": 1.75,
"yaml_folder": "/usr/share/modalai/voxl-open-vins/VoxlConfig/custom_tunnel",
"using_stereo": 0,
"takeoff_alt_threshold": 0.5,
"takeoff_occlude_stereo_left": false,
"takeoff_occlude_stereo_right": false,
"sync_config": true,
"fusion_rate_dt_ms": 20,
"imu_body_frame_mode": true,
"quality_low_thresh_initial": 15,
"quality_low_thresh_good": 14,
"quality_high_thresh": 35,
"quality_initial_to_bad_count": 20,
"quality_initial_to_good_count": 50,
"quality_bad_to_good_count": 60,
"quality_good_to_bad_count": 45
}
{
"config_file_version": 1,
"en_localhost_mavlink_udp": false,
"localhost_udp_port_number": 14551,
"en_vio": true,
"vio_pipe": "ov",
"secondary_vio_pipe": "qvio",
"vfc_vio_pipe": "ov",
"en_reset_vio_if_initialized_inverted": true,
"vio_warmup_s": 3,
"send_odom_while_failed": true,
"horizon_cal_tolerance": 0.5,
"en_hitl": false,
"offboard_mode": "vfc",
"follow_tag_id": 0,
"figure_eight_move_home": true,
"robot_radius": 0.300000011920929,
"collision_sampling_dt": 0.1,
"max_lookahead_distance": 1,
"wps_move_home": true,
"wps_stride": 0,
"wps_timeout": 0,
"wps_damp": 1,
"wps_vfc_mission": true,
"wps_vfc_mission_loop": false,
"wps_vfc_mission_to_ramp": 25,
"wps_vfc_mission_to_kp": 0.10000000149011612,
"wps_vfc_mission_cruise_speed": 1,
"tracking_trigger_ch": 12,
"tracking_trigger_ch_thresh_temp": 1200,
"tracking_trigger_ch_thresh_new": 1800,
"en_tag_fixed_frame": false,
"fixed_frame_filter_len": 5,
"en_transform_mavlink_pos_setpoints_from_fixed_frame": false,
"en_voa": false,
"voa_upper_bound_m": -0.15000000596046448,
"voa_lower_bound_m": 0.15000000596046448,
"voa_voa_memory_s": 1,
"voa_max_pc_per_fusion": 100,
"voa_pie_max_dist_m": 20,
"voa_pie_min_dist_m": 0.25,
"voa_pie_under_trim_m": 1,
"voa_pie_threshold": 3,
"voa_send_rate_hz": 20,
"voa_pie_slices": 36,
"voa_pie_bin_depth_m": 0.15000000596046448,
"voa_inputs": [{
"enabled": true,
"type": "point_cloud",
"input_pipe": "dfs_point_cloud",
"frame": "stereo_l",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}, {
"enabled": true,
"type": "point_cloud",
"input_pipe": "stereo_front_pc",
"frame": "stereo_front_l",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}, {
"enabled": true,
"type": "point_cloud",
"input_pipe": "stereo_rear_pc",
"frame": "stereo_rear_l",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}, {
"enabled": true,
"type": "tof",
"input_pipe": "tof",
"frame": "tof",
"max_depth": 6,
"min_depth": 0.15000000596046448,
"cell_size": 0.079999998211860657,
"threshold": 3,
"x_fov_deg": 106.5,
"y_fov_deg": 85.0999984741211,
"conf_cutoff": 125
}, {
"enabled": true,
"type": "rangefinder",
"input_pipe": "rangefinders",
"frame": "body",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}]
}
Any help will be appreciated, thanks!