# Robot Localization: Different input sampling rates & acceleration in motion model

Hello,

we are currently fusing IMU, Wheel Odometry and Visual Odometry data with your robot_localization package. Since we have different sampling rates (eg. we receive 100 IMU messages and 1 VO message in the same time window) the question arised whether this problem is handled within the package or not.

Furthermore we took at look at the motion model you are using. We ask ourselves why the X and Y -Velocities are simply calculated by multiplying the X/Y acceleration times the delta without influence of any angle.

edit retag close merge delete

Sort by ยป oldest newest most voted

Since we have different sampling rates (eg. we receive 100 IMU messages and 1 VO message in the same time window) the question arised whether this problem is handled within the package or not.

Sure. The package makes no assumptions about the data rates of the various sensors. All it sees is a queue of measurements that it has to fuse. For you, most of those will be quantities measured by the IMU, with a VO message thrown in once in a while.

We ask ourselves why the X and Y -Velocities are simply calculated by multiplying the X/Y acceleration times the delta without influence of any angle

The filter assumes that both accelerations and velocities are reported in the same body frame (the coordinate frame rigidly affixed to the robot's centroid). So linear acceleration just needs to be integrated to get velocity. If your IMU is mounted sideways, for example, the data obviously needs to be rotated to match the body frame. But all of that happens outside the kinematic model, before the data is fused.

The velocity is rotated when it is integrated into position, however, as is the acceleration.

more

Hello!

If the EKF fuses say 100 IMU messages and 1 VO message, won't it get extremely biased by the IMU in that case? Or is this all just a matter of covariance choices?

Thanks again!

( 2020-04-01 04:14:53 -0500 )edit

It depends on what the IMU is measuring. If it's measuring acceleration, then the filter is integrating that into velocity, and then again into position, so the VO will probably have a larger influence on the position estimate. If you are measuring angular velocity with your IMU and your VO data, then the velocity of the robot will likely be biased towards the IMU. But in general, if you only have one data source directly measuring a given variable in the state, that data source will be the largest influence. In any case, yes, try working with the covariance values until you are satisfied.

( 2020-04-27 02:34:26 -0500 )edit