User Tools

Site Tools


projects:robots:inertial_navigation_system

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.

projects/robots/inertial_navigation_system.1714068998.txt.gz · Last modified: 2024/04/25 14:16 by jhagstrand

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki