Robotics StackExchange | Archived questions

how to interface ENU IMU to Robot localization

I have a NED IMU that is is flipped upside down on my robot.

The imu_link frame is represented as X forward, y left and z up to indicate the flip of the IMU. So its represented like: image description

Now, to use this with robot localization I swap x with y and invert Z, that converts NED to ENU. However, the IMU topic still gets published on the imu_link.

Is that the proper way? Or does robot localization expect a frame_id that is in the ENU convention?

Asked by mugetsu on 2020-10-02 18:16:51 UTC

Comments

All data that ever gets published from the IMU will ALWAYS be in the "imu_link" regardless of the values of xyz/rpy or coordinate convention right?

Asked by JackB on 2020-10-02 19:51:58 UTC

yes that's right. should I instead set imu_link to ENU but flipped upside down?

Asked by mugetsu on 2020-10-02 20:12:58 UTC

You need to do whatever you need to do (read: apply the right rotation) to get your imu reporting data in the ENU frame, and then consider its translation (read: y,y,z) from base_link. You can capture both of those things in a single static transform from base_link to imu_link

Asked by JackB on 2020-10-02 21:23:28 UTC

Answers

Similar to what @JackB said, if I were you, I'd modify the IMU driver to put out the data in ENU, and then make the base_link->imu_link transform represent the sensor's pose (given its new ENU frame) w.r.t. the base_link frame.

Asked by Tom Moore on 2020-10-12 03:27:35 UTC

Comments