Hrm, that's really a failing of the documentation.
The ENU (east/north/up) frame really just refers to which directions of motion the IMU considers to be positive or negative. An ENU-frame IMU will reported increasing yaw and positive yaw velocity when you rotate clockwise, for example. All IMUs are just assumed to report ENU-frame data in r_l.
This is different than the frame_id
of the sensor. That value refers to the coordinate frame in which the sensor is mounted relative to your robot's centroid. So if your IMU is mounted 0.5 meters in front of the centroid, you could give it a frame_id
of, say, imu_link, and then define a transform from base_link to imu_link that has an X offset of 0.5 meters.
In your case, the IMU is reporting its data in the base_link frame, so the authors are assuming that you are mounting the IMU at your vehicle's centroid. If this is not true, you can find the IMU driver's parameter for changing the frame_id
, and then defining a static transform from base_link to your new frame_id
.
So, in short: the ENU frame is just an assumption about how your IMU (really, its driver) is reporting the raw sensor data that the device produces. If your driver adheres to ROS standards, this shouldn't be a concern. The frame_id
of the measurement specifies a tf
frame that dictates how your sensor is mounted on your robot.