ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

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

asked 2020-02-20 13:35:23 -0500

sennec gravatar image

updated 2020-03-02 05:27:48 -0500

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.

Thanks for your time.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-03-27 04:26:00 -0500

Tom Moore gravatar image

updated 2020-03-27 05:28:43 -0500

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.

edit flag offensive delete link more

Comments

Hello!

Thanks for your answer.

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!

sennec gravatar image sennec  ( 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.

Tom Moore gravatar image Tom Moore  ( 2020-04-27 02:34:26 -0500 )edit

Question Tools

Stats

Asked: 2020-02-20 13:35:23 -0500

Seen: 322 times

Last updated: Mar 27 '20