User Tools

Site Tools


visual3d:tutorials:knowledge_discovery:assesing_stability_during_gait

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
visual3d:tutorials:knowledge_discovery:assesing_stability_during_gait [2024/07/12 14:08] – created sgrangervisual3d:tutorials:knowledge_discovery:assesing_stability_during_gait [2024/11/15 19:14] (current) wikisysop
Line 1: Line 1:
-====== Assesing_Stability_During_Gait ======+====== Assesing Stability During Gait ======
  
 ==== Introduction ==== ==== Introduction ====
Line 13: Line 13:
 The most common way that the literature addresses stability in standing and walking is through the Margin Of Stability (MoS). When the extrapolated center of mass (xCoM) is within the Base of Support (BoS), the MoS is positive, indicating that the system is stable. If MoS is negative, this would indicate that the xCoM outside the BoS, and the system is unstable [1]. In this interpretation, it is unclear where the XCoM is positioned when we are given a negative or positive MoS. The subject could be beyond the boundary of stability to the left, right, forward, or behind, and the MoS value as it is presented does not describe where the limit is crossed. Additionally, MoS values are often averaged over strides, which does not provide information about stride-to-stride variability and also assumes that the trajectory of a stride is independent of past or future strides [2]. These limitations make it difficult to interpret the MoS as a measure of stability during walking. It is important that we explore alternative ways of organizing and displaying MoS values that can overcome some of these limitations - which we will do in this tutorial! The most common way that the literature addresses stability in standing and walking is through the Margin Of Stability (MoS). When the extrapolated center of mass (xCoM) is within the Base of Support (BoS), the MoS is positive, indicating that the system is stable. If MoS is negative, this would indicate that the xCoM outside the BoS, and the system is unstable [1]. In this interpretation, it is unclear where the XCoM is positioned when we are given a negative or positive MoS. The subject could be beyond the boundary of stability to the left, right, forward, or behind, and the MoS value as it is presented does not describe where the limit is crossed. Additionally, MoS values are often averaged over strides, which does not provide information about stride-to-stride variability and also assumes that the trajectory of a stride is independent of past or future strides [2]. These limitations make it difficult to interpret the MoS as a measure of stability during walking. It is important that we explore alternative ways of organizing and displaying MoS values that can overcome some of these limitations - which we will do in this tutorial!
  
-{{MoS_Intro.png}}+{{:MoS_Intro.png?400}}
  
 ==== Data ==== ==== Data ====
Line 29: Line 29:
   * **Markerless motion file (Sample_Markerless):** THEIA Markerless motion file. Visual3D automatically assigns a model and static trial to this file when loaded in the workspace.   * **Markerless motion file (Sample_Markerless):** THEIA Markerless motion file. Visual3D automatically assigns a model and static trial to this file when loaded in the workspace.
  
-  * **Meta-Commands (_.v3m):** Copy and paste all included meta commands into the plugins>meta_commands folder in your Visual3D Program files. Restart your Visual3D application. See more on meta-commands [[index.php?title=Pipeline_Commands:_Meta_Commands&action=edit&redlink=1|**here**]].+  * **Meta-Commands (_.v3m):** Copy and paste all included meta commands into the plugins>meta_commands folder in your Visual3D Program files. Restart your Visual3D application. See more on meta-commands [[visual3d:documentation:pipeline:meta_commands:meta_commands_overview|here]].
  
 ==== Marker-based vs Markerless Landmarks ==== ==== Marker-based vs Markerless Landmarks ====
Line 42: Line 42:
     * Open the meta commands subfolder     * Open the meta commands subfolder
     * select **Model_Landmarks_For_MoS** and run pipeline     * select **Model_Landmarks_For_MoS** and run pipeline
 +{{ :Inputs.png?300}}
 You will first be prompted to provide the name of the targets for the following markers: Left heel (l_heel), right heel (r_heel), left mid toes (l_met23), right mid toes (r_met23), left fifth metatarsal (l_met5), right fifth metatarsal (l_met5), left first metatarsal (l_met1), and right first metatarsal (l_met1). **FOR THIS TUTORIAL**, the marker-based data targets have the same names as the parameters they are being set to, and in the dialog you can type these same names as the value entry. This is shown in the figure below. **IF** you are applying this method to a **DIFFERENT MODEL**, make sure to check what your target signals are named for these markers. You will first be prompted to provide the name of the targets for the following markers: Left heel (l_heel), right heel (r_heel), left mid toes (l_met23), right mid toes (r_met23), left fifth metatarsal (l_met5), right fifth metatarsal (l_met5), left first metatarsal (l_met1), and right first metatarsal (l_met1). **FOR THIS TUTORIAL**, the marker-based data targets have the same names as the parameters they are being set to, and in the dialog you can type these same names as the value entry. This is shown in the figure below. **IF** you are applying this method to a **DIFFERENT MODEL**, make sure to check what your target signals are named for these markers.
  
Line 53: Line 53:
 All motion files in Signals and Events should now have a model applied, with blue markers on the feet showing the applied landmarks. In the figure, landmarks have been checked to show you which have been added from the pipeline, you do not need to do this yourself. All motion files in Signals and Events should now have a model applied, with blue markers on the feet showing the applied landmarks. In the figure, landmarks have been checked to show you which have been added from the pipeline, you do not need to do this yourself.
  
-{{Inputs.png}} {{Landmarks.png}}+{{:Landmarks.png?700}}
  
 === To apply landmarks to markeless data: === === To apply landmarks to markeless data: ===
Line 67: Line 67:
     * select **Model_Landmarks_For_MoS_Markerless** and run pipeline     * select **Model_Landmarks_For_MoS_Markerless** and run pipeline
  
-For markerless data, we do not need to select a static or model template file, as the model is automatically generated by Visual3D. Once we run the pipeline, the foot landmarks will appear in the workspace (see figure). {{Landmarks_Markerless.png}}+For markerless data, we do not need to select a static or model template file, as the model is automatically generated by Visual3D. Once we run the pipeline, the foot landmarks will appear in the workspace (see figure). {{:Landmarks_Markerless.png}}
  
 ===== Margin Of Stability: Original Definition ===== ===== Margin Of Stability: Original Definition =====
Line 136: Line 136:
 ==== Base of Support ==== ==== Base of Support ====
  
-{{BoSSingle.png}}+{{:BoSSingle.png?400}}
  
-{{BoSDouble.png}}+{{:BoSDouble.png?500}}
  
 The BoS uses the AP and ML bounds of the feet from the landmarks we applied to the model. At each instant in the motion trial, the base of support is defined by four boundaries in single or double stance. The BoS uses the AP and ML bounds of the feet from the landmarks we applied to the model. At each instant in the motion trial, the base of support is defined by four boundaries in single or double stance.
Line 181: Line 181:
 To trim our ML and AP bounds to reflect single and double support times, we use two meta-commands called **BOS_Bilateral_Single_Support** and **BOS_Bilateral_Double_Support**. Below is an example of calling these meta-commands from the tutorial pipeline: To trim our ML and AP bounds to reflect single and double support times, we use two meta-commands called **BOS_Bilateral_Single_Support** and **BOS_Bilateral_Double_Support**. Below is an example of calling these meta-commands from the tutorial pipeline:
  
-{{Bounds_Untrimmed.png}}+{{:Bounds_Untrimmed.png}}
  
 Single Support: Single Support:
Line 214: Line 214:
 </code> </code>
  
-{{BoSTrimmed.png}}+{{:BoSTrimmed.png}}
  
 Looking now at our **BOS_ML** derived folder, we can plot the signals: **LATERAL_BOUND_LEFT_DS**, **LATERAL_BOUND_LEFT_SS**, **MEDIAL_BOUND_LEFT_DS**, **MEDIAL_BOUND_LEFT_SS**, and **XCOM**. Here we see that the left bounds of the feet are now cut to only have data when the left foot is on the ground. I have also highlighted the events **LTO** (blue) and **LHS** (red), which shows that between **LTO** and **LHS**, there are no bounds for the left foot. Looking now at our **BOS_ML** derived folder, we can plot the signals: **LATERAL_BOUND_LEFT_DS**, **LATERAL_BOUND_LEFT_SS**, **MEDIAL_BOUND_LEFT_DS**, **MEDIAL_BOUND_LEFT_SS**, and **XCOM**. Here we see that the left bounds of the feet are now cut to only have data when the left foot is on the ground. I have also highlighted the events **LTO** (blue) and **LHS** (red), which shows that between **LTO** and **LHS**, there are no bounds for the left foot.
Line 243: Line 243:
 If we plot the anterior and posterior MoS of the left and right feet during single and double support, we see the following figure: If we plot the anterior and posterior MoS of the left and right feet during single and double support, we see the following figure:
  
-{{AP_MoS.png}}+{{:AP_MoS.png}}
  
 This is a cluttered plot with 8 different signals, so we have written a meta-command to return the smallest MoS (distance to closest boundary) between the AP and ML bounds at each frame. Typically, MoS is reported as a single value as the distance of the XCoM to the closest bound. For example, in this following command we are feeding in the anterior left and posterior right bounds that define the AP BoS during the event sequence RDOUBLE, to the meta-command called **Closest_Bound.v3m**. This will take the smallest MoS between the two signals at each frame of the sequence. This is a cluttered plot with 8 different signals, so we have written a meta-command to return the smallest MoS (distance to closest boundary) between the AP and ML bounds at each frame. Typically, MoS is reported as a single value as the distance of the XCoM to the closest bound. For example, in this following command we are feeding in the anterior left and posterior right bounds that define the AP BoS during the event sequence RDOUBLE, to the meta-command called **Closest_Bound.v3m**. This will take the smallest MoS between the two signals at each frame of the sequence.
Line 274: Line 274:
 The following plot in the MoS output shows the final AP MoS values for the original interpretation. However, by just looking at single values at each point throughout the trial, which is typically shown in the literature, we don’t know the direction of instability. We know that a negative MoS is considered “unstable”, but we don’t know if they are in front or behind the BoS, or on either side in the ML direction. We propose a new way to define the MoS to improve the classification of stability and provide the direction, which we will show in the following sections of this tutorial. The following plot in the MoS output shows the final AP MoS values for the original interpretation. However, by just looking at single values at each point throughout the trial, which is typically shown in the literature, we don’t know the direction of instability. We know that a negative MoS is considered “unstable”, but we don’t know if they are in front or behind the BoS, or on either side in the ML direction. We propose a new way to define the MoS to improve the classification of stability and provide the direction, which we will show in the following sections of this tutorial.
  
-{{AP_MoS_2.png}}+{{:AP_MoS_2.png}}
  
 ===== Margin Of Stability: New Definition ===== ===== Margin Of Stability: New Definition =====
  
-{{NewBoS.png}}+{{:NewBoS.png?600}}
  
 This section will use the pipeline: **Find_MoS_New.v3s** This pipeline builds off of the previous section. You must run **Find_MoS_Original.v3s** first! This section will use the pipeline: **Find_MoS_New.v3s** This pipeline builds off of the previous section. You must run **Find_MoS_Original.v3s** first!
Line 414: Line 414:
 </code> </code>
  
-After running the **Find_MoS_New.v3s** pipeline, we can plot the **DERIVED::MOS_ORIGINAL::MOS_AP**, and **DERIVED::MOS_NEW::MOS_AP** for comparison. Here we can see that any time the original signal was positive/”stable”, it is now 0 in the new signal. When the subject’s XCoM is anterior of the AP BoS, the MoS is positive, and is negative when the XCoM is posterior of the AP BoS. {{NewMoS.png}}+After running the **Find_MoS_New.v3s** pipeline, we can plot the **DERIVED::MOS_ORIGINAL::MOS_AP**, and **DERIVED::MOS_NEW::MOS_AP** for comparison. Here we can see that any time the original signal was positive/”stable”, it is now 0 in the new signal. When the subject’s XCoM is anterior of the AP BoS, the MoS is positive, and is negative when the XCoM is posterior of the AP BoS. {{:NewMoS.png}}
  
 ===== Further MoS Analysis ===== ===== Further MoS Analysis =====
  
-{{NormalizedMoSSigs.png}}+{{:NormalizedMoSSigs.png?400}}
  
-In the **MOS_NEW** derived folder, you will see several normalized signals for each left or right stride of the selected walking trial. This was done to plot several strides on top of eachother. Here we only have a few strides, but analyzing these MoS signals normalized between heel strikes may be a more useful way to assess a subject's stability. If we consider that the MoS is being classified as ‘unstable’ for the majority of the stride, but we know the subject walked normally and did not fall, we might be able to detect moments of actual instability through outlier MoS strides. {{NormalizedMoSPlot.png}}+In the **MOS_NEW** derived folder, you will see several normalized signals for each left or right stride of the selected walking trial. This was done to plot several strides on top of eachother. Here we only have a few strides, but analyzing these MoS signals normalized between heel strikes may be a more useful way to assess a subject's stability. If we consider that the MoS is being classified as ‘unstable’ for the majority of the stride, but we know the subject walked normally and did not fall, we might be able to detect moments of actual instability through outlier MoS strides. {{:NormalizedMoSPlot.png}}
  
 ==== Inspect3D ==== ==== Inspect3D ====
Line 426: Line 426:
 Time normalization can also be applied to data in Inspect3D when groups are defined between event labels. Here we show an example of the MoS output plotted for the AP and ML directions of one subject with 8 walking trials. To learn how to load workspaces, define groups, and create figures in Inspect3D, see [[Other:Inspect3D:Tutorials:Inspect3D_Tutorials_Overview|**here**]]. Time normalization can also be applied to data in Inspect3D when groups are defined between event labels. Here we show an example of the MoS output plotted for the AP and ML directions of one subject with 8 walking trials. To learn how to load workspaces, define groups, and create figures in Inspect3D, see [[Other:Inspect3D:Tutorials:Inspect3D_Tutorials_Overview|**here**]].
  
-{{I3DMoS.png}} {{I3DMoS2.png}}+{{:I3DMoS.png}} {{:I3DMoS2.png}}
  
 ===== References ===== ===== References =====
visual3d/tutorials/knowledge_discovery/assesing_stability_during_gait.1720793334.txt.gz · Last modified: 2024/07/12 14:08 by sgranger