Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (2024)

I recently worked with Eric Hillsberg, Product Marketing Engineer, to assess MathWorks’ tools for inertial navigation, supported from Navigation Toolbox and Sensor Fusion and Tracking Toolbox. In this blog post, Eric Hillsberg will share MATLAB’s inertial navigation workflow which simplifies sensor data import, sensor simulation, sensor data analysis, and sensor fusion.

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (1)

Fig.1 Localization is an essential part of the autonomous systems and smart devices development workflow, which includes estimating the position and orientation of a platform

Understanding Inertial Navigation Systems (INS)

Before we get into the content, I’d like to quickly touch on what I hope you can take away from this blog post. I will cover the basics of the Inertial Navigation Systems (INS) workflow in MATLAB, the benefits MATLAB provides, and which add-on product (Toolbox) is the best fit for the problem you are trying to solve. Now let’s talk about INS!

Sensors are used in various advanced systems such as autonomous vehicles, aircrafts, smartphones, wearable devices, VR/AR headsets, etc. For these applications, the ability to accurately perceive and locate the position and orientation of vehicles and objects in space is crucial. This process, known as localization, is foundational to planning and executing actions of these systems. Localization is enabled with sensor systems such as the Inertial Measurement Unit (IMU), often augmented by Global Positioning System (GPS), and filtering algorithms that together enable probabilistic determination of the system’s position and orientation.

Learn more about INS here - Inertial Navigation System

The Inertial Navigation Workflow in MATLAB

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (2)

Fig. 2 Inertial Navigation Workflow with MATLAB – From ways to bring data into MATLAB to estimate a pose.

The workflow for implementing INS in MATLAB is structured into three main steps:

  1. Sensor Data Acquisition or Simulation: This initial step involves either bringing in real sensor data from hardware sensors or simulating sensor data using “ground truth” data. Simulation of sensor behavior and system testing can be significantly enhanced using the wide range of sensor models with tunable parameters available in MATLAB and Navigation Toolbox.
  1. Analysis and Calibration: Once sensor data is acquired, the next step is to analyze and calibrate the sensors. This process is crucial for ensuring the accuracy of the data collected from hardware sensors deployed in real-world systems.
  1. Localization via Sensor Fusion: The final step involves the use of sensor fusion algorithms to combine data from various sensors to accurately localize the system. This process is vital for the precise determination of a platform’s pose (position and orientation). This also involves tuning the fusion filters to obtain the pose when the filters are deployed.
For a deeper dive into the Inertial Navigation Workflow, consider watching this informative webinar.

Simulating Sensors

Simulation plays a critical role in the development and testing of Inertial Navigation Systems. MATLAB offers a comprehensive suite of tools for:

  • Simulating a wide range of sensors including IMUs and GNSS, but also altimeters, wheel encoders, and more
  • Allowing users to model real-world sensors based on spec sheets using JSON or parameterization
  • Simulate sensor characteristics including misalignment, outages, and temperature errors to test the limits of your Inertial Navigation Systems

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (3)

Fig. 3 Output plots from the example on Simulating IMU data in Navigation Toolbox showing the ideal and white noise gyroscope data

For more details, visit the doc page - Introduction to Simulating IMU Measurements

Analysis and Calibration of Sensor Data

After simulating or acquiring sensor data, MATLAB facilitates in-depth analysis of sensor performance, allowing for the calibration of various sensor errors and biases. This step:

  • Improves the quality of sensor data by limiting or removing issues like hard and soft iron distortions
  • Which in turn, enhances the overall performance of the localization process

By addressing sensor errors and environmental effects, MATLAB helps create a robust foundation for sensor fusion leading to more accurate system localization.

For more details, check out the examples in the links below

  • Aligning Logged Sensor Data
  • Calibrating Magnetometer

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (4)

Fig. 4 Output plots from the examples in Navigation Toolbox on Aligning Logged Sensor Data and Calibrating Magnetometer

Sensor Fusion in MATLAB

Sensor Fusion is a powerful technique that combines data from multiple sensors to achieve more accurate localization. MATLAB simplifies this process with:

  • Autotuning and parameterization of filters to allow beginner users to get started quickly and experts to have as much control as they require
  • Supporting a wide range of sensor types to allow for fusion of the most commonly used sensors
For custom tuning of fusion filters, check out this guide.

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (5)

Fig 5. Comparison of RMS error for basic velocity sensor estimates, with and without bias tracking. The graph on the left shows fluctuations in the ‘Basic Sensor Estimate,’ while the one on the right demonstrates improved accuracy with ‘Velocity Sensor Estimate With Bias Tracking’.

With MATLAB, you can:

  • Use traditional filters like Kalman Filter (KF) and Extended KF (First applied at the NASA Ames Research Center for the Apollo Navigation Computer)
  • Apply application-specific filters such as Attitude and Heading Reference Systems (AHRS)
  • Configure outputs in both Euler and Quaternion formats

The decision of choosing the appropriate filters is often based on the application and sensors involved.

For help with choosing the appropriate filter, check out this table.

Why MATLAB for Inertial Navigation?

MATLAB stands out by offering a wide range of:

  • Multiple sensor models to match your platform, including IMU, GPS, altimeters, wheel encoders, range sensors, and more
  • Direct parameterization for users looking for more control and autotuning to reduce the development time
  • Prebuilt algorithms and filters such as EKF, UKF, AHRS, and more, so you don’t have to worry about implementation and can focus on your application

By balancing between out-of-the-box algorithms and ease-of-use, MATLAB provides an adaptable and user-friendly environment for sensor fusion and INS simulation.

I hope you’re wondering now, “where can I find these capabilities within the MathWorks tools?” They are majorly available out of the following two toolboxes, MATLAB add-on products, and along with their additional benefits – they can be employed for different applications.

Navigation Toolbox

Along with the Inertial Navigation capabilities discussed above, Navigation Toolbox provides algorithms and analysis tools for motion planning, as well as simultaneous localization and mapping (SLAM). The toolbox includes:

  • Customizable search and sampling-based path-planners, as well as metrics for validating and comparing paths
  • Ability to create 2D and 3D map representations, generate maps using SLAM algorithms, and interactively visualize and debug map generation with the SLAM map builder app.
  • Inertial Navigation System capabilities discussed above, as well as additional optimization-based algorithms for localization

Navigation Toolbox is intended for engineers working on navigation applications who would like to leverage the path planning and SLAM capabilities followed by their sensor fusion tasks.

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (6)

Fig. 6 Autonomous Systems Development Workflow, highlighting the applications supported by Navigation Toolbox – Localization and Mapping

Sensor Fusion and Tracking Toolbox

While Navigation Toolbox provides both filter-based and optimization-based localization approaches to support localization and mapping applications, the Sensor Fusion and Tracking Toolbox focuses on supporting object tracking workflows by providing:

  • Multi-object trackers and estimation filters for evaluating architectures that combine grid-level, detection-level, and object- or track-level fusion
  • Metrics, including OSPA and GOSPA, for validating performance against ground truth scenes
  • Additional sensor models such as infrared, radar, and lidar

Sensor Fusion and Tracking Toolbox is intended for engineers focused on object detection and tracking.

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (7)

Fig. 7 Autonomous Systems Development Workflow, highlighting the applications supported by Sensor Fusion and Tracking Toolbox – Localization and Tracking

Both toolboxes include a range of examples and in-depth documentation to help you get started. While each toolbox has its own intended purpose, it is common for our customers to employ both toolboxes for their complete autonomous system development.

Check out what our customers are saying

Many organizations have successfully leveraged MATLAB’s capabilities in their projects. For insights into real-world applications, explore these user stories:

  • Harvesting Driving Scenarios from Recorded Sensor Data at Aptiv
  • Tata Motors Accelerates Development of Autonomous Vehicle Control Algorithms with Model-Based Design

Conclusion

MATLAB’s comprehensive suite for simulating, analyzing, and fusing sensor data streamlines the development of INS for various applications. By leveraging these tools, developers can enhance the accuracy and reliability of autonomous systems, aerospace platforms, AR/VR headsets, wearables, and other smart technologies.

Know more about Eric:

Eric is a Product Marketing Engineer at MathWorks. While completing his undergraduate degree in Aerospace Engineering and a minor in Computer Science from the University of Michigan, he interned with NASA Ames Research Center. During the internship he worked on the Distributed Spacecraft Autonomy Project to investigate how Inter-Satellite Links and Distributed Extended Kalman Filters could be used to create a Lunar Position, Navigation, and Timing system.

Developing Inertial Navigation Systems with MATLAB – From Sensor Simulation to Sensor Fusion (2024)

FAQs

How to build an inertial navigation system? ›

Using MATLAB and Simulink, you can:
  1. Model IMU and GNSS sensors and generate simulated sensor data.
  2. Calibrate IMU measurements with Allan variance.
  3. Generate ground truth motion for sensor models.
  4. Fuse raw data from accelerometer, gyroscope, and magnetometer sensors for orientation estimation.

What is inertial sensor fusion? ›

Inertial sensor fusion uses filters to improve and combine readings from IMU, GPS, and other sensors. To model specific sensors, see Sensor Models.

What is the design of inertial navigation system? ›

The inertial navigation system (INS) is a self-contained navigation technique in which measurements provided by accelerometers and gyroscopes are used to track the position and orientation of an object relative to a known starting point, orientation and velocity.

What are the different types of inertial navigation systems? ›

There are two fundamentally different types of inertial navigation systems: gimbaling systems and strapdown systems. A typical gimbaling inertial navigation system, such as might be used on board a missile, uses three gyroscopes and three accelerometers.

What is the difference between IMU and inertial navigation system? ›

What's the difference between an IMU and an INS? The IMU (inertial measuring unit) is essentially the sensor subsystem of an INS (inertial navigation system). The INS takes the raw outputs from the IMU, processes them, and calculates changes in an object's relative motion.

What is the difference between IMU and IRU? ›

An Inertial Measurement Unit (IMU), also known as an Inertial Reference Unit (IRU) or Motion Reference Unit (MRU), packs a 3-axis accelerometer and a 3-axis gyroscope, making it a 6-axis IMU. Some also include a 3-axis magnetometer, turning them into 9-axis IMUs.

What software is used in sensor fusion? ›

Bosch Sensortec's sensor fusion software BSX is a complete 9-axis fusion solution which combines the measurements from 3-axis gyroscope, 3-axis geomagnetic sensor and a 3-axis accelerometer to provide a robust absolute orientation vector.

What is an example of sensor fusion? ›

For example, pixels from cameras and point clouds from LiDAR sensors are fused to understand the size and shape of the object that is detected. This method has many future applications, since it sends all the data to the computing unit. Thus, different aspects of the data can be used by different algorithms.

What is the principle of sensor fusion? ›

Sensor fusion is the combining of sensory data or data derived from sensory data in order to produce enhanced data in form of an internal represen- tation of the process environment.

How do inertial navigation systems work? ›

INS devices operate on a dead reckoning system, which means that the initial position, velocity and orientation of the vehicle are provided by an external source, which can be a GPS satellite receiver or an operator. Equipped with this data, the INS can begin calculating position, velocity and other movement elements.

What is an example of an inertial system? ›

Inertial frame of reference is one that is not undergoing acceleration. For example, a car that is traveling at constant speed provides an inertial frame of reference for the passengers inside. Another example is a motionless ramp down which objects can roll.

How accurate is an inertial navigation system? ›

They are very accurate and can accurately track an object's position and orientation. However, inertial navigation systems are also sensitive to measurement errors from accelerometers and gyroscopes. These errors can accumulate over time, leading to errors in the calculated position and orientation of the object.

What are the three 3 main types of navigation? ›

Three main types of navigation are celestial, GPS, and map and compass. In order to better understand why we teach map and compass at High Trails, it is helpful to learn the basics of all three techniques.

What are the 4 types of navigation? ›

Navigation is a field of study that focuses on the process of monitoring and controlling the movement of a craft or vehicle from one place to another. The field of navigation includes four general categories: land navigation, marine navigation, aeronautic navigation, and space navigation.

How expensive is an inertial navigation system? ›

The price for an inertial navigation system (INS) can range from $3,000 to $50,000, depending on the features and capabilities of the system.

Can inertial navigation system be jammed? ›

Inertial navigation systems are autonomous after initialization, do not rely on satellite connectivity and can convey more granular data than a GPS device used alone. Moreover, they are resistant to radar jamming and deception, as they are self-contained.

References

Top Articles
Latest Posts
Article information

Author: Annamae Dooley

Last Updated:

Views: 5755

Rating: 4.4 / 5 (65 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Annamae Dooley

Birthday: 2001-07-26

Address: 9687 Tambra Meadow, Bradleyhaven, TN 53219

Phone: +9316045904039

Job: Future Coordinator

Hobby: Archery, Couponing, Poi, Kite flying, Knitting, Rappelling, Baseball

Introduction: My name is Annamae Dooley, I am a witty, quaint, lovely, clever, rich, sparkling, powerful person who loves writing and wants to share my knowledge and understanding with you.