This is an old revision of the document!
Inertial Navigation System
Magnetic-Declination.com
Khon Kaen Khon Kaen Latitude: 16° 26' 48.2“ N Longitude: 102° 49' 58.8” E BAN NONG WAENG Magnetic Declination: -1° 11' Declination is NEGATIVE (WEST) Inclination: 22° 20' Magnetic field strength: 43808.0 nT
18.7966251, 98.9648206 Declination: -1.11° Total Field: 44929.7 nT
Magnetometer calibration https://youtu.be/MinV5V1ioWg?si=Bh-e9aDgxxzKsm14
Scott Lobdell, IMU https://youtu.be/T9jXoG0QYIA?si=HjldywVEFu-QSfJp
INS IMU AHRS Kalman Filter, a type of sensor fusion Low Pass Filter GPS - 1 meter accuracy at best, 3 meter average in position. No heading info. Sensor Fusion DMP
RTK - two gps: base station plus rover, triangulate, to get position with 1 cm accuracy Compassing - two gps to get heading
Dead reckoning Odometer - wheel odometer Cameras Lidar
IMU - 3×3 sensors AHRS - use kalman filter to fuse sensor data and output roll, pitch, and yaw INS - add gps input and dead reckoning to the Kalman Filter, for position and heading
Commercial company, explaining sensor types intermd of their product offering https://youtu.be/4CZQQ0VLCG8?si=CiCEKmKsOqWOa6bP
Hideakitai library, esp32 + mpu9250 for heading output https://github.com/hideakitai/MPU9250
9250 obsolete, replace with ICM-20948 https://youtu.be/Oen3HqUbctM?si=3UnWGo-XOvs3ZwCZ
TDK Invensense makes both MPU9250 and ICM20948 9250 EOL in 2018 registers are different, therefore different driver required https://invensense.tdk.com/wp-content/uploads/2018/10/AN-000146-v2.0-TDK_Migration_MPU_9250toICM-20948.pdf
breakout boards from adafruit and sparkfun
adafruit ICM20948 use Adafruit ICM20 library for arduino https://github.com/adafruit/Adafruit_ICM20X provides GPIO pins but also STEMMA QT connector no video demo see Paul McWhorter youtubes
2015: Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout - BNO055 https://www.adafruit.com/product/2472 video demo, no heading mentioned, euler and quat, quat more accurate, too slow for vehicle https://www.youtube.com/watch?v=EsgKAawwT9A&t=731s Bosch Sensortec BNO055 “not recommended for new designs” “You could use BHI260AP in new design”, but has no magnetometer. components:
Atmel SAM20D processor
BMA280 accelerometer
BMI055 gyroscope
BMM150 magnetometer
built-in fusion library, closed source:
Euler angles
quaternion
modi: IMU (motion), compass, M4G, NDOF
video by very creepy guy using adafruit bno055, but no compass heading, source code on screen but not downloadable https://www.youtube.com/watch?v=uJVzkl73A74
quaternion
4 numbers, 0 to 1, w,x,y,z
euler angles
3 numbers, 0 to 360, x,y,z, pitch, roll, yaw susceptible to gimbal lock at 90 degrees over 45 degrees, not so smooth
sparkfun 9dof imu https://learn.sparkfun.com/tutorials/sparkfun-9dof-imu-icm-20948-breakout-hookup-guide library for arduino https://github.com/sparkfun/SparkFun_ICM-20948_ArduinoLibrary/archive/main.zip
Kris Winer, see github examples for MPU9250
In general, start search in github, as opposed to youtube or google.