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

How to transform acceleration data to velocity data

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

My IMU( Xsens MTi-28A53G35) only puts out orientation, angular velocity and linear acceleration. I want to use this data to help improve the accuracy of odom of the robot.

The Robot_localization doesn't support acceleration data from IMU so I have to transform acceleration into velocity first. I am wondering whether there are any nodes that can do this or I have write a node for it?

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2014-09-19 01:56:35 -0600

ROSCMBOT gravatar image

Why don't you just ignore linear acceleration? Check this tutorial. In the config param of your imu in the launch file, you can set the variables related to orientation and angular velocity as true and the rest as false. So your config param for imu should look like this:

<rosparam param="imu0_config">[false, false, false, 
                                     true,  true,  true, 
                                     false, false, false, 
                                     true,  true,  true]</rosparam>
edit flag offensive delete link more

answered 2014-09-23 02:40:16 -0600

zumili gravatar image

Usually if you want to integrate different types of data like GPS, Odometry, Acceleration, Rotation, ect. to correct your actual position you will use a so called EKF (extended kalman filter). You will find a ready to use ros node to do this or you have to this be yourself in special cases!

edit flag offensive delete link more

answered 2014-09-20 00:19:04 -0600

jseal gravatar image

You just have to integrate the accelerations to get velocity data. Something like this:

velocity_x = velocity_x_previous + accel_x * dt;

It will depend on how good your accelerometers are whether you get a good estimate of the velocities. Also another good use for accelerometers is determining your pitch and roll from the gravity vector, it can help determine if your robot is stuck/tilted.

edit flag offensive delete link more

Question Tools

1 follower


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

Seen: 2,241 times

Last updated: Sep 23 '14