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.