Nexus Operations¶
Sections below present all available nexus python operations.
Warning
Be aware, all arguments of the python scripts serve at altering the local settings. If you run one of these scripts, it will call its matching settings.
CGM 1 ( the Vicon plugin-gait Clone ).¶
Calibration¶
Nexus Operation : CGM1 Calibration
param -l, –leftFlatFoot [int]: | |
---|---|
enable or disable the flat foot option on the left foot | |
param -r, –rightFlatFoot [int]: | |
enable or disable the flat foot option on the right foot | |
param -hf, –headFlat [int]: | |
enable or disable the head flat option | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm1” as point suffix | |
param –resetMP [bool]: | |
reset computation of optional parameters, like interAsisDistance, ShankOffsets… |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -l=1 -r=0 -ps=py (if you want to add suffix py and enable the flat foot option on the left side only) >>> --leftFlatFoot=1 -r=0 --pointSuffix=py --resetMP (if you want to add suffix py, enable the flat foot option on the left side only and reset the computation of optional parameters, like interAsisDistance, ShankOffsets...)
Fitting¶
CGM 1.1 ( the Vicon plugin-gait as it should (have) work(ed) ).¶
Calibration¶
Nexus Operation : CGM1.1 Calibration
param -l, –leftFlatFoot [int]: | |
---|---|
enable or disable the flat foot option on the left foot | |
param -r, –rightFlatFoot [int]: | |
enable or disable the flat foot option on the right foot | |
param -hf, –headFlat [int]: | |
enable or disable the head flat option | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm1.1” as point suffix | |
param –resetMP [bool]: | |
reset computation of optional parameters, like interAsisDistance, ShankOffsets… |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -l=1 -r=0 -ps=py (if you want to add suffix py and enable the flat foot option on the left side only) >>> --leftFlatFoot=1 -r=0 --pointSuffix=py --resetMP (if you want to add suffix py, enable the flat foot option on the left side only and reset the computation of optional parameters, like interAsisDistance, ShankOffsets...)
Fitting¶
Nexus Operation : CGM1.1 Fitting
param –proj [string]: | |
---|---|
define in which coordinate system joint moment will be expressed (Choice : Distal, Proximal, Global) | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm1.1” as point suffix |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> --proj=Global (means joint moments will be expressed into the Global Coordinate system)
CGM 2.1 (new Hip centre)¶
Calibration¶
Nexus Operation : CGM2.1 Calibration
param -l, –leftFlatFoot [int]: | |
---|---|
enable or disable the flat foot option on the left foot | |
param -r, –rightFlatFoot [int]: | |
enable or disable the flat foot option on the right foot | |
param -hf, –headFlat [int]: | |
enable or disable the head flat option | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.1” as point suffix | |
param –resetMP [bool]: | |
reset computation of optional parameters, like interAsisDistance, ShankOffsets… | |
param –forceLHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system | |
param –forceRHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -l=1 -r=0 -ps=py (if you want to add suffix py and enable the flat foot option on the left side only) >>> --leftFlatFoot=1 -r=0 --pointSuffix=py --resetMP (if you want to add suffix py, enable the flat foot option on the left side only and reset the computation of optional parameters, like interAsisDistance, ShankOffsets...) >>> --forceLHJC 10 20 30 --forceRHJC 10 20 30 (force the left and right hip joint centre positions (10 mm along the pelvic X-axis, 20 mm along the pelvic Y-axis, 30 mm along the pelvic Z-axis)
Fitting¶
Nexus Operation : CGM2.1 Fitting
param –proj [string]: | |
---|---|
define in which coordinate system joint moment will be expressed (Choice : Distal, Proximal, Global) | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.1” as point suffix |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> --proj=Global (means joint moments will be expressed into the Global Coordinate system)
CGM 2.2 (Inverse Kinematics)¶
Calibration¶
Nexus Operation : CGM2.2 Calibration
param -l, –leftFlatFoot [int]: | |
---|---|
enable or disable the flat foot option on the left foot | |
param -r, –rightFlatFoot [int]: | |
enable or disable the flat foot option on the right foot | |
param -hf, –headFlat [int]: | |
enable or disable the head flat option | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.2” as point suffix | |
param –resetMP [bool]: | |
reset computation of optional parameters, like interAsisDistance, ShankOffsets… | |
param –forceLHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system | |
param –forceRHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -l=1 -r=0 -ps=py (if you want to add suffix py and enable the flat foot option on the left side only) >>> --leftFlatFoot=1 -r=0 --pointSuffix=py --resetMP (if you want to add suffix py, enable the flat foot option on the left side only and reset the computation of optional parameters, like interAsisDistance, ShankOffsets...) >>> --forceLHJC 10 20 30 --forceRHJC 10 20 30 (force the left and right hip joint centre positions (10 mm along the pelvic X-axis, 20 mm along the pelvic Y-axis, 30 mm along the pelvic Z-axis)
Fitting¶
Nexus Operation : CGM2.2 Fitting
param –proj [string]: | |
---|---|
define in which coordinate system joint moment will be expressed (Choice : Distal, Proximal, Global) | |
param -mfpa [string]: | |
manual force plate assignement. (Choice: combinaison of X, L, R depending of your force plate number) | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.2” as point suffix |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> --proj=Global (means joint moments will be expressed into the Global Coordinate system)
CGM 2.3 (skin markers)¶
Calibration¶
Nexus Operation : CGM2.3 Calibration
param -l, –leftFlatFoot [int]: | |
---|---|
enable or disable the flat foot option on the left foot | |
param -r, –rightFlatFoot [int]: | |
enable or disable the flat foot option on the right foot | |
param -hf, –headFlat [int]: | |
enable or disable the head flat option | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.3” as point suffix | |
param –resetMP [bool]: | |
reset computation of optional parameters, like interAsisDistance, ShankOffsets… | |
param –forceLHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system | |
param –forceRHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -l=1 -r=0 -ps=py (if you want to add suffix py and enable the flat foot option on the left side only) >>> --leftFlatFoot=1 -r=0 --pointSuffix=py --resetMP (if you want to add suffix py, enable the flat foot option on the left side only and reset the computation of optional parameters, like interAsisDistance, ShankOffsets...) >>> --forceLHJC 10 20 30 --forceRHJC 10 20 30 (force the left and right hip joint centre positions (10 mm along the pelvic X-axis, 20 mm along the pelvic Y-axis, 30 mm along the pelvic Z-axis)
Fitting¶
Nexus Operation : CGM2.3 Fitting
param –proj [string]: | |
---|---|
define in which coordinate system joint moment will be expressed (Choice : Distal, Proximal, Global) | |
param -mfpa [string]: | |
manual force plate assignement. (Choice: combinaison of X, L, R depending of your force plate number) | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.3” as point suffix | |
param –noIk [bool]: | |
disable inverse kinematics |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> --proj=Global --noIk (means you disable the inverse kinematic solver and joint moments will be expressed into the Global Coordinate system, and )
CGM 2.4 (two segment foot)¶
Calibration¶
Nexus Operation : CGM2.4 Calibration
param -l, –leftFlatFoot [int]: | |
---|---|
enable or disable the flat foot option on the left foot | |
param -r, –rightFlatFoot [int]: | |
enable or disable the flat foot option on the right foot | |
param -hf, –headFlat [int]: | |
enable or disable the head flat option | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.4” as point suffix | |
param –resetMP [bool]: | |
reset computation of optional parameters, like interAsisDistance, ShankOffsets… | |
param –forceLHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system | |
param –forceRHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -l=1 -r=0 -ps=py (if you want to add suffix py and enable the flat foot option on the left side only) >>> --leftFlatFoot=1 -r=0 --pointSuffix=py --resetMP (if you want to add suffix py, enable the flat foot option on the left side only and reset the computation of optional parameters, like interAsisDistance, ShankOffsets...) >>> --forceLHJC 10 20 30 --forceRHJC 10 20 30 (force the left and right hip joint centre positions (10 mm along the pelvic X-axis, 20 mm along the pelvic Y-axis, 30 mm along the pelvic Z-axis)
Fitting¶
Nexus Operation : CGM2.4 Fitting
param –proj [string]: | |
---|---|
define in which coordinate system joint moment will be expressed (Choice : Distal, Proximal, Global) | |
param -mfpa [string]: | |
manual force plate assignement. (Choice: combinaison of X, L, R depending of your force plate number) | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.4” as point suffix | |
param –noIk [bool]: | |
disable inverse kinematics |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> --proj=Global --noIk (means you disable the inverse kinematic solver and joint moments will be expressed into the Global Coordinate system, and )
CGM 2.5 (Upper limb)¶
Calibration¶
Nexus Operation : CGM2.5 Calibration
param -l, –leftFlatFoot [int]: | |
---|---|
enable or disable the flat foot option on the left foot | |
param -r, –rightFlatFoot [int]: | |
enable or disable the flat foot option on the right foot | |
param -hf, –headFlat [int]: | |
enable or disable the head flat option | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.5” as point suffix | |
param –resetMP [bool]: | |
reset computation of optional parameters, like interAsisDistance, ShankOffsets… | |
param –forceLHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system | |
param –forceRHJC [array]: | |
force the local position of the left hip joint centre in the pelvic coordinate system |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -l=1 -r=0 -ps=py (if you want to add suffix py and enable the flat foot option on the left side only) >>> --leftFlatFoot=1 -r=0 --pointSuffix=py --resetMP (if you want to add suffix py, enable the flat foot option on the left side only and reset the computation of optional parameters, like interAsisDistance, ShankOffsets...) >>> --forceLHJC 10 20 30 --forceRHJC 10 20 30 (force the left and right hip joint centre positions (10 mm along the pelvic X-axis, 20 mm along the pelvic Y-axis, 30 mm along the pelvic Z-axis)
Fitting¶
Nexus Operation : CGM2.5 Fitting
param –proj [string]: | |
---|---|
define in which coordinate system joint moment will be expressed (Choice : Distal, Proximal, Global) | |
param -md, –markerDiameter [int]: | |
marker diameter | |
param -ps, –pointSuffix [string]: | |
suffix adds to the vicon nomenclature outputs | |
param –check [bool]: | |
add “cgm2.5” as point suffix | |
param –noIk [bool]: | |
disable inverse kinematics |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> --proj=Global --noIk (means you disable the inverse kinematic solver and joint moments will be expressed into the Global Coordinate system, and )
CGM2.6 ( knee calibration)¶
Calibration2Dof method (dynakad-like)¶
Details about the Calibration2Dof method can be found in :
Nexus Operation : 2DofCalibration
Calibration of the knee with the Calibration2Dof method (dynaKad like method).
The script considers all frames of the c3d and detects the side autmaticallt from ANK marker trajectories
param -s, –side [string]: | |
---|---|
lower limb side ( choice: Left or Right ) | |
param -b, –beginFrame [int]: | |
manual selection of the first frame | |
param -e, –endFrame [int]: | |
manual selection of the last frame |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -side=Left -b=50 -e=100 (Left knee calibration between frames 50 and 100)
SARA method¶
Details about the SARA method can be found in Ehrig et al.(2007), Journal of Biomechanics
Danger
the SARA method doesn t work for CGM version 1 to 2.2.
Nexus Operation : SARA
Calibration of the knee with the SARA method.
The script considers all frames of the c3d and detects the side autmaticallt from ANK marker trajectories
param -s, –side [string]: | |
---|---|
lower limb side ( choice: Left or Right ) | |
param -b, –beginFrame [int]: | |
manual selection of the first frame | |
param -e, –endFrame [int]: | |
manual selection of the last frame |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -side=Left -b=50 -e=100 (Left knee calibration between frames 50 and 100)
plotting¶
spatio-temporal parameters¶
Nexus Operation : plotSpatioTemporalParameters
The script displays spatio-temporal parameters (Velocity, cadence, duration of the gait phases…)
param -ps, –pointSuffix [string]: | |
---|---|
suffix adds to the pyCGM2 nomenclature |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -ps=py
Note
- the spatio-temporal parameters are :
- duration
- cadence
- stanceDuration
- stancePhase
- swingDuration
- swingPhase
- doubleStance1
- doubleStance2
- simpleStance
- strideLength
- stepLength
- strideWidth
- speed
Warning
the spatio-temporal parameters are not stored in the c3d file yet.
temporal Kinematics¶
Nexus Operation : plotTemporalKinematics
The script displays kinematics with time as x-axis
param -ps, –pointSuffix [string]: | |
---|---|
suffix adds to the vicon nomenclature outputs |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -ps=py (all points will be suffixed with py (LHipAngles_py))
temporal Kinetics¶
Nexus Operation : plotTemporalKinetics
The script displays kinetics with time as x-axis
param -ps, –pointSuffix [string]: | |
---|---|
suffix adds to the vicon nomenclature outputs |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -ps=py (all points will be suffixed with py (LHipMoment_py))
Gait-Normalized Kinematics¶
Nexus Operation : plotNormalizedKinematics
The script displays Gait-Normalized kinematics
param -ps, –pointSuffix [string]: | |
---|---|
suffix adds to the vicon nomenclature outputs | |
param -c, –consistency [bool]: | |
display consistency plot ( ie : all gait cycle) instead of a descriptive statistics view | |
param -nd, –normativeData [string]: | |
Normative data set ( choice: Schwartz2008 [DEFAULT] or Pinzone2014) | |
param -ndm, –normativeDataModality [string]: | |
modalities associated with the selected normative dataset. (choices: if Schwartz2008: VerySlow,Slow,Free[DEFAULT],Fast,VeryFast. if Pinzone2014 : CentreOne,CentreTwo) |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -normativeData=Schwartz2008 --normativeDataModality=VeryFast (your gait panel will display as normative data, results from the modality VeryFast of the nomative dataset collected by Schwartz2008)
Gait-Normalized Kinetics¶
Nexus Operation : plotNormalizedKinetics
The script displays Gait-Normalized kinetics
param -ps, –pointSuffix [string]: | |
---|---|
suffix adds to the vicon nomenclature outputs | |
param -c, –consistency [bool]: | |
display consistency plot ( ie : all gait cycle) instead of a descriptive statistics view | |
param -nd, –normativeData [string]: | |
Normative data set ( choice: Schwartz2008 [DEFAULT] or Pinzone2014) | |
param -ndm, –normativeDataModality [string]: | |
modalities associated with the selected normative dataset. (choices: if Schwartz2008: VerySlow,Slow,Free[DEFAULT],Fast,VeryFast. if Pinzone2014 : CentreOne,CentreTwo) |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -normativeData=Schwartz2008 --normativeDataModality=VeryFast (your gait panel will display as normative data, results from the modality VeryFast of the nomative dataset collected by Schwartz2008)
Movement Analysis Profile (MAP)¶
Nexus Operation : plotMAP
The script displays Gait-Normalized kinematics
param -ps, –pointSuffix [string]: | |
---|---|
suffix adds to the vicon nomenclature outputs | |
param -nd, –normativeData [string]: | |
Normative data set ( choice: Schwartz2008 [DEFAULT] or Pinzone2014) | |
param -ndm, –normativeDataModality [string]: | |
modalities associated with the selected normative dataset. (choices: if Schwartz2008: VerySlow,Slow,Free[DEFAULT],Fast,VeryFast. if Pinzone2014 : CentreOne,CentreTwo) |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -normativeData=Schwartz2008 --normativeDataModality=VeryFast (your gait panel will display as normative data, results from the modality VeryFast of the nomative dataset collected by Schwartz2008)
Temporal EMG¶
Nexus Operation : plotTemporalEmg
The script displays rectified EMG with time as x-axis
param -bpf, –BandpassFrequencies [array]: | |
---|---|
bandpass frequencies | |
param -ecf, –EnvelopLowpassFrequency [double]: | |
cut-off low pass frequency for getting emg envelop | |
param -r, –raw [bool]: | |
display non-rectified emg instead of rectified |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -bpf 20 450 -ecf=8.9 --raw (bandpass frequencies set to 20 and 450Hz and envelop made from a low-pass filter with a cutoff frequency of 8.9Hz, non-rectified EMG will be displayed)
Gait-Normalized EMG¶
Nexus Operation : plotNormalizedEmg
The script displays gait-normalized emg envelops
param -bpf, –BandpassFrequencies [array]: | |
---|---|
bandpass frequencies | |
param -ecf, –EnvelopLowpassFrequency [double]: | |
cut-off low pass frequency for getting emg envelop | |
param -c, –consistency [bool]: | |
display consistency plot ( ie : all gait cycles) instead of a descriptive statistics view |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -bpf 20 450 -ecf=8.9 --consistency (bandpass frequencies set to 20 and 450Hz and envelop made from a low-pass filter with a cutoff frequency of 8.9Hz, all gait cycles will be displayed)
Event Detector¶
Zeni’s method¶
Zeni’s method is kinematic based only.
Detail can be found in Zeni et al (2008), Gait and Posture
Nexus Operation : plotTemporalEmg
The script displays rectified EMG with time as x-axis
param -fso, –footStrikeOffset [int]: | |
---|---|
add an offset on all foot strike events | |
param -foo, –footOffOffset [int]: | |
add an offset on all foot off events |
- Examples:
In the script argument box of a python nexus operation, you can edit:
>>> -fso=10 (add 10 frames to all foot strike events)
External Contribution¶
Kalman Gap Filling¶
This contribution comes from Mickael Burke.
Details about the method can be found in Burke and Lasenby. (2016), Journal of Biomechanics
Nexus Operation : KalmanGapFilling
Low dimensional Kalman smoother that fills gaps in motion capture marker trajectories
This repository is a Python implementation of a gap filling algorithm (http://dx.doi.org/10.1016/j.jbiomech.2016.04.016) that smooths trajectories in low dimensional subspaces, together with a Python plugin for Vicon Nexus.