sensors setup for robot_localization package

Hello, I want to fuse mobile robot's wheel encoder data(X,Y,yaw) and Sparton IMU(Yaw) data using robot_localization package. I'm facing some difficulties.

1. How to mount IMU on mobile robot base? Should i keep the IMU on same axis to body frame(X-fwd Y-Left and Z-Up) or not ?
2. I have seen that IMU by default provide the data on NED but as per the REP 103 i have converted my data into ENU. Is there anyway to check that my IMU data is in NED or ENU?
3. And after converting my IMU data into ENU the pitch and roll are inverted. i'm using this package. https://github.com/udmamrl/SpartonCom....
4. I have seen that EKF node consider only the change in values and estimate the new position. So if my IMU starts at 90 degrees yaw is that considerable?.

I don't really have much experience with sensor fusion, so I'm sure some of these questions will need more explanation, which I'd be happy to provide.

edit retag close merge delete

1. Is tf configuration. In the sensor_msgs/Imu message there is a frame_id. This is the position of your IMU as found in the tf tree. You need to match the rotation and translation of the IMU frame in your tf to the physical mounting. Please not that you will probably have it easier debugging your application when mounting your IMU according to REP-103 - X-Axis forward, so yes.

2. I use display_3D_visualization.py from the razor_imu package to visualize the data.

( 2019-08-19 01:08:29 -0500 )edit

hi, thanks for the reply. i have checked with display_3D_visualization.py. I have seen the robot_localization package the imu values should follow certain format.

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 Yaxis. If the sensor is pitched +90  degrees (front side down), it should read -9.81 meters per second squared for the X axis.


I have checked my imu data while i mount it on (X-fwd Y-left Z-up) in that time i got these values. orientation x: 0.00219322838739 y: 0.00419273531589 z: 0.6670852963261 w: 0.744966320141 angular_velocity: x : 0.0 y: 0 ...(more)

( 2019-08-19 02:20:10 -0500 )edit
( 2019-08-19 05:49:53 -0500 )edit