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

what IMUs work with ROS?

asked 2011-03-15 09:08:57 -0500

updated 2011-04-26 06:27:50 -0500

I'm investigating adding an IMU to my 3DOF robot platform to improve odometry through robot_pose_ekf

What IMUs are available that output sensor_msgs/Imu messages?

Here's what I found so far:

What solution would work best for the least amount of money (taking into account I only have 3DOF on my robot)?

(for example, has anyone used Wiimote IMU data for robot_pose_ekf?)

edit retag flag offensive close merge delete

6 Answers

Sort by ยป oldest newest most voted

answered 2011-03-15 09:30:43 -0500

KoenBuys gravatar image

You can have a look here: Sensors wiki and contribute those you found extra. We at KUL have the Xsens Mti package that we maintain.

edit flag offensive delete link more

answered 2011-03-15 09:38:08 -0500

Eric Perko gravatar image

updated 2011-03-15 18:28:39 -0500

For integration with robot_pose_ekf, you'll want to make sure that your IMU actually computes and returns an orientation, since robot_pose_ekf only cares about the orientation component of it's input sensor_msgs/IMU. For example, if I recall correctly, the Wiimote IMU does not compute an orientation component, as the Wiimote only outputs accelerations (and angular velocities if you have a MotionPlus either addon or builtin to the newer Wiimotes).

I'm not familiar with the imu_9drazor driver specifically, but we do use Sparkfun 9DOF Razor IMU in our own projects (with an unreleased driver) and have been extremely happy with it. Some reasons we've been happy with it:

Relatively inexpensive ($125)
Easily hackable (it's basically just an Arduino with the sensors wired in and some pre-exisiting firmware)
Gyros don't really drift, so we are able to use a static bias correction instead of calculating it on the fly

Hopefully this helps.

edit flag offensive delete link more


The 9d_razor has been modified by hobbyists recently to include both a Kalman filter and DCM solution to the orientation problem. Most of the cheaper IMUs do not include this functionality, and it gives you a nice head start on a project.
mjcarroll gravatar image mjcarroll  ( 2011-03-15 10:32:49 -0500 )edit
Do you have a link for the Kalman Filter firmware? I only recall the DCM that is in the sf9domahrs project. And ya, having that added functionality is a huge boost!
Eric Perko gravatar image Eric Perko  ( 2011-03-15 10:42:47 -0500 )edit
Give me a bit of time to find it. I'm pretty sure that one of the DIYdrones guys set it up with 3 different methods. DCM, EKF/UKF, and something I hadn't heard of before. It's not in the stock AHRS firmware, but it exists. It's just a matter of parsing my Google history.
mjcarroll gravatar image mjcarroll  ( 2011-03-16 04:11:35 -0500 )edit
I think the CH Robots UM6 has an EKF by default, code here:
mjcarroll gravatar image mjcarroll  ( 2011-03-16 04:18:07 -0500 )edit
Do you know of any that run on the 9d razor? We've done an EKF/UKF for the 9d razor, but in Python on the host machine. We didn't think we could get one running at the rate we wanted on the Arduino on the razor. That UM6 has a 32-bit ARM (definitely beefier than the ATMega328) to handle the EKF.
Eric Perko gravatar image Eric Perko  ( 2011-03-16 04:24:20 -0500 )edit
I'm not sure. Right now, the 9DOF razor is out of production until the end of April, according to SFE. We are currently trying to evaluate our options. We really need a quaternion-capable MARG sensor, but we really aren't sure what to go with.
mjcarroll gravatar image mjcarroll  ( 2011-03-16 04:28:43 -0500 )edit
The UM6 actually looks pretty interesting (and I hadn't seen it before) - at the very least, I'm surprised they are running their EKF at 1 KHz. And while it does cost more than the 9DOF razor, still having open-source firmware is a definite plus. Thanks for the link!
Eric Perko gravatar image Eric Perko  ( 2011-03-16 04:51:48 -0500 )edit
Eric, the source of robot_pose_ekf indeed only looks at the orientation/covariance fields of the Imu message. That leads me to wonder if my robot is a 3DOF robot in a flat office env, could I get away with just a 2D compass? 'Would cost less than a full IMU--plus I have some already in house...
JeffRousseau gravatar image JeffRousseau  ( 2011-03-16 08:38:03 -0500 )edit

answered 2013-01-02 20:17:51 -0500

robotictang gravatar image

Hi everybody,

I just contributed a ROS package for Razor IMU 9DOF using latest firmware and support for all different hardware version of the board.

(PS: They make alot of revision for the board), This package will publish /imu standard message. I also prepared a 3D visualization testing for the package.

This firmware support calibration.

You are welcome to comment and report bug if you found any. Thanks for the support!

Cheers Tang

edit flag offensive delete link more



helllo, I can't see the direct link for your driver's repo

cagatay gravatar image cagatay  ( 2013-01-03 01:10:02 -0500 )edit

You should add your driver to the Sensors page. It will get more views than here.

tfoote gravatar image tfoote  ( 2013-01-03 10:50:03 -0500 )edit

I think by now the doxygen will generate the GIT link. I also paste here

robotictang gravatar image robotictang  ( 2013-01-03 15:06:05 -0500 )edit

robotictang gravatar image robotictang  ( 2013-01-03 15:06:23 -0500 )edit

Glad to hear about the new package. Can we assume an Electric package will be released as well? I'd also like to find a complementary GPS package.

KM6VV gravatar image KM6VV  ( 2013-01-05 16:42:26 -0500 )edit

answered 2012-07-19 22:17:03 -0500

punching gravatar image

Did you make any progress with this? I'm planning on using a FreeIMU 9 DOF ( a 250G single access accelerometer connected to an Arduino using rosserial. Should know soon how well it works.

edit flag offensive delete link more


If you use robot_pose_ekf is what Eric said, it will work if you give just an orientation. If you want to fuse all these data you can modify robot_pose_ekf or deal with your data to get an orientation for this ekf.

martimorta gravatar image martimorta  ( 2012-07-31 21:19:29 -0500 )edit

answered 2012-04-02 13:56:09 -0500

sd1074 gravatar image

Does anyone know what happened to the page? It seems to empty.

edit flag offensive delete link more


I believe that package was removed by the authors.

Eric Perko gravatar image Eric Perko  ( 2012-04-02 15:55:29 -0500 )edit

Thanks for your reply, Eric. Do you know if there is anything analogous which would allow me to quickly use this IMU in ROS?

sd1074 gravatar image sd1074  ( 2012-04-03 10:28:55 -0500 )edit

Nothing released or in any shape to be released. It looks like the code for the imu_9drazor is still up ( ), but since the docs were removed, who knows what shape it's in. It might be easiest to write your own driver using the stock Sparkfun firmware.

Eric Perko gravatar image Eric Perko  ( 2012-04-03 10:52:31 -0500 )edit

answered 2013-01-03 07:17:00 -0500

KM6VV gravatar image

Will the package be put up for Electric? I have the 9DOF, and am interested in using it on my 'bot.

Alan KM6VV

edit flag offensive delete link more

Question Tools



Asked: 2011-03-15 09:08:57 -0500

Seen: 5,104 times

Last updated: Jan 03 '13