when i run the command
roslaunch d2vins quadcam.launch enable_pgo:=true enable_loop:=true
the following error appeares
and here is my quadcam_single.yaml
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
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.
when i run the command
roslaunch d2vins quadcam.launch enable_pgo:=true enable_loop:=true
the following error appeares 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`