Estimating Joint Positions

So…you know the angular properties of the captured body segments. This is for sure a great deal already. But is that also enough to understand (or analyze) a captured motion performance exactly the way you want to? Eventually, you might be interested in computing further kinematic data, and especially body joint positions. They are able to considerably support you in your later analysis tasks, for example by visualization of the collected inertial sensor data.

In general, there are two different methodologies for the determination of position data from the sensor measurements: (a) double integration of the raw acceleration data and (b) sequential accumulation of position vectors built from the known angular information within a kinematic chain.
As for the integration of angular velocities, inaccuracies and noise accumulate quickly during integration of the measured acceleration data (and even more in a double-integration process). As a result, a computed posture can drastically differ from the actual posture. One possibility to reduce such integration errors is to add an additional control value input that updates the drifting integrated data regularly. This strategy is very similar to the principle system design of a fusion filter. In gait analysis for example ground contact phases (with zero vertical velocity) offer themselves for data correction. In many sports it is however difficult to define similar events or constraints that could serve as control values. Strategy (a) is hence little practicable and not discussed in further detail here. Instead, let us have a closer look on how to determine position with strategy (b).

Joint Positions Using Forward Kinematics

Joints connect start and end positions of human body segments under various degrees of freedom. Consecutive body segments then build what is called a kinematic chain. The kinematic chain of an arm for example usually consists of shoulder, elbow, wrist and knuckle joints that are connected by shoulder, upper arm, fore arm and finger bones. These (flexible) kinematic connections are both important for biomechanics and motor sciences as well as computation and automation. In robotics, a common problem is to estimate the parameters of connecting body segments (orientation and length) from known joint positions towards the center of mass. This computation is referred to as inverse kinematics (IK). Joint positions are vice-versa determined from known segment parameters (orientation and length) in outwards direction from the center of mass. This process is referred to as forward kinematics (FK).

forward kinematics

FK is simple and easily included in the current processing pipeline. Preceding processing steps provide orientations of all sensor-mounted segments in quaternion representation. The length of these segments is then the only unknown parameter required for computation of related positional information. A respective additional system input can be obtained with little effort, for instance by a singular (manual) measurement of every athlete’s antropometrics before the start of the main data acquisition.

Since all segment orientations are quaternions, a conventional quaternion-vector rotation q\upsilon q^*  is sufficient to determine every segment’s end position, whereas q is the segment orientation and \upsilon a three-dimensional representation of the measured segment length with two vector elements set to 0. In the next step, the accumulation of consecutive segment end positions then yields the relative position of every joint in the kinematic chain. Starting at the origin (e.g. joint 0), all joint positions (e.g. joint 1, 2 and 3) are determined as a combination of the current end position vector and the position vector of the previous joint. The position vector of the origin is usually set to j_0 = [0\ 0 \ 0].

computing joint positions

One of the main restrictions of the FK algorithm is that the joint position are only expressed in relation to a root joint like the center of mass. This means that translations of the whole athlete-sensor system cannot be depicted, and that specific (and eventually relevant) global position data are not available from the sensor data. Especially in sports with a large motion volume this information could bring additional insights into a motion performance. In case you are interested in those sports, I therefore consider to include additional devices like GPS or laser tracking systems for determination of the respective information.

Advanced Framework and Resulting Kinematics

The FK computations require segment lengths as additional pre-measure input data to the processing framework. In return, they contribute relative body joint positions to the kinematic system output. Together with the segment orientations, they are essentially all you need for making the best use out of your motion capture data.

sensor advanced processing