---
title: "Step 5 - Defining parameters"
canonical: "https://help.vicon.com/space/ProCalc16/12649210/Step%205%20-%20Defining%20parameters"
format: markdown
---
Often, the real purpose of a research biomechanical model is to extract certain parameters from motion captured data. For example, we may be interested in certain temporal parameters such as foot contact time as a percentage of the cycle time, or perhaps spatial parameters such as the stride length.

In addition, kinematic parameters may also be of interest, such as the foot inversion upon foot contact. The following part of the tutorial provides examples of all these.

> ⚠️ **Important**   
> ⚠️ For each parameter, it is important that you decide what you want to use the parameter for. There are three options:
> ⚠️ 
> ⚠️ - **Export** **parameter.** Calculated and exported to Microsoft Excel. These parameters are the ones that you wish to use for further analysis, for example key kinematic or temporal/spatial parameters calculated based on a dynamic trial. *Ensure* *that* *you have* *selected* * the * **Export Parameter** * check* *box.*
> ⚠️ - **Model** **parameter.** Calculated and stored in the XMP file, to be used later for further calculation on other trials, for example offset parameters calculated from the static trial to be used in the dynamic processing. *Ensure* *that* *you have* *selected** the * **Model Parameter** * check box.*
> ⚠️ - **Internal** **parameter.** Only used as an intermediate parameter. *Ensure* *that* *neither* *of* *the* *above* *check boxes* *are* *selected**.*

## Inversion at foot contact

We'll use the vertical axis of the foot to estimate inversion/eversion at foot contact. If the left foot lands in inversion, the vertical axis will point to the left when seen from behind

![image](media://27f29d96-97e5-4335-b86c-9bc2e6c70711)


    **To calculate inversion:**


Use the angle between the vertical axis and the foot's vertical axis, projected into the frontal (XZ) plane. To do this:

1. On the **Variables** tab, click the Edit button and then click the Add button > Macro (inline-media-image)

 to add a new variable and call it **LeftFootInversion**.
2. Select the **Angle** group and the **Angle: Between A and B around C**.
3. For A, select **Segment**, **Lab Coordinate System** and **Z**.
4. For B select **Segment**, **LeftFoot** and **Z**.
5. For C select **Vector**, **Lab Y-Axis** and **XYZ**.   
This calculates the angle between the Z-axis of the lab and foot coordinate system around the Y axis of the lab coordinate system, which is our direction of running. If you'd like inversion to be positive, change the **Factor** for the **Lab Y-Axis** from 1 to -1.

As an alternative, you could also calculate the 3D Euler angles between the lab coordinate system and the foot coordinate system as follows:

1. Add a new variable called **LeftFootAngles**.
2. Select **Angle** and **Euler angle: YXZ between A and B.**
3. Select A = **Lab Coordinate System** and B = **LeftFoot**.

In this case, ProCalc calculates three angles, the Inversion being the first due to the Euler angle extraction order being **YXZ**. In other words, inversion/eversion first, the "dorsi/plantarflexion" with respect to the lab, then the foot progression angle.

Save the variable scheme and on the **Parameters** tab, click **Edit** and then add a new parameter called **LeftFootInversionAtFS**.

For **Function**, choose **Value** and **Variable A [Event A]**, then select variable A to be **Angle** and **LeftFootInversion** and event A to be **Left Foot Strike**.

The individual values for each foot strike are displayed in the log.

## Foot contact as percentage of cycle

1. Edit the **Parameters** scheme, click the Add button > Macro (inline-media-image)

 to add a new parameter, and name it **LeftFootContactTime**.
2. Select function group **Time** and function **Event A to Event B**.
3. In the **Input Events** section, select A = **Left Foot Strike** and B = **Left Foot Off**.   
This calculates the duration of each contact cycle. Now all you need to do is to normalize.
4. Select the **Time Normalize Between** option, and then select **Left Foot Strike** for both the following drop-downs.  
The parameters, one for each cycle, are output in the log. You can copy/mirror to do the same thing for the right side, as usual.

## Stride length

As this is a running trial on a treadmill, the calculation of stride length has to take the speed of the treadmill into account – after all, the subject isn't actually going anywhere. We could therefore calculate the stride length as the distance between the Y-component (the running direction) of two subsequent foot strikes plus the speed of the treadmill times the cycle time. The main challenge is to find the speed of the treadmill. We could estimate this using the speed of the heel markers between foot strike and mid-swing of the opposite foot. As the heel marker slows down relative to the treadmill as soon as the heel starts to come off the ground, it seems sensible to use the mid-swing rather than the foot off event as the cut-off time for the calculation.


      




    **To calculate the stride length:**


1. Edit the **Parameters** scheme, click the Add button > Macro (inline-media-image)

 to add a new parameter, and name it **LeftHeelSpeedFStoMS.**
2. Choose the **3D** function group and the **Speed Variable A [Event A, Event B]** function.
3. For A, choose **Point** and **LHEE_Lower**, and for XYZ, make sure you select the **Y** component only.
4. Choose the event **A = Left Foot Strike** and **B = RightMidSwing**.  
The calculated speeds are output in the log – these should be fairly consistent.
5. Add another parameter and call it **LeftCycleDuration**, function group **Time**, function **Event A to Event B.**
6. For both events **A** and **B**, choose **Left Foot Strike**.   
This calculates the time of each left cycle.
7. Add another parameter and call it **LeftTreadmillDistance**.
8. Choose function group **Parameter**, function **Parameter A * Parameter B**.
9. Choose A = **LeftHeelSpeedFStoMS**, B = **LeftCycleDuration** and for **combine**, select **average(A) <-> each(B)**.   
In this case, all we're doing is to use the average of the treadmill speed and multiplying this with each cycle duration, which should give us a good estimate of how far the treadmill has traveled between each foot strike.
10. Because the subject will typically not land at the exact same spot on the treadmill for each cycle, you must also adjust for the spatial delta between each foot strike. To calculate this distance:
  1. Add another parameter, name it **LeftHeelDistFStoFS** and select from the **3D** group the function **Distance Variable A [Event A, Event B]**.
  2. Choose the **Y** component of **LHee_Lower** between **Left Foot Strike** and **Left Foot Strike**.  
The log outputs the difference in the Y position of the heel from stride to stride, which should fluctuate around zero unless the subject changes the position on the treadmill.
11. Combine the **LeftTreadmillDistance** parameter and the **LeftHeelDistFStoFS** parameter. To do this:
  1. Add a new parameter named **LeftStrideLength**.
  2. For Function group, select **Parameter** and **Parameter A – Parameter B** and then select A=**LeftHeelDistFStoFS** and B=**LeftTreadMillDistance**.   
As the latter is negative due to the treadmill moving in the negative Y direction, this calculates the correct stride length.
12. Save the scheme before continuing.