HKUST-Aerial-Robotics / VINS-Fusion

An optimization-based multi-sensor state estimator
GNU General Public License v3.0
3.42k stars 1.37k forks source link

Drifting with intel realsense D435 #11

Open ghost opened 5 years ago

SteveMacenski commented 5 years ago

any more detail you can offer?

struggleforbetter commented 5 years ago

it is easy to drift with intel realsense D435i,Sometimes, I put the camera on the desktop, the program will use the latest second frame as a key-frame, optimize td(I open estimate_td), and make td bigger and bigger. There is also a case where when I quickly shake the camera, the stable posture becomes unstable. This happens when I walk around with the camera.

cam0_calib: "left.yaml" cam1_calib: "right.yaml" image_width: 640 image_height: 480

Extrinsic parameter between IMU and Camera.

estimate_extrinsic: 1 # 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: [ -5.7586305857286746e-03, -4.0463318787729019e-03, 9.9997523237933461e-01, 2.0329267950355900e-02, -9.9998287214160420e-01, -1.0224590553211677e-03, -5.7628118925283633e-03, 7.9325209639615653e-03, 1.0457519809151661e-03, -9.9999129084997906e-01, -4.0403746097850135e-03, 2.8559824645148020e-03, 0., 0., 0., 1. ]

body_T_cam1: !!opencv-matrix rows: 4 cols: 4 dt: d data: [ -1.0021770212322867e-03, 3.6313480322730518e-04, 9.9999943188700535e-01, 1.5285779565991807e-02, -9.9999216342926500e-01, -3.8303422615924010e-03, -1.0007788055728661e-03, -5.2435791444330505e-02, 3.8299766679101843e-03, -9.9999259827824449e-01, 3.6697063849344680e-04, 8.6931302450199057e-03, 0., 0., 0., 1. ]

Multiple thread support

multiple_thread: 1

feature traker paprameters

max_cnt: 150 # max feature number in feature tracking min_dist: 30 # 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: 1.0 # ransac threshold (pixel) show_track: 1 # publish tracking image as topic flow_back: 1 # perform forward and backward optical flow to improve feature tracking accuracy

optimization parameters

max_solver_time: 0.04 # max solver itration time (ms), to guarantee real time max_num_iterations: 8 # 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.002 gyr_w: 0.0001 # gyroscope bias random work noise standard deviation. #4.0e-5 g_norm: 9.805 # gravity magnitude

unsynchronization parameters

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

this is lauch file

struggleforbetter commented 5 years ago

launch: 2019-03-27 16-38-29屏幕截图 2019-03-27 16-43-35屏幕截图

BarzelS commented 4 years ago

Hi, I'm having the same problem Did you manage to fix it?

Pallav1299 commented 3 years ago

I am testing with Stereo-inertial setup using stereo pair and IMU data from Realsese D435i. There were projector dots in the default ros-driver.

I also tried with the modified realsense-ros driver from ZJU-FAST lab LINK. Although the projector dots almost removed, I witnessed that the changes affected the IMU and camera timestamps. I think now it is using timestamp from the sensor, which is not the case in original realsense driver. The messages are timestamped using UNIX time. Should I bother about this?

Abner0907 commented 1 year ago

@Pallav1299 you should close it.

Should I be using stereo images with projector dots as input to VINS-fusion? you can use the command below:

rosrun dynamic_reconfigure dynparam set /camera/stereo_module emitter_enabled 0