The most common way to define the subject's progression frame is to align the axes of progression (ie, walking direction) with the anterior-posterior axis used for the individual segments. In our case, this means that the walking direction should be the Y axis.

If the lab has a walkway which is already aligned with one of the lab coordinate system's axes, then the task is to find out whether the subject walks along the +X, +Y, -X or -Y axis, and to calculate the progression frame that transforms the lab coordinate system to the one where the subject's forward direction is +Y.

There are several approaches to this – here is one example:

- Add a new variable, name it
**PelvisOrigin**. - Choose Function:
**Point**and**Transform: A from B's coordinates back to global**. - For
**A**, choose Type:**Point**and for Input Variable, choose**Lab Origin**. - For
**B**, choose Type:**Segment**and for Input Variable, choose**pelvis_4X4**.

You have now defined a point that corresponds to the pelvis segment's origin. To do this, you have used the pre-defined**Lab Origin**point, which is simply {0, 0 , 0}, and transformed this point from the pelvis' local coordinates back to global. - Add a new variable named
**WalkingDirection**. - For Function, choose
**Vector**and**From point A to point B**. - For A, choose Type:
**Point**, for Input Variable, choose**PelvisOrigin**, and for Timing, choose**FirstValidFrame***.* - For B, choose Type:
**Point**, for Input Variable, choose**PelvisOrigin**, and for Timing, choose**LastValidFrame***.*

Here, you've created a vector from a point to the same point, but evaluated at two different times, namely the first and the last valid point. Thus, as long as the subject has moved, you get a vector pointing in the direction in which the subject has moved. - Add a new variable named
**ProgressionFrame**. - For Function, choose:
**Segment**and**Origin A, Y-Axis=lab axis closest to B, Z-Axis up**. - For
**A**, choose Type:**Point**and for Input Variable, choose**PelvisOrigin**. - For B, choose Type:
**Vector**and for Input Variable, choose**WalkingDirection**.

This defines a segment with its +Y direction aligned with the lab axis that has the best alignment with the WalkingDirection vector, which is exactly what is needed to define the progression angles. - Add a new variable named
**PelvisProgressionAngles**. - For Function, choose
**Angle**and**Euler angle: XYZ between A and B**. - For A, choose
**Segment**and for Input Variable, choose**ProgressionFrame**. - For B, choose
**Segment**and for Input Variable, choose**pelvis_4X4**.

This defines the progression angle that we're interested in.