Ask Your Question

How to transform the acceleration data from IMU to velocity

asked 2014-09-18 20:51:55 -0600 gravatar image

I am currently using Xsens MTi-28A53G35 IMU for the the motion tracking on our robot. The IMU only puts out linear and angular acceleration and orientation data. Is there an node that can transform this to linear velocity so I can use it to localize the robot and help improve the accuracy of odometry.

edit retag flag offensive close merge delete


Mekateng gravatar imageMekateng ( 2018-01-07 14:30:17 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2014-09-19 08:19:41 -0600

Tom Moore gravatar image

updated 2014-09-19 13:28:55 -0600

I'm guessing your IMU puts out linear acceleration, angular velocity, and absolute orientation. While I have a branch of robot_localization that will take in linear acceleration data, I should point out that the double integration of linear acceleration as your only source of absolute position will produce a really poor estimate. If you had some estimate of your vehicle's linear velocity, such as from your robot's wheel encoder odometry, then you'd definitely benefit from the linear acceleration data.

edit flag offensive delete link more


Update: the released version of robot_localization now supports this feature.

Tom Moore gravatar imageTom Moore ( 2014-12-16 07:26:12 -0600 )edit

So robot_localization supports calculating the velocity with an IMU. How can I use this feature? I don't see a parameter that I can set. I understand that the imu0_config only describes which data should be used from imu0, am I wrong?

Holger gravatar imageHolger ( 2017-04-10 04:29:30 -0600 )edit

The IMU provides linear acceleration. Set those values to true, and the filter's kinematic model will integrate them into velocities. Be warned, though: there is no bias estimation, so biases will quickly cause the velocity to grow without bound (unless you have another velocity reference).

Tom Moore gravatar imageTom Moore ( 2017-04-11 04:09:15 -0600 )edit

can i use "IMU" in linear movement to create a 2D map or calculate the linear velocity??

toqa elshahat gravatar imagetoqa elshahat ( 2017-04-22 16:31:59 -0600 )edit

answered 2014-09-19 02:54:14 -0600

Wolf gravatar image

This is the task of the robot_pose_ekf ( ).

edit flag offensive delete link more



I don't believe robot_pose_ekf uses linear acceleration from the IMU, but rather only the absolute orientation. See the "imu_data" section of its wiki page.

Tom Moore gravatar imageTom Moore ( 2014-09-19 08:12:47 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2014-09-18 20:51:55 -0600

Seen: 4,369 times

Last updated: Sep 19 '14