ethzasl_msf
ethzasl_msf copied to clipboard
Estimated position is slowly drifting in absence of vision data
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:
The vision sensor is normally updated at 10Hz except one small gap that lasts 3 seconds:
During the absence of the vision data, the estimated positions slowly drifts away.
Why does this happen?
For the sake of completeness, here are the other non-zero states:
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.
/msf_viconpos_sensor/pose_sensor/pose_noise_meas_p: 0.0 /msf_viconpos_sensor/pose_sensor/pose_noise_meas_q: 0.0
emmm