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

IMU sensor is in which frame, ENU or NED frame??

asked 2021-11-29 06:08:15 -0500

Delbina gravatar image

updated 2021-11-29 14:33:27 -0500

Hi everyone,

I want to use robot-localization package. in the following link (https://github.com/cra-ros-pkg/robot_...), it is mentioned that :

"Like all nodes in robot_localization, this node assumes that your IMU data is reported in the ENU frame. Many IMUs report data in the NED frame, so you'll want to verify that your data is in the correct frame before using it."

How can I identify that my IMU sensor is in which frame, ENU or NED frame??

rostopic echo -n1 /gx5/imu/data

header:

seq: 71459

stamp:

secs: 1633621764

nsecs: 460809690

frame_id: "gx5_link"

orientation:

x: 0.000892150623258

y: 0.0127926189452

z: 0.817240595818

w: 0.576153993607

orientation_covariance: [0.01, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.01]

angular_velocity:

x: 0.000686915649567

y: 0.000812033424154

z: 0.00363250309601

angular_velocity_covariance: [0.01, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.01]

linear_acceleration:

x: 0.182726969216

y: -0.118418807248

z: -9.81554900765

linear_acceleration_covariance: [0.01, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.01]

thanks

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2021-11-29 08:33:03 -0500

Dragonslayer gravatar image

Besides the manual you should be able to simply visualise the imu frame in rviz, that movement should give you a clue. enu = east, north, up --> xyz, ned = north, east, down = xyz. See this graphic link text

edit flag offensive delete link more

Comments

thanks @Dragonslayer one more question, my robot has imu, wheel odometer,rtk-GPS, and 3d lidar. I do not have any absolute orientation sources (like magnetometer, GPS heading ,..), in this case, does IMU frame should be compatible with ENU frame or not?

thanks

Delbina gravatar image Delbina  ( 2021-11-29 08:44:43 -0500 )edit

Good question. GPS gives you data referenced to true north AFAIK. The ros navigation stack (intended for indoor) Iam not so sure, possibly taking initial robot pose as north reference (if the imu pose is Zero it likely takes this as north), to build the map and then localize based on that. In this case however gps would not match, but usually gps isnt to dependable for indoor work anyway. I also seen issues with gps and magnetometer as the magnetic field of the earth is distorted and can deviate several degrees depending on global position. What s your usecase?

Dragonslayer gravatar image Dragonslayer  ( 2021-11-29 09:43:27 -0500 )edit

@Dragonslayer Sorry, i did not get completely your point, but my case is about autonomous outdoor navigation based on GPS. for this case, i used robot-localization pkg. during the test, I have seen that when I sent the GPS waypoints as goals to the move-base, it shows somewhere else. so I am thinking of frames related to the map, imu, base_link, and odom. when i turn on the vehicle, map and base_link frame are not in the same direction. so as far as IMU also plays a key role in EKF-global, i am checking its frame.

Delbina gravatar image Delbina  ( 2021-11-29 11:51:18 -0500 )edit

How did you do mapping? Where is the map coming from, whats its orientation source? As I assume the imu would initialize with Zero value its angular-z (yaw) would equal east in enu. Starting up the robot in east or north alignment should give you a clue. Of course you could also simply move the robot and then calculate the orientation from the high precission gps datapoints, and then write a node that adds this correction into the imu data. But really I would suggest getting an imu with magnetometer/absolut orientation, it also helps with drift. There are internet services that can give you magnetic deviation based on location as well. Good read on the topic of IMU's link text

Dragonslayer gravatar image Dragonslayer  ( 2021-11-29 12:40:55 -0500 )edit

@Dragonslayer I am using RTABMAP, as map provider. and as far as i am using 3d lidar, I have activated icp-odometery as well which will provide me odometry information, that i have fused this information into EKF-global as well. sorry, how can i identify that my IMU sensor has magnetometer/absolut orientation or not? I added the imu output to my question.

Delbina gravatar image Delbina  ( 2021-11-29 13:43:00 -0500 )edit

Hi, Tool for quaternion visualization and conversion. If your imu data posted is a blank, new, calibrated, initialization I could see this to be absolute(orriented based of magnetometer, magnetic north), as it is off by several degrees. (see tool) If you now know where magnetic north is in your setup(imu/robot orientation in real world) you should be able to understand if your in enu or ned as well as whether the imu is oriented by magnetic north/east. I personally do not think those approximatly 20° off are just error. Note: If testing be aware that magnetometers can be influenced by metals etc. and give wrong readings. Can be from the environment or even the robot itself (motors etc.). Second be cautious when entering your data into the tool as the message is xyzw and the tool wxyz!

Dragonslayer gravatar image Dragonslayer  ( 2021-11-30 06:24:12 -0500 )edit

sorry @Dragonslayer, one more question, based on the output from IMU, it seems that it has magnetometer, because it can measure orientation for us. so can we say that I should put my robot far from any metal? I mean I should do navigation in an environment where there is no metal around?!

Delbina gravatar image Delbina  ( 2021-12-03 13:06:24 -0500 )edit

Iam not sure how this influence exactly works. You would have to read up on the topic for yourself. But it depends on the environment(inside a steel ship, on an electric train, possibly steel structure building, etc.). I mentioned it more as a caution note, that if you encounter your magnetomater going crazy you know what to check for aka try at a different location. This can also be relevant in regards to the robot itself. A magnetometer next to an electric drive motor very likely renders your sensor useless.

Dragonslayer gravatar image Dragonslayer  ( 2021-12-03 13:19:18 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-11-29 06:08:15 -0500

Seen: 1,703 times

Last updated: Nov 29 '21