-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LSM9DS1 Successors & Icebergs #7
Comments
"the tilt-compensated heading measurements from deployed instruments were very limited in range" sounds like an error in the code, in the magnetometer calibration, or both. The apparent discontinuities in the Euler angle output might be a concern, but no conclusions can be drawn without further information on the X-axis sampling interval, whether this is observed in parallel experiments with other examples of the LSM303AGR, etc. |
Hi Jim, The dataset is from a single tracking beacon collecting hourly data. During this time, the LSM303AGR recorded heading values between 42-54°. However, satellite imagery confirmed the iceberg experienced greater rotation than this during this period. I have several more datasets of beacons in geographically distinct regions exhibiting the same behaviour, so this is some form of systematic error. The pitch and roll discontinuities are likely due to the shifting of the beacon on the ice surface during different times of the year (i.e., due to weather, surface ablation, polar bears, etc.) Cheers, |
It is 99% certain that either the magnetometer calibration or the code is incorrect. Check the handedness correction and axis alignment, as the sensor axis configurations differ between the LSM9DS1 and the LSM303AGR. The LSM303AGR accelerometer and magnetometer coordinate systems are both left handed, according to the data sheet labeling scheme. |
Hi @jremington,
Following along a similar vein to #6, I would be interested to get your thoughts on the current (2024) selection of IMUs available from Adafruit.
In my application, I am deploying tracking beacons on icebergs in the Canadian Arctic and using the IMUs to determine the iceberg's rotation (and orientation of the instrument): https://github.com/cryologger/ice-tracking-beacon
In the past, I've had very good success with the LSM303 (DLHC/D). When the LSM303 was discontinued, I switched to the LSM6DS33+LIS3MDL and using your LSM9DS1 calibration methods and tilt-compensated code, also achieved good results.
When the LSM6DS33 was discontinued, I switched to the LSM303AGR and again adapted your LSM9DS1 code. However, this time, the results were poor. Despite a seemingly successful calibration, the tilt-compensated heading measurements from deployed instruments were very limited in range (see include figure for example dataset) for icebergs that were confirmed to be making full 360° rotations. I suspect this was likely due to inadequate calibration and/or the magnetometer being less suitable for this application. I would happy for any additional ideas.
As the LSM303AGR doesn't appear to be the best choice of sensor, I'm in the market for a suitable drop-in replacement. Adafruit's offerings are not currently overly plentiful, but I'd be keen to get your thoughts of the most suitable sensor for my application. The LSM6DSOX + LIS3MDL looks like it could be a good option. I intend to continue using your tilt-compensated heading code.
Cheers,
Adam
The text was updated successfully, but these errors were encountered: