url-kaist / dynaVINS

DynaVINS : A Visual-Inertial SLAM for Dynamic Environments
GNU General Public License v3.0
333 stars 49 forks source link

kitti #15

Open gzyabc opened 6 months ago

gzyabc commented 6 months ago

When I run in kitii data set, why are the weighted feature full of red dots?I modified config with reference to the mono file.

%YAML:1.0

common parameters

imu: 1 num_of_cam: 1

imu_topic: "/imu_raw" image0_topic: "/kitti/camera_gray_left/image_raw" image1_topic: "/kitti/camera_gray_left/image_raw" output_path: "/home/gzy/dynavins_ws/src/output/"

cam0_calib: "cam04-12.yaml" cam1_calib: "cam04-12.yaml" image_width: 1241 image_height: 376

Extrinsic parameter between IMU and Camera.

estimate_extrinsic: 0 # 0 Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.

1 Have an initial guess about extrinsic parameters. We will optimize around your initial guess.

body_T_cam0: !!opencv-matrix rows: 4 cols: 4 dt: d data: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]

body_T_cam1: !!opencv-matrix rows: 4 cols: 4 dt: d data: [1, 0, 0, 0.537150653267924, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]

Multiple thread support

multiple_thread: 4

feature traker paprameters

max_cnt: 150 # max feature number in feature tracking min_dist: 15 # min distance between two features freq: 10 # frequence (Hz) of publish tracking result. At least 10Hz for good estimation. If set 0, the frequence will be same as raw image F_threshold: 2.0 # ransac threshold (pixel) max_depth: 5.0 # max estimated depth (m) show_track: 1 # publish tracking image as topic show_image_feat_weight: 1 flow_back: 1 # perform forward and backward optical flow to improve feature tracking accuracy

dynaVINS parameters

dyna_on: true # do not change it to false regularization_lambda: 2.0 momentum_on: true momentum_lambda: 0.2 alternating_converge: 0.9 margin_feature_thresh: 0.1

optimization parameters

max_solver_time: 3 # max solver itration time (s), to guarantee real time max_num_iterations: 10 # max solver itrations, to guarantee real time keyframe_parallax: 10.0 # keyframe selection threshold (pixel)

imu parameters The more accurate parameters you provide, the better performance

acc_n: 0.1 # accelerometer measurement noise standard deviation. #0.2 0.04 gyr_n: 0.01 # gyroscope measurement noise standard deviation. #0.05 0.004 acc_w: 0.001 # accelerometer bias random work noise standard deviation. #0.02 gyr_w: 1.0e-4 # gyroscope bias random work noise standard deviation. #4.0e-5 g_norm: 9.81007 # gravity magnitude

unsynchronization parameters

estimate_td: 0 # online estimate time offset between camera and imu td: 0.0 # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)

Look forward to your advice

gzyabc commented 6 months ago

used features: 112 used features: 112 COSTDIFF:0.291534 used features: 112 used features: 112 COSTDIFF:0.997322 used features: 96 used features: 96 COSTDIFF:0.320441 used features: 96 used features: 96 COSTDIFF:0.993633 used features: 89 used features: 89 COSTDIFF:0.234236 used features: 89 used features: 89 COSTDIFF:0.996468 used features: 72 used features: 72 COSTDIFF:0.148323 used features: 72 used features: 72 COSTDIFF:0.996312 used features: 70 used features: 70 COSTDIFF:0.177851 used features: 70 used features: 70 COSTDIFF:0.995406 used features: 57 used features: 57 COSTDIFF:0.160343 used features: 57 used features: 57 COSTDIFF:0.969409 used features: 43 used features: 43 COSTDIFF:0.125119 used features: 43 used features: 43 COSTDIFF:0.857258 used features: 43 used features: 43 COSTDIFF:0.866535 used features: 43 used features: 43 COSTDIFF:0.964017 used features: 36 used features: 36 COSTDIFF:0.0277237 used features: 36 used features: 36 COSTDIFF:0.830565 used features: 36 used features: 36 COSTDIFF:0.919677 used features: 31 used features: 31 COSTDIFF:0.0255904 used features: 31 used features: 31

This is the input to the terminal and it says that fewer and fewer feature points are utilized and the trajectory is poor

gzyabc commented 6 months ago

I think the poor trajectory may be the reason for the initialization. I used the same euroc data set to run vinsmono and vinsfusion, both of which could run normally, but the trajectory of dynavins ran out of control.