HKUST-Aerial-Robotics / D2SLAM

$D^2$SLAM: Decentralized and Distributed Collaborative Visual-inertial SLAM System for Aerial Swarm
270 stars 33 forks source link

failed to generate depth #35

Open kajo-kurisu opened 6 months ago

kajo-kurisu commented 6 months ago

when i run the command roslaunch d2vins quadcam.launch enable_pgo:=true enable_loop:=true the following error appeares a33039b47a4688e213eeb17109a4c92c and here is my quadcam_single.yaml

`%YAML:1.0

inputs

imu: 1

imu_topic: "/mavros/imu/data_raw"

imu_topic: "/dji_sdk_1/dji_sdk/imu" image0_topic: "/arducam/image"

is_compressed_images: 1

imu_freq: 400 image_freq: 16 frame_step: 2

Camera configuration

camera_configuration: 3 #STEREO_PINHOLE = 0, STEREO_FISHEYE = 1, PINHOLE_DEPTH = 2, FOURCORNER_FISHEYE = 3 calib_file_path: "quad_cam_calib-camchain-imucam-7-inch-n3.yaml" image_width: 1280 image_height: 800 enable_undistort_image: 1 undistort_fov: 200 width_undistort: 800 height_undistort: 400 photometric_calib: "mask.png" avg_photometric: 0.7

estimation

estimate_extrinsic: 0 # 0 Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it. estimate_td: 0 # online estimate time offset between camera and imu td: -0.186 # For new datasets with filter estimation_mode: 0 double_counting_common_feature: 0 min_inv_dep: 0.01 #100 meter away.

optimization parameters

max_solver_time: 0.08 # max solver itration time (ms), to guarantee real time max_num_iterations: 8 # max solver itrations, to guarantee real time consensus_max_steps: 4 timout_wait_sync: 100 rho_landmark: 1.0 rho_frame_T: 100 rho_frame_theta: 100 relaxation_alpha: 0. consensus_sync_for_averaging: 0 consensus_sync_to_start: 0 #Is sync on start of the solving.. consensus_trigger_time_err_us: 100

depth fusing

depth_far_thres: 3.0 # The max depth in frontend depth_near_thres: 0.3 fuse_dep: 1 #if fuse depth measurement max_depth_to_fuse: 5.0 min_depth_to_fuse: 0.3

Multi-drone

track_remote_netvlad_thres: 0.5

Initialization

init_method: 0 #0 IMU, 1 PnP depth_estimate_baseline: 0.03

sliding window

max_sld_win_size: 11 landmark_estimate_tracks: 4 #when use depth or stereo, 3 is OK. min_solve_frames: 6

solver

multiple_thread: 1

outlier rejection

thres_outlier : 10.0 perform_outlier_rejection_num: 10000 tri_max_err: 0.2

Marginalization

enable_marginalization: 1 margin_sparse_solver: 1 always_fixed_first_pose: 0 remove_base_when_margin_remote: 2

When set to 2, will use the all relevant measurements of the removing frames to compute the prior,

and the baseFrame (where!=removeID) will not be removed. This may lead to double counting of this baseFrame measurement: but it's stable.

When set to 1, will remove the baseframe's measurements of those measurements which is not base on current frame.

set to 0 those measurements (which on a landmark's baseFrame is not been removed) will be ignore.

feature tracker parameters

max_cnt: 150 # max feature number in feature tracking max_superpoint_cnt: 100 # max feature extraction by superpoint max_solve_cnt: 1000 check_essential: 0 enable_lk_optical_flow: 1 #enable lk opticalflow featuretrack to enhance ego-motion estimation. remote_min_match_num: 20 enable_superglue_local: 0 enable_superglue_remote: 0 ransacReprojThreshold: 10.0 enable_search_local_aera: 1 search_local_max_dist: 0.05 parallex_thres: 0.012 knn_match_ratio: 0.8 #This apply to superpoint feature track & loop clouse detection.

CNN

cnn_use_onnx: 1 enable_pca_superpoint: 1 superpoint_pca_dims: 64

acc_n: 0.1 # accelerometer measurement noise standard deviation. #0.2 0.04 gyr_n: 0.05 # gyroscope measurement noise standard deviation. #0.05 0.004 acc_w: 0.002 # accelerometer bias random work noise standard deviation. #0.002 gyr_w: 0.0004 # gyroscope bias random work noise standard deviation. #4.0e-5 g_norm: 9.805 # gravity magnitude

Loop Closure Detection

loop_detection_netvlad_thres: 0.8 enable_homography_test: 0 accept_loop_max_yaw: 10 accept_loop_max_pos: 1.0 loop_inlier_feature_num: 50 gravity_check_thres: 0.03 pgo_solver_time: 1.0 solver_timer_freq: 1.0 enable_pcm: 1 pcm_thres: 2.8

PGO

pgo_solver_time: 0.5 # Max time to solve PGO each update in D2PGO pgo_mode: 1 # PGO MODE=0, D2PGO collects all information and solve it in non-distributed; 1: D2PGO works in distributed mode. pgo_rho_frame_T: 0.84 # rho for translation pgo_rho_frame_theta: 0.25 # rho for rotation pgo_eta_k: 0.1 # eta_k for PGO write_g2o: 0 # If output g2o file, debug only g2o_output_path: "output.g2o" # PGO file path write_pgo_to_file: 1 # If write pgo data as csv.

outputs

output_path: "/root/output/" debug_print_sldwin: 0 debug_print_states: 0 enable_perf_output: 0 debug_write_margin_matrix: 0 show_track_id: 0`

kajo-kurisu commented 6 months ago

and the d2vins broke down after a while i am currently at the commit 92a02ee9919460f74287287c677411f2274a5d9e 225ad76368d575ee1dd56bc61b2fa603