Tekomoro Posted November 24, 2019 at 06:52 PM Share Posted November 24, 2019 at 06:52 PM (edited) Hello, I am using imu v2 brick and the heading is drifting each time i move the imu around then, bring it back to the original orientation here, graph of my data Data File : https://drive.google.com/open?id=10oZmZbXHNbt_hVxKdvHcBp-fRI97i6LU at start the heading value is "359.6" after moving the imu around it was "132.25" moving it around again it was "133.3" i have 2 problems here, 1: the change from 359 to 132 is strange 2: drift from 132 to 133 .. sometimes it goes high up to 20 degrees drift I also noticed that there is a drift in magZ mainly so, any suggestions ? Thank You, Edited November 24, 2019 at 07:10 PM by Tekomoro Quote Link to comment Share on other sites More sharing options...
photron Posted November 25, 2019 at 10:33 AM Share Posted November 25, 2019 at 10:33 AM Did you start you test with the IMU Brick in green calibration state, see: https://www.tinkerforge.com/en/doc/Hardware/Bricks/IMU_V2_Brick.html#calibration Do you have anything near to the IMU Brick that produces a (changing) magnetic field? For example, try to stay away from monitors even modern TFT ones. Try moving the IMU Brick near to a running monitor without rotating it and see that the orientation will rotate due to the magnetic fields of the monitor. Quote Link to comment Share on other sites More sharing options...
Tekomoro Posted November 25, 2019 at 11:07 AM Author Share Posted November 25, 2019 at 11:07 AM 34 minutes ago, photron said: Did you start you test with the IMU Brick in green calibration state, see: https://www.tinkerforge.com/en/doc/Hardware/Bricks/IMU_V2_Brick.html#calibration Do you have anything near to the IMU Brick that produces a (changing) magnetic field? For example, try to stay away from monitors even modern TFT ones. Try moving the IMU Brick near to a running monitor without rotating it and see that the orientation will rotate due to the magnetic fields of the monitor. Thank You for your response, I did calibrate it and saved the calibration, but do you mean that before I start I have to wait until the calibration state value is 0b111111 ? I don't have any varying magnetic field source around the device, but is a piece of metal considered a source of changing mag. field? I did the test again and that is the output [Heading] for each time I move the imu and bring it back to its initial position: [130, 135.12, 135.06, 131.81, 130.4, 136.56, 137.6, 135.19, 136.25, 131.81, 135.31] Still varies within 6 degrees in the same orientation. Quote Link to comment Share on other sites More sharing options...
rtrbt Posted November 25, 2019 at 01:15 PM Share Posted November 25, 2019 at 01:15 PM Hi, The data sheet of the IMU shows on page 15, that the heading error can be ±2.5 degree or more: "The heading accuracy depends on hardware and software. A fully calibrated sensor and ideal tilt compensation are assumed." (for ±2.5 degree). So your observed error of ±3 degree can be explained mostly by that. Also the sensor fuses the measurements of the magnetometer, gyroscope and accelerometer, which could increase the error a bit. The sudden jump from 359 to 132 degree you've observed, could be explained with the calibration, that the sensor does continously: The sensor always recalibrates its measurements. If you call save calibration (or use the Brick Viewer for this), the current calibration is stored in flash, so that the brick has not start completely fresh again on start-up. Maybe the sensor was adapting to your environment, while your first test was running, generating the observed jump. Quote Link to comment Share on other sites More sharing options...
stevehayles Posted November 26, 2019 at 06:06 PM Share Posted November 26, 2019 at 06:06 PM Google around and you will find countless issues with the Bosch BNO055 and it's auto calibration routines especially around 'heading' or yaw. I tried absolutely everything and the Tinkerforge guys were great with a small change in the firmware that allowed a different mode to be enabled but I was never successful in getting a reliable and consistent heading. I gave up and went for a separate IMU but still integrated with the rest of the boards from Tinkerforge Quote Link to comment Share on other sites More sharing options...
rtrbt Posted November 27, 2019 at 08:32 AM Share Posted November 27, 2019 at 08:32 AM Also, if you only need an accurate heading and don't care for the other measurements of the IMU, you can use a Compass Bricklet. This Bricklet can measure the heading with a precision of ± 1 degree, but is more sensitive to magnetic field disturbances. Quote Link to comment Share on other sites More sharing options...
Tekomoro Posted November 28, 2019 at 11:28 AM Author Share Posted November 28, 2019 at 11:28 AM On 11/25/2019 at 3:15 PM, rtrbt said: Hi, The data sheet of the IMU shows on page 15, that the heading error can be ±2.5 degree or more: "The heading accuracy depends on hardware and software. A fully calibrated sensor and ideal tilt compensation are assumed." (for ±2.5 degree). So your observed error of ±3 degree can be explained mostly by that. Also the sensor fuses the measurements of the magnetometer, gyroscope and accelerometer, which could increase the error a bit. The sudden jump from 359 to 132 degree you've observed, could be explained with the calibration, that the sensor does continously: The sensor always recalibrates its measurements. If you call save calibration (or use the Brick Viewer for this), the current calibration is stored in flash, so that the brick has not start completely fresh again on start-up. Maybe the sensor was adapting to your environment, while your first test was running, generating the observed jump. Thank you rtrbt, I tried many calibrations and all are the same, the error still high for me, sometimes it goes as high as 20 degrees as i mentioned in the original post, So, i don't think it is only calibration problem. On 11/26/2019 at 8:06 PM, stevehayles said: Google around and you will find countless issues with the Bosch BNO055 and it's auto calibration routines especially around 'heading' or yaw. I tried absolutely everything and the Tinkerforge guys were great with a small change in the firmware that allowed a different mode to be enabled but I was never successful in getting a reliable and consistent heading. I gave up and went for a separate IMU but still integrated with the rest of the boards from Tinkerforge Thank you steve, Can you tell me which imu you went for ? On 11/27/2019 at 10:32 AM, rtrbt said: Also, if you only need an accurate heading and don't care for the other measurements of the IMU, you can use a Compass Bricklet. This Bricklet can measure the heading with a precision of ± 1 degree, but is more sensitive to magnetic field disturbances. Again, thank you Going for something that is sensitive to magnetic isn't a good choice for me as i need it to work outdoors with another cars around and other field sources that i can't avoid So in words you are telling me that this is the best i can get from the tinker brick, and I can only recalibrate it every time i see something like that [which isn't doable for me it will be mounted in a vehicle without ability to move it around for calibration]? Quote Link to comment Share on other sites More sharing options...
rtrbt Posted November 29, 2019 at 10:19 AM Share Posted November 29, 2019 at 10:19 AM As a last resort with the IMU Brick, you could try the fusion mode without magnetometer: Call set sensor fusion mode with the constant 2 (as documented for example here). This requires at least firmware 2.0.6. Other possibilities depend on your exact use-case. If you want to get a useful heading in a moving vehicle, you could for example try to use a GPS 2.0 Bricklet. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.