Introducing a time-efficient workflow for processing IMU data to identify sport-specific movement patterns

Keywords: inertial measurement unit, acceleration data, movement pattern, workflow, Python



The use of inertial measurement unit (IMU) has become popular in sports assessment. New IMU devices may make the monitoring process easier; however, their validity and reliability should be established prior to widespread use. IMU devices use a combination of gyroscopic and accelerometer data which allow the derivation of velocity and position vectors by integrating the data over time. Because the process of time integration suffers from time varying biases and noise, the resulting velocity and position vectors are prone to drift after a few seconds. This must be accounted for when processing data from IMUs.


Motivated by the variety of approaches to IMU-based human motion tracking, the aim of this paper is to deliver a report of the author’s experience in processing and handling acceleration data from a wearable IMU sensor recorded during resistance training and present a workflow to identify specific movement patterns across different sports.


Given acceleration data from a wearable sensor during sports practice, the workflow to derive velocity and position measures of specific movement patterns is divided into the following seven steps: 1) Rough cropping of region of interest (ROI). 2) Application of low pass filter to remove jittering upon visual inspection. Depending on ROI length, a detrend filter should be applied on the integrated position and maybe on the velocity data to correct for drift. 3) Visual analysis of characteristics of at least one movement pattern (more if the pattern shows a high inter-repetition variability) to identify key events (e.g. maximal velocity). 4) Automatically find and count key events along ROI. 5) Reassess characteristics of movement pattern to determine other relevant events. 6) Next, segmentation of ROI based on selected events and integration of individual sections to avoid drift. The aim is to integrate the smallest pieces possible. 7) Finally, check to make sure that segmentation worked correctly (e.g. correct number of repetitions, resulting values in a possible range).


Acceleration data was captured with an Apple Watch 7 (Apple Inc. California) using the SensorLog app streaming to a customized node.js server application. For the processing and visualization of the data, the programming language Python with usage of the Pandas and SciPy libraries were utilized. The velocity and position data were determined by finding the integral of the acceleration and velocity respectively. Using the previous mentioned workflow 306 repetitions of the back squat executed by 11 recreational athletes (w: 5/m: 6, age: 22-37, weight:58-90kg) were successful segmented.


The technology underlying commercial IMU sensors are often not communicated transparently. Thus, it is important to properly study the task of calibration the IMU and calculating the vertical component before using it for sport science measurements. Furthermore, it is rarely the case that the movement pattern remains the same over each training session. Therefore, characteristics of the movement pattern must be studied thoroughly to create a robust identification criterium.

By applying the presented workflow researcher have a structured, easy to apply and time efficient approach to analyze recorded acceleration data on different sport-specific movement patterns.

How to Cite
Achermann, B., Oberhofer, K., & Lorenzetti, S. (2023). Introducing a time-efficient workflow for processing IMU data to identify sport-specific movement patterns. Current Issues in Sport Science (CISS), 8(2), 060.