Coordinate Systems
This page defines coordinate systems for the reference frame and human body segments. If applicable, they are used by all data processing functions and visualization tools.
Reference/Earth Frame (ENU)
For orientations that are expressed using a fixed reference frame, e.g. the output of orientation estimation by 9D sensor fusion of gyroscope with accelerometer and magnetometer readings, we use an ENU (east-north-up) reference frame, i.e.,
the z-axis is pointing up,
the y-axis is pointing north,
the x-axis is pointing east.
When there is no absolute heading defined by the magnetic field, the x- and y-axes of the reference frame might point in different directions. Still, we always use a reference frame in which the z-axis points up.
Heading Offset
When tracking the relative heading of different orientations, we use the heading offset δ that we define as the rotation between two reference frames:
\(\mathcal{E}_1\) usually refers to the reference frame of the proximal segment and \(\mathcal{E}_2\) usually refers to the reference frame of the distal segment.
Body Segments (ISB)
For tracking orientations of human body segments, it is useful to follow a common convention for
how the coordinate axes are defined based on anatomical landmarks
how relative orientations should be described using joint angles.
We try to follow the recommendations of the International Society of Biomechanics (ISB) as close as possible. The following section is a simplified summary with a focus on the practical aspects. For further details, take a look at the original papers:
Wu, Ge, Frans C. T. van der Helm, H. E. J. (DirkJan) Veeger, Mohsen Makhsous, Peter Van Roy, Carolyn Anglin, Jochem Nagels, et al. 2005. “ISB Recommendation on Definitions of Joint Coordinate Systems of Various Joints for the Reporting of Human Joint MotionPart II: Shoulder, Elbow, Wrist and Hand.” Journal of Biomechanics 38 (5): 981–92. https://doi.org/10.1016/j.jbiomech.2004.05.042.
Wu, Ge, Sorin Siegler, Paul Allard, Chris Kirtley, Alberto Leardini, Dieter Rosenbaum, Mike Whittle, et al. 2002. “ISB Recommendation on Definitions of Joint Coordinate System of Various Joints for the Reporting of Human Joint MotionPart I: Ankle, Hip, and Spine.” Journal of Biomechanics 35 (4): 543–48. https://doi.org/10.1016/S0021-9290(01)00222-6.
For consistency, we always follow the ISB definition for the right side of the body. For the left side, the coordinate systems are aligned in the standard anatomical position. For every body segment, the segment coordinate system (which might be totally different from the IMU coordinate system!) is defined as follows:
In the standard anatomical position (standing straight, palms facing forward), all segment coordinate systems are (roughly) aligned. The x-axes are pointing forward (anterior), the y-axes up (superior, proximal) and the z-axes to the right.
This means that – based on the ENU reference frame – a human avatar should be standing in the standard anatomical positions (and looking east) if we set the orientation of all body segments to:
>>> qmt.quatFromAngleAxis(np.deg2rad(90), [1, 0, 0])
array([0.70710678, 0.70710678, 0. , 0. ])
Based on those coordinate systems, we can calculate Euler angles of relative segment orientations to get joint angles (for the right side of the body).
Ankle Joint
Knee Joint
Hip Joint
Spine
Shoulder
Elbow Joint (combined humeroulnar and radioulnar joint)
Hand and Wrist