Measuring Velocity of a Barbell Using IMU


I am a bit of a data nerd and I am interested in logging barbell velocity from my workouts using an IMU.

I've done some research, read this article (, and from what I can tell, the longer the IMU runs the more error accumulates.

I am wondering if the short time between each rep would lend to a feasible solution.

My question is, if I only need to record velocity for each individual rep, 2-3 seconds, if drift can be negated by resetting the sensor values to 0 when the IMU returns to its original starting position.

Thanks for your help.

In this case it should be easy to break down the movements into "up" and "down" phases. Then integration of the acceleration, into speed, can be restarted whenever the begin of a new phase is detected, by clearing the speed variable.

Details depend on the typical accelerations, measured during these phases. I'd suggest that you start with a log of these values, so that you can find out how to distinguish the phases, including the pauses in high and low state. I'd guess that the acceleration will exceed some threshold value at the begin of each phase.

How accurate the computed speed is, will turn out when you have written the code. I'd expect some complications from the IMU orientation, so that the acceleration will affect more than one axis. The IMU orientation can be determined from the accelerations measured in rest state, where gravity is distributed into (hopefully) constant X, Y and Z accelerations. Most probably the axis aligned with the barball bar can be ignored, indicating only inadvertent sideward jitter.