SpectacularAI / HybVIO

HybVIO visual-inertial odometry and SLAM system

Home Page:https://arxiv.org/abs/2106.11857

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem about IMU noise unit

fushi219 opened this issue · comments

Hi, I am trying to run your beautiful algorithm on my own device.
I wonder if the parameter such as noiseProcessGyro and noiseProcessBGA is continuous or discrete?
I have calibrated my IMU via imu_utils or so on, which give me the continuous noise parameter. Should I transform them into discrete ones?
Thanks a lot!~

I did not fully understand the question. These parameters have type "double" and are therefore continuous or floating point numbers.

Hi! Does 'noiseProcessGyro' stand for gyro measurement white noise? If so, in kalibr, the unit of output 'noiseProcessGyro' is 'rad/(s^0.5)' (continuous-time ), I wonder if I need to convert it into discrete time one (via noiseProcessGyro / (t^0.5)) to fit my device?

Thanks for the clarification. These are continous-time quantities so there is no need to modify them according to the IMU frequency.

I wonder if the parameters are continous-time, then the parameter noiseProcessAcc has unit (m/(s^1.5)), however with the jacobian: dydq.block(VEL, Q_ACC, 3, 3) = R.transpose() * dt, the acc white noise expand velocity covariance with unit: dt * dt * m/(s^1.5) * m/(s^1.5) = m^2/s ?

commented

Thank you sir and i notice that the IMU noise parameters in python tool in vio_benchmark are not changed even with running different datasets(euroc, tum-vi, sensetime) while still producing good results. I also have this problem because i modify them using the parameters offered by other datasets, the performance of the hybvio is not good. However, when using the default parameters with no modifying, the performance is better. Is it the property of the IMU discrete propagation or the OU random work? If i want to run the hybvio on other datasets or with realsense in real experiments, should i modify the IMU noise parameters accoording to the parameters offered by other datasets or calibrated by IMU_utils and kalibr? Thanks again!

It is common with all types of Kalman filters that the noise parameter values that produce the best results for a cerain use case do not match the physically most accurate values for individual parameters. In other words, most of the important parameter values are practically fudge factors and not physically measurable quantities when the goal is tuning the EKF to produce the best end-to-end accuracy.

We will not offer pratcial tips for tuning in this repository. If you need support or just want VISLAM to work in certain devices, I recommend licensing our commercial SDK.

commented

That's reasonable and thank you.