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

Question about imu emplacement

asked 2018-08-03 03:15:51 -0500

kesuke gravatar image

hi ,

i have a sensor imu (razor_imu_9dof) and i'm using the ekf package to combine it with the odom data that coming from encoder , my question is where should i put the imu on the robot , i have a differential robot like a big version of turtlebot but i don't know if i have to put the imu between the wheels or anywhere in the robot and i use the tf to transfomr data to base_link , can you give any advice ?

thank you

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2018-08-03 06:52:46 -0500

stevejp gravatar image

updated 2018-08-03 07:29:43 -0500

I have two suggestions:

  1. Place your imu in a way where the sensor frame of the imu will be orientation aligned with your base_link frame (i.e., so that in your base_link -> imu_link tf, the orientation component is unit quaternion). I've found this useful for debugging localization, because you can directly compare what your orientation state estimate is with the orientation estimate provided by your imu.
  2. Place it as far away from sources which cause soft iron interference as you can. You should calibrate the magnetometer on the imu once it's on your robot to properly capture the hard / soft iron disturbance, and I've found the soft iron calibrations are much more unreliable than hard iron.
edit flag offensive delete link more


thank you i will try it , but abut the tf i thought that when i'm using the ekf package i's publishing tf and no need to publish tf from imu

kesuke gravatar image kesuke  ( 2018-08-03 06:58:43 -0500 )edit

If you're using robot_localization for your ekf, it doesn't publish base_link -> imu_link (this is a static transform). R_l will typically publish odom->base_link or map->base_link. You need to make sure you're publishing base_link -> imu_link so that r_l ekf can use the imu.

stevejp gravatar image stevejp  ( 2018-08-03 07:11:31 -0500 )edit

stevejp, I am about to add IMU to robot that uses wheel-chair motors in tank steer. My experience with IMU on a smaller robot is that it couldn't be made to work as it would lose calibration as soon as the motors came on. Any feel for how far the IMU needs to be from motor? On a 3 foot pole?

billy gravatar image billy  ( 2018-08-03 07:12:46 -0500 )edit

@billy Hard to give accurate numbers - 3 feet probably excessive though. My general advice for debugging magnetometers is to take the time properly understand sources of interference and why calibration not working. I would start by validating calibration process off the robot with no interference.

stevejp gravatar image stevejp  ( 2018-08-03 07:39:48 -0500 )edit

Then once you're confident in your calibration process, move the imu onto the robot and repeat. If your robot is too large to rotate around, you can rotate the imu in place as close to mounting point as possible. Also, no reason you can't calibrate with motors turned on.

stevejp gravatar image stevejp  ( 2018-08-03 07:42:34 -0500 )edit

Question Tools

1 follower


Asked: 2018-08-03 03:15:51 -0500

Seen: 394 times

Last updated: Aug 03 '18