0
$\begingroup$

Rosanswers logo

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?)


Originally posted by JeffRousseau on ROS Answers with karma: 1607 on 2011-03-15

Post score: 5

$\endgroup$

3 Answers 3

0
$\begingroup$

Rosanswers logo

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.


Originally posted by KoenBuys with karma: 2314 on 2011-03-15

This answer was ACCEPTED on the original site

Post score: 4

$\endgroup$
0
$\begingroup$

Rosanswers logo

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.


Originally posted by Eric Perko with karma: 8406 on 2011-03-15

This answer was NOT ACCEPTED on the original site

Post score: 5


Original comments

Comment by mjcarroll on 2011-03-16:
The high-end 9DOFs (Microstrain, etc) use the accelerometer data and magneto data to correct the random walk you get from integrating noisy yaw data. Using a Kalman Filter or DCM, you can end up with a sensor that is more accurate than any of the individual sensors. Even for 2D robots.

Comment by Eric Perko on 2011-03-16:
If all you can do is yaw, move forward or move sideways, an IMU isn't required. A 2D yaw sensor would be just fine (compass or integrating a gyro that is bias corrected comes to mind). A thing to keep in mind with the compass is that things like magnetic door locks will completely confuse it!

Comment by JeffRousseau on 2011-03-16:
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...

Comment by Eric Perko on 2011-03-16:
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!

Comment by mjcarroll on 2011-03-16:
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.

Comment by Eric Perko on 2011-03-16:
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.

Comment by mjcarroll on 2011-03-16:
I think the CH Robots UM6 has an EKF by default, code here: http://sourceforge.net/projects/um6firmware/

Comment by mjcarroll on 2011-03-16:
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.

Comment by Eric Perko on 2011-03-15:
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!

Comment by mjcarroll on 2011-03-15:
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.

$\endgroup$
0
$\begingroup$

Rosanswers logo

Hi everybody,

I just contributed a ROS package http://www.ros.org/wiki/razor_imu_9dof 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


Originally posted by robotictang with karma: 21 on 2013-01-02

This answer was NOT ACCEPTED on the original site

Post score: 2


Original comments

Comment by cagatay on 2013-01-03:
helllo, I can't see the direct link for your driver's repo

Comment by tfoote on 2013-01-03:
You should add your driver to the Sensors page. It will get more views than here.

Comment by robotictang on 2013-01-03:
I think by now the doxygen will generate the GIT link. I also paste here

Comment by robotictang on 2013-01-03:
https://github.com/robotictang/razor_imu_9dof.git

Comment by KM6VV on 2013-01-05:
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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.