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

Revision history [back]

ENU means that the reference frame with respect to which the IMU's orientation is reported is oriented X=East, Y=North, Z=Up. So when the linear acceleration value reads (0, 0, +9.8), i.e. "z is up", and the magnetometer reads (0, +, *) (i.e., "north is east", the orientation reported by the IMU should be neutral (roll/pitch/yaw all 0, quaternion = (0, 0, 0, 1)).

If you don't use a magnetometer, just ignore that part.

If your IMU doesn't provide an orientation, you'll have to use a package like imu_filter_madgwick with the parameter use_enu = true.

ENU means that the reference frame with respect to which the IMU's orientation is reported is oriented X=East, Y=North, Z=Up. So when the linear acceleration value reads (0, 0, +9.8), i.e. "z is up", and the magnetometer reads (0, +, *) (i.e., "north is east", the orientation reported by the IMU should be neutral (roll/pitch/yaw all 0, quaternion = (0, 0, 0, 1)).

If you don't use a magnetometer, just ignore that part.

If your IMU doesn't provide an orientation, you'll have to use a package like imu_filter_madgwick with the parameter use_enu = true.

Edit to clarify magnetometer readings: Let's say the IMU uses an ENU reference frame and is in the neutral orientation, i.e. the IMU's x axis points east, y=north, z=up. Then the magnetometer should read (0.0, 0.00005, -0.00005), or short (0, +, -). In other words, the earth magnetic field points north (+ towards the y axis) and down (- on the z axis). In the southern hemisphere, it's (0, +, +), i.e. the magnetic field points north and up. That's why I wrote (0, +, *) above: the magnetometer should read 0 on the x axis and positive on the y axis, don't care about the z axis.

That said, just ignore the magnetometer at first. The robot_localization package works fine without it, and magnetometers are mostly useless on indoor robots anyway.