VIO features not getting detected on drone takeoff
-
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!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login