ethzasl_msf icon indicating copy to clipboard operation
ethzasl_msf copied to clipboard

Estimated position is slowly drifting in absence of vision data

Open boeboe26 opened this issue 9 years ago • 1 comments

Hi!

Based on a real trajectory, I simulated perfect sensor data using imusim (https://github.com/martinling/imusim). Then, I gave the data to the sensor fusion framework. As you can see, the estimated positions follow the transformations from the vision sensor almost perfectly:

issue_estimated_position_overview

The vision sensor is normally updated at 10Hz except one small gap that lasts 3 seconds: issue_estimated_position

During the absence of the vision data, the estimated positions slowly drifts away.

Why does this happen?

issue_state_out_drift_world_imu

For the sake of completeness, here are the other non-zero states: issue_gyro issue_accel

Here is my setup file:

/msf_viconpos_sensor/core/data_playback: true
/msf_viconpos_sensor/core/fixed_bias: 0

#########IMU PARAMETERS#######
/msf_viconpos_sensor/core/core_noise_acc: 0.0005 #[m/s^2/sqrt(Hz)]
/msf_viconpos_sensor/core/core_noise_accbias: 0.00005 
/msf_viconpos_sensor/core/core_noise_gyr: 0.00019  #[rad/s/sqrt(Hz)]
/msf_viconpos_sensor/core/core_noise_gyrbias: 0.000019 

/msf_viconpos_sensor/pose_sensor/fixed_scale: 1
/msf_viconpos_sensor/pose_sensor/pose_noise_scale: 0.0
/msf_viconpos_sensor/pose_sensor/pose_noise_p_wv: 0.0
/msf_viconpos_sensor/pose_sensor/pose_noise_q_wv: 0.0
/msf_viconpos_sensor/pose_sensor/pose_noise_q_ic: 0.0 
/msf_viconpos_sensor/pose_sensor/pose_noise_p_ic: 0.0
/msf_viconpos_sensor/pose_sensor/pose_delay: 0.0 
/msf_viconpos_sensor/pose_sensor/pose_noise_meas_p: 0.0 
/msf_viconpos_sensor/pose_sensor/pose_noise_meas_q: 0.0 
/msf_viconpos_sensor/pose_sensor/core_height: 0.20 

/msf_viconpos_sensor/pose_sensor/init/q_ic/w: 1.0
/msf_viconpos_sensor/pose_sensor/init/q_ic/x: 0.0
/msf_viconpos_sensor/pose_sensor/init/q_ic/y: 0.0
/msf_viconpos_sensor/pose_sensor/init/q_ic/z: 0.0

/msf_viconpos_sensor/pose_sensor/init/p_ic/x: 0.0 
/msf_viconpos_sensor/pose_sensor/init/p_ic/y: 0.0
/msf_viconpos_sensor/pose_sensor/init/p_ic/z: 0.0

/msf_viconpos_sensor/pose_sensor/pose_fixed_scale: true
/msf_viconpos_sensor/pose_sensor/pose_fixed_p_ic: true
/msf_viconpos_sensor/pose_sensor/pose_fixed_q_ic: true
/msf_viconpos_sensor/pose_sensor/pose_fixed_p_wv: true
/msf_viconpos_sensor/pose_sensor/pose_fixed_q_wv: true

/msf_viconpos_sensor/pose_sensor/pose_absolute_measurements: true
/msf_viconpos_sensor/pose_sensor/pose_use_fixed_covariance: true
/msf_viconpos_sensor/pose_sensor/pose_measurement_world_sensor: true  # selects if sensor measures its position w.r.t. world (true, e.g. Vicon) or the position of the world coordinate system w.r.t. the sensor (false, e.g. ethzasl_ptam

/msf_viconpos_sensor/pose_sensor/pose_measurement_minimum_dt: 0.0 #0.05  # Sets the minimum time in seconds between two pose measurements.

boeboe26 avatar Dec 22 '15 15:12 boeboe26

/msf_viconpos_sensor/pose_sensor/pose_noise_meas_p: 0.0 /msf_viconpos_sensor/pose_sensor/pose_noise_meas_q: 0.0

emmm

doomzzju avatar Aug 02 '22 06:08 doomzzju