I am using the package [robot_localization](http://wiki.ros.org/robot_localization) with an IMU. In the docs, the [Preparing Your Data for Use with robot_localization](http://docs.ros.org/kinetic/api/robot_localization/html/preparing_sensor_data.html#imu), it says
> **Adherence to specifications:** As with odometry, be sure your data adheres to REP-103 and the sensor_msgs/Imu specification. Double-check the signs of your data, and make sure the frame_id values are correct.
REP-103 says the axes should be oriented in the following fashion:
- x forward
- y left
- z up
Which means when an IMU is placed in its neutral position (flat on the surface), the axes should look like this:
So for acceleration due to gravity, it should measure - (minus) 9.8 meters per second squared for the Z axis. However the docs say:
> **Acceleration**: Be careful with acceleration data. The state estimation nodes in robot_localization assume that an IMU that is placed in its neutral right-side-up position on a flat surface will:
>- Measure +9.81 meters per second squared for the Z axis.
>- If the sensor is rolled +90 degrees (left side up), the acceleration should be +9.81 meters per second squared for the Y axis.
>- If the sensor is pitched +90 degrees (front side down), it should read -9.81 meters per second squared for the X axis.
This would mean the axes are oriented in the following manner, implying left handed coordinate system:
I am definitely missing something here. Can anyone help?
Trending Articles
More Pages to Explore .....