Success Story - en

Inertial navigation in 3D

Motivation for the customer to launch the project:
every smartphone has inertial sensors that measure the acceleration and rotation of the phone. Using these sensors, it is theoretically possible to obtain a complete picture of the movement of the smartphone. The path of a smartphone can tell a lot: where it lies (in a bag, pocket, hand, etc.), how its wearer moves (walks, stands, runs, climbs stairs) and, most interestingly, what trajectory the phone describes in 3D. Using an algorithm for recognizing positions, activities and trajectories, you can help a person navigate in a building and understand his behavior with a smartphone. Our team's task is to build such an algorithm.

Description of the initial situation:
  • there is a set of labeled data from inertial sensors. Marking - positions, activities and trajectory of a person in time;
  • The sensor data is very noisy, so we cannot use physical equations to estimate the trajectory;
  • while a person is moving on an elevator or escalator, inertial sensors show the same thing as when a person is standing, but movement occurs.
The data is very noisy, so the use of simple approaches such as integration of acceleration in this formulation of the problem does not work very well. In addition, since we were working in 3D, one of the additional difficulties was restoring the orientation of the device's coordinate system relative to the world coordinate system in order to make correct predictions.

Project goals:
build an algorithm for classifying activity and position, as well as assessing a person’s trajectory in 3D for any activity and any position of the phone. The algorithm includes both the DL part and classical approaches to inertial navigation.

MIL Team solution:
solving the problem of segmenting time series from sensors using a neural network to model parts of trajectories. Classification of time series segments by a neural network for activity and position recognition. Detection of activity changes to determine activities in the elevator and on the escalator. Several classic and original data preprocessing algorithms.  We solved the orientation problem by introducing a new coordinate system, co-directed with the world z-axis, and then aligning the predictions by rotating in the 2D plane. The problem with noise was solved this way: we used neural network approaches to clean the signals from unnecessary and irrelevant attributes. In particular, we used segmentation models to make predictions based on dynamics on segments, as well as generative approaches that build a compressed and more informative representation of the data.

To build the model we used:
  • Open RuDaCop dataset collected by the customer;
  • Open RoNIN dataset;
  • A dataset will be used, the assembly of which will be organized by the MIL team.

Simulation results: under NDA
Customer: under NDA
Technology stack: Python (PyTorch, quaternion), wandb for experiment monitoring.
Research Sensors
Made on