Inertial Navigation System

Design and analyze inertial navigation systems with MATLAB and Simulink

An inertial navigation system (INS) is used to calculate the pose (position and orientation) and velocity of a platform relative to an initial or last known state. The inertial navigation system includes two core components:

  • Inertial Measurement Unit (IMU): Typically includes inertial sensors such as accelerometers and gyroscopes
  • Computational Unit: Provides filtering algorithms to process and fuse the raw sensor data

A GPS-aided inertial navigation system (or GPS/INS) also includes a GPS receiver. With MATLAB® and Simulink®, you can generate simulated sensor data and fuse raw data from the various sensors involved.

From aircraft and submarines to mobile robots and self-driving cars, inertial navigation systems provide tracking and localization capabilities for  safety-critical vehicles. Inertial navigation systems can also be found in game controllers and smartphones to track the motion of the device in 3D space.

State estimation workflow in MATLAB using a GPS-aided inertial navigation system.

While a GPS can provide absolute measurements using a constant external input, an inertial navigation system provides relative measurements given an initial reference. These relative measurements can accumulate drift errors over time. Before GPS existed, rockets were equipped with inertial navigation systems where the initial position was provided by a human operator.

Today, most outdoor vehicles and platforms are equipped with GPS-aided inertial navigation systems that combine the best of both sensor measurements. A constant GPS input reduces the drift errors, and when the GPS signal drops out, the inertial navigation system can work alone using dead reckoning based on the last known state. Imagine a car entering a tunnel. The GPS receiver will lose its signal, but the inertial navigation system can provide the relative motion based on the GPS signal received before the car entered the tunnel.

Comparison of position estimation using GPS and GPS with IMU sensor models in MATLAB.

With MATLAB and Simulink, you can model an individual inertial sensor that matches specific data sheet parameters. You can develop, tune, and deploy inertial fusion filters, and you can tune the filters to account for environmental and noise properties to mimic real-world effects.

Using MATLAB and Simulink, you can:

  • Model IMU and GNSS sensors and generate simulated sensor data
  • Calibrate IMU measurements with Allan variance
  • Generate ground truth motion for sensor models
  • Fuse raw data from accelerometer, gyroscope, and magnetometer sensors for orientation estimation
  • Stream and fuse data from IMU and GPS sensors for pose estimation
  • Localize a vehicle using automatic filter tuning
  • Fuse raw data from IMU, GPS, altimeter, and wheel encoder sensors for inertial navigation in GPS-denied areas

You can also deploy the filters by generating C/C++ code using MATLAB Coder™

See also: MATLAB and Simulink for Robotics, Navigation Toolbox, Sensor Fusion and Tracking Toolbox, Aerospace Blockset, Automated Driving Toolbox, Lidar Toolbox, Radar Toolbox, Satellite Communications Toolbox, Robotics System Toolbox, ROS Toolbox, UAV Toolbox, Robot Programming, Drone Programming, Simultaneous Localization and Mapping (SLAM), Arduino Programming with MATLAB and Simulink