def test_CGM24_FullBody_noOptions_uncorrectLowerLimbMarker(self): DATA_PATH = pyCGM2.TEST_DATA_PATH + "Scenarii\\different static and dynamic marker set\\CGM24-fullBody\\" staticFilename = "static.c3d" acqStatic = btkTools.smartReader(DATA_PATH + staticFilename) markerDiameter=14 leftFlatFoot = False rightFlatFoot = False headStraight = False pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "PN07.vsk") required_mp,optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) settings = files.openFile(pyCGM2.PYCGM2_SETTINGS_FOLDER,"CGM2_4-pyCGM2.settings") hjcMethod = settings["Calibration"]["HJC"] translators = files.getTranslators(DATA_PATH,"CGM2_4.translators") # if not translators: translators = settings["Translators"] model,finalAcqStatic = cgm2_4.calibrate(DATA_PATH, staticFilename, translators, settings, required_mp, optional_mp, False, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, hjcMethod, pointSuffix, displayCoordinateSystem=True) # btkTools.smartWriter(finalAcqStatic, str( staticFilename[:-4]+"-pyCGM2modelled.c3d")) logging.info("Static Calibration -----> Done") gaitFilename="gait1_noLASI.c3d" mfpa = None reconstructFilenameLabelled = gaitFilename acqGait = cgm2_4.fitting(model,DATA_PATH, reconstructFilenameLabelled, translators, settings, False, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Proximal, displayCoordinateSystem=True) assert model.m_bodypart == enums.BodyPart.UpperLimb
def test_sample0(self): DATA_PATH = MAIN_PATH = pyCGM2.TEST_DATA_PATH + "GaitModels\CGM1\\fullBody-native-noOptions\\" staticFilename = "static.c3d" acqStatic = btkTools.smartReader(DATA_PATH + staticFilename) markerDiameter = 14 leftFlatFoot = False rightFlatFoot = False headStraight = False pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "New Subject.vsk") required_mp, optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) # calibration according CGM1 model, finalAcqStatic = cgm1.calibrate(DATA_PATH, staticFilename, None, required_mp, optional_mp, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, pointSuffix, displayCoordinateSystem=True) # no fitting operation, only checking of forceplateAssembly gaitFilename = "gait1.c3d" acqGait = btkTools.smartReader(DATA_PATH + gaitFilename) mfpa = None mappedForcePlate = forceplates.matchingFootSideOnForceplate(acqGait, mfpa=mfpa) forceplates.addForcePlateGeneralEvents(acqGait, mappedForcePlate) logging.warning("Manual Force plate assignment : %s" % mappedForcePlate) # assembly foot and force plate modelFilters.ForcePlateAssemblyFilter( model, acqGait, mappedForcePlate, leftSegmentLabel="Left Foot", rightSegmentLabel="Right Foot").compute( pointLabelSuffix=pointSuffix) testingUtils.plotComparisonOfPoint(acqGait, "RGroundReactionForce", "test") testingUtils.plotComparisonOfPoint(acqGait, "RGroundReactionMoment", "test")
def test_vskFiles(self): vskFile = vskTools.getVskFiles(pyCGM2.TEST_DATA_PATH + "\\LowLevel\\IO\\Hanibal_files\\") assert vskFile != False vskTools.checkSetReadOnly(pyCGM2.TEST_DATA_PATH + "\\LowLevel\\IO\\Hanibal_files\\PIG-KAD.vsk") vskInstance = vskTools.Vsk( pyCGM2.TEST_DATA_PATH + "\\LowLevel\\IO\\Hanibal_files\\PIG-KAD.vsk")
def test_FullBody_noOptions(self): DATA_PATH = MAIN_PATH = pyCGM2.TEST_DATA_PATH + "LowLevel\\uncropped data\\cgm1\\" staticFilename = "static.c3d" DATA_PATH_OUT = pyCGM2.TEST_DATA_PATH_OUT+"LowLevel\\uncropped data\\cgm1\\" files.createDir(DATA_PATH_OUT) markerDiameter=14 leftFlatFoot = True rightFlatFoot = True headStraight = True pointSuffix = "" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "New Subject.vsk") required_mp,optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) model,finalAcqStatic = cgm1.calibrate(DATA_PATH, staticFilename, None, required_mp, optional_mp, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, pointSuffix, displayCoordinateSystem=True) # btkTools.smartWriter(finalAcqStatic, str( staticFilename[:-4]+"-pyCGM2modelled.c3d")) # logging.info("Static Calibration -----> Done") gaitFilename="gait1.c3d" acqGait0 = btkTools.smartReader(DATA_PATH + gaitFilename) trackingMarkers = model.getTrackingMarkers(acqGait0) validFrames,vff,vlf = btkTools.findValidFrames(acqGait0,trackingMarkers) mfpa = None reconstructFilenameLabelled = gaitFilename acqGait = cgm1.fitting(model,DATA_PATH, reconstructFilenameLabelled, None, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Proximal, displayCoordinateSystem=True) btkTools.smartWriter(acqGait, DATA_PATH_OUT+"//gait1-processed.c3d")
def test_CGM1_FullBody_noOptions_uncorrectUpperLimbMarker(self): DATA_PATH = pyCGM2.TEST_DATA_PATH + "Scenarii\different static and dynamic marker set\CGM1-fullBody\\" staticFilename = "static.c3d" acqStatic = btkTools.smartReader(DATA_PATH + staticFilename) markerDiameter = 14 leftFlatFoot = False rightFlatFoot = False headStraight = False pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "New Subject.vsk") required_mp, optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) model, finalAcqStatic, error = cgm1.calibrate( DATA_PATH, staticFilename, None, required_mp, optional_mp, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, pointSuffix, displayCoordinateSystem=True) # btkTools.smartWriter(finalAcqStatic, str( staticFilename[:-4]+"-pyCGM2modelled.c3d")) LOGGER.logger.info("Static Calibration -----> Done") # case 1 - one marker on the upper limb misses gaitFilename = "gait1_noRFIN.c3d" mfpa = None reconstructFilenameLabelled = gaitFilename acqGait, error = cgm1.fitting(model, DATA_PATH, reconstructFilenameLabelled, None, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Proximal, displayCoordinateSystem=True) assert model.m_bodypart == enums.BodyPart.FullBody
def test_CGM1_FullBody_noOptions_noFP(self): DATA_PATH = pyCGM2.TEST_DATA_PATH + "GaitModels\CGM1\\fullBody-native-noOptions - noFP\\" staticFilename = "static.c3d" acqStatic = btkTools.smartReader(DATA_PATH + staticFilename) markerDiameter=14 leftFlatFoot = False rightFlatFoot = False headStraight = False pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "New Subject.vsk") required_mp,optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) model,finalAcqStatic = cgm1.calibrate(DATA_PATH, staticFilename, None, required_mp, optional_mp, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, pointSuffix, displayCoordinateSystem=True) # btkTools.smartWriter(finalAcqStatic, str( staticFilename[:-4]+"-pyCGM2modelled.c3d")) # logging.info("Static Calibration -----> Done") gaitFilename="gait1.c3d" mfpa = None reconstructFilenameLabelled = gaitFilename acqGait = cgm1.fitting(model,DATA_PATH, reconstructFilenameLabelled, None, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Proximal, displayCoordinateSystem=True) btkTools.smartWriter(acqGait, "gait1-pyCGM2modelled.c3d")
def getEnfFiles(cls): DATA_PATH ="C:\Users\HLS501\Documents\VICON DATA\pyCGM2-Data\Eclipse\Lecter\session\\" vskFile = vskTools.getVskFiles(DATA_PATH) sessionEnfFile = eclipse.getEnfFiles(DATA_PATH,enums.EclipseType.Session) trialEnfFiles = eclipse.getEnfFiles(DATA_PATH,enums.EclipseType.Trial) calib = eclipse.findCalibration(DATA_PATH) motion = eclipse.findMotions(DATA_PATH) kneeMotion = eclipse.findKneeMotions(DATA_PATH) calibProcessingOnly = eclipse.findCalibration(DATA_PATH,ignoreSelect=False) motionProcessingOnly = eclipse.findMotions(DATA_PATH,ignoreSelect=False) kneeMotionProcessingOnly = eclipse.findKneeMotions(DATA_PATH,ignoreSelect=False) motionClassified = eclipse.classifyEnfMotions(DATA_PATH,ignoreSelect=True) motionClassifiedProcessingOnly = eclipse.classifyEnfMotions(DATA_PATH,ignoreSelect=False) motionClassifiedProcessingOnly_TaskOnly = eclipse.classifyEnfMotions(DATA_PATH,ignoreSelect=False, criteria = ["Task"])
def test_FullBody_noOptions_global(self): DATA_PATH = MAIN_PATH = pyCGM2.TEST_DATA_PATH + "GaitModels\\CGM1\\LowerLimb-medMed_Yprogression\\" staticFilename = "static.c3d" acqStatic = btkTools.smartReader(DATA_PATH + staticFilename) markerDiameter = 14 leftFlatFoot = False rightFlatFoot = False headStraight = False pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "Subject.vsk") required_mp, optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) model, finalAcqStatic = cgm1.calibrate(DATA_PATH, staticFilename, None, required_mp, optional_mp, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, pointSuffix, displayCoordinateSystem=True) # btkTools.smartWriter(finalAcqStatic, str( staticFilename[:-4]+"-pyCGM2modelled.c3d")) # logging.info("Static Calibration -----> Done") gaitFilename = "gait1.Global.c3d" mfpa = "RLX" reconstructFilenameLabelled = gaitFilename acqGait = cgm1.fitting(model, DATA_PATH, reconstructFilenameLabelled, None, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Global, displayCoordinateSystem=True) testingUtils.plotComparison_ForcePanel(acqGait, None, "test", "Left") testingUtils.plotComparison_ForcePanel(acqGait, None, "test", "Right") gaitFilename = "gait2.Global.c3d" mfpa = "XLR" reconstructFilenameLabelled = gaitFilename acqGait = cgm1.fitting(model, DATA_PATH, reconstructFilenameLabelled, None, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Global, displayCoordinateSystem=True) testingUtils.plotComparison_ForcePanel(acqGait, None, "test", "Left") testingUtils.plotComparison_ForcePanel(acqGait, None, "test", "Right")
def test_issue_signAbdAddOffset(self): DATA_PATH = pyCGM2.TEST_DATA_PATH + "Issues\\StephenM\\signedAbdAdd-KadMed\\" staticFilename = "Static.c3d" acqStatic = btkTools.smartReader(str(DATA_PATH + staticFilename)) markerDiameter = 14 leftFlatFoot = True rightFlatFoot = True headStraight = True pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "Nick.vsk") required_mp, optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) # required_mp={ # 'Bodymass' : 65.0, # 'LeftLegLength' : 800.0, # 'RightLegLength' : 800.0 , # 'LeftKneeWidth' : 120.0, # 'RightKneeWidth' : 120.0, # 'LeftAnkleWidth' : 100.0, # 'RightAnkleWidth' : 100.0, # 'LeftSoleDelta' : 0, # 'RightSoleDelta' : 0, # 'LeftShoulderOffset' : 40, # 'LeftElbowWidth' : 74, # 'LeftWristWidth' : 55 , # 'LeftHandThickness' : 34 , # 'RightShoulderOffset' : 40, # 'RightElbowWidth' : 74, # 'RightWristWidth' : 55 , # 'RightHandThickness' : 34} # # optional_mp={ # 'InterAsisDistance' : 0,#0, # 'LeftAsisTrocanterDistance' : 0,#0, # 'LeftTibialTorsion' : 0,#0, # 'LeftThighRotation' : 0,#0, # 'LeftShankRotation' : 0,#0,ipdb # 'RightAsisTrocanterDistance' : 0,#0, # 'RightTibialTorsion' : 0,#0, # 'RightThighRotation' : 0,#0, # 'RightShankRotation' : 0} model, finalAcqStatic = cgm1.calibrate(DATA_PATH, staticFilename, None, required_mp, optional_mp, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, pointSuffix, displayCoordinateSystem=True) testingUtils.test_offset( model.mp_computed["LeftThighRotationOffset"], acqStatic, "LThighRotation", decimal=1) # not enought accurate but unsignificant testingUtils.test_offset(model.mp_computed["RightThighRotationOffset"], acqStatic, "RThighRotation", decimal=1) testingUtils.test_offset(model.mp_computed["LeftShankRotationOffset"], acqStatic, "LShankRotation", decimal=1) testingUtils.test_offset(model.mp_computed["RightShankRotationOffset"], acqStatic, "RShankRotation", decimal=1) testingUtils.test_offset(model.mp_computed["LeftTibialTorsionOffset"], acqStatic, "LTibialTorsion", decimal=1) testingUtils.test_offset(model.mp_computed["RightTibialTorsionOffset"], acqStatic, "RTibialTorsion", decimal=1) testingUtils.test_offset(model.mp_computed["LeftAnkleAbAddOffset"], acqStatic, "LAnkleAbAdd", decimal=1) testingUtils.test_offset(model.mp_computed["RightAnkleAbAddOffset"], acqStatic, "RAnkleAbAdd", decimal=1) testingUtils.test_offset( model.mp_computed["LeftStaticPlantFlexOffset"], acqStatic, "LStaticPlantFlex", decimal=1) testingUtils.test_offset( model.mp_computed["RightStaticPlantFlexOffset"], acqStatic, "RStaticPlantFlex", decimal=1) testingUtils.test_offset(model.mp_computed["LeftStaticRotOffset"], acqStatic, "LStaticRotOff", decimal=1) testingUtils.test_offset(model.mp_computed["RightStaticRotOffset"], acqStatic, "RStaticRotOff", decimal=1)
def test_issue_jointForce_CGM24(self): """ synopsis : inverted sign of the x-component of the joint force with CGM1.1 to CGM2.4 """ DATA_PATH = MAIN_PATH = pyCGM2.TEST_DATA_PATH + "Issues\\StephenM\\sign_jointForce_CGM24\\" staticFilename = "FullBody CGM2 data Cal 01.c3d" acqStatic = btkTools.smartReader(DATA_PATH + staticFilename) markerDiameter = 14 leftFlatFoot = False rightFlatFoot = False headStraight = False pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "Nick.vsk") required_mp, optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) settings = files.openFile(pyCGM2.PYCGM2_APPDATA_PATH, "CGM2_4-pyCGM2.settings") model, finalAcqStatic = cgm2_4.calibrate(DATA_PATH, staticFilename, None, settings, required_mp, optional_mp, True, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, { "Left": "Hara", "Right": "Hara" }, pointSuffix, displayCoordinateSystem=True) # btkTools.smartWriter(finalAcqStatic, str( staticFilename[:-4]+"-pyCGM2modelled.c3d")) # logging.info("Static Calibration -----> Done") gaitFilename = "Capture 02.Distal.c3d" mfpa = "R" reconstructFilenameLabelled = gaitFilename acqGait = cgm2_4.fitting(model, DATA_PATH, reconstructFilenameLabelled, None, settings, True, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Distal, displayCoordinateSystem=True) testingUtils.plotComparisonOfPoint(acqGait, "RAnkleForce", "test", title="RAnkleForce PiG - CGM24") testingUtils.plotComparisonOfPoint(acqGait, "RKneeForce", "test", title="RKneeForce PiG - CGM24") testingUtils.plotComparisonOfPoint(acqGait, "RHipForce", "test", title="RHipForce PiG - CGM24")
def test_FullBody_noOptions(self): DATA_PATH = pyCGM2.TEST_DATA_PATH + "GaitModels\CGM1\\fullBody-native-Options\\" staticFilename = "static.c3d" acqStatic = btkTools.smartReader(DATA_PATH + staticFilename) markerDiameter=14 leftFlatFoot = True rightFlatFoot = True headStraight = True pointSuffix = "test" vskFile = vskTools.getVskFiles(DATA_PATH) vsk = vskTools.Vsk(DATA_PATH + "New Subject.vsk") required_mp,optional_mp = vskTools.getFromVskSubjectMp(vsk, resetFlag=True) model,finalAcqStatic,error = cgm1.calibrate(DATA_PATH, staticFilename, None, required_mp, optional_mp, leftFlatFoot, rightFlatFoot, headStraight, markerDiameter, pointSuffix, displayCoordinateSystem=True) testingUtils.test_offset(model.mp_computed["LeftThighRotationOffset"],acqStatic,"LThighRotation", decimal=3) testingUtils.test_offset(model.mp_computed["RightThighRotationOffset"],acqStatic,"RThighRotation", decimal=3) testingUtils.test_offset(model.mp_computed["LeftShankRotationOffset"],acqStatic,"LShankRotation", decimal=3) testingUtils.test_offset(model.mp_computed["RightShankRotationOffset"],acqStatic,"RShankRotation", decimal=3) testingUtils.test_offset(model.mp_computed["LeftTibialTorsionOffset"],acqStatic,"LTibialTorsion", decimal=3) testingUtils.test_offset(model.mp_computed["RightTibialTorsionOffset"],acqStatic,"RTibialTorsion", decimal=3) testingUtils.test_offset(model.mp_computed["LeftAnkleAbAddOffset"],acqStatic,"LAnkleAbAdd", decimal=3) testingUtils.test_offset(model.mp_computed["RightAnkleAbAddOffset"],acqStatic,"RAnkleAbAdd", decimal=3) testingUtils.test_offset(model.mp_computed["LeftStaticPlantFlexOffset"],acqStatic,"LStaticPlantFlex", decimal=3) testingUtils.test_offset(model.mp_computed["RightStaticPlantFlexOffset"],acqStatic,"RStaticPlantFlex", decimal=3) testingUtils.test_offset(model.mp_computed["LeftStaticRotOffset"],acqStatic,"LStaticRotOff", decimal=3) testingUtils.test_offset(model.mp_computed["RightStaticRotOffset"],acqStatic,"RStaticRotOff", decimal=3) np.testing.assert_equal(model.getSegment("Left Thigh").getReferential("TF").static.getNode_byLabel("LHJC").m_desc ,"Davis") np.testing.assert_equal(model.getSegment("Right Thigh").getReferential("TF").static.getNode_byLabel("RHJC").m_desc ,"Davis") np.testing.assert_equal(model.getSegment("Left Thigh").getReferential("TF").static.getNode_byLabel("LKJC").m_desc ,"Chord") np.testing.assert_equal(model.getSegment("Right Thigh").getReferential("TF").static.getNode_byLabel("RKJC").m_desc ,"Chord") np.testing.assert_equal(model.getSegment("Left Shank").getReferential("TF").static.getNode_byLabel("LKJC").m_desc ,"Chord") np.testing.assert_equal(model.getSegment("Right Shank").getReferential("TF").static.getNode_byLabel("RKJC").m_desc ,"Chord") np.testing.assert_equal(model.getSegment("Left Shank").getReferential("TF").static.getNode_byLabel("LAJC").m_desc ,"Chord") np.testing.assert_equal(model.getSegment("Right Shank").getReferential("TF").static.getNode_byLabel("RAJC").m_desc ,"Chord") np.testing.assert_equal(model.getSegment("Left Foot").getReferential("TF").static.getNode_byLabel("LAJC").m_desc ,"Chord") np.testing.assert_equal(model.getSegment("Right Foot").getReferential("TF").static.getNode_byLabel("RAJC").m_desc ,"Chord") testingUtils.test_point(finalAcqStatic,"LPelvisAngles","LPelvisAngles_test",decimal = 3) testingUtils.test_point(finalAcqStatic,"RPelvisAngles","RPelvisAngles_test",decimal = 3) testingUtils.test_point(finalAcqStatic,"LHipAngles","LHipAngles_test",decimal = 3) testingUtils.test_point(finalAcqStatic,"LKneeAngles","LKneeAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"LAnkleAngles","LAnkleAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"RHipAngles","RHipAngles_test",decimal = 3) testingUtils.test_point(finalAcqStatic,"RKneeAngles","RKneeAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"RAnkleAngles","RAnkleAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"LFootProgressAngles","LFootProgressAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"RFootProgressAngles","RFootProgressAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"LThoraxAngles","LThoraxAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"RThoraxAngles","RThoraxAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"LSpineAngles","LSpineAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"RSpineAngles","RSpineAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"LShoulderAngles","LShoulderAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"RShoulderAngles","RShoulderAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"LElbowAngles","LElbowAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"RElbowAngles","RElbowAngles_test",decimal = 2) testingUtils.test_point(finalAcqStatic,"LHeadAngles","LHeadAngles_test",decimal = 3) testingUtils.test_point(finalAcqStatic,"RHeadAngles","RHeadAngles_test",decimal = 3) # btkTools.smartWriter(finalAcqStatic, str( staticFilename[:-4]+"-pyCGM2modelled.c3d")) # LOGGER.logger.info("Static Calibration -----> Done") gaitFilename="gait1.c3d" mfpa = None reconstructFilenameLabelled = gaitFilename acqGait,error = cgm1.fitting(model,DATA_PATH, reconstructFilenameLabelled, None, markerDiameter, pointSuffix, mfpa, enums.MomentProjection.Proximal, displayCoordinateSystem=True) testingUtils.test_point(acqGait,"LPelvisAngles","LPelvisAngles_test",decimal = 3) testingUtils.test_point(acqGait,"RPelvisAngles","RPelvisAngles_test",decimal = 3) testingUtils.test_point(acqGait,"LHipAngles","LHipAngles_test",decimal = 3) testingUtils.test_point(acqGait,"LKneeAngles","LKneeAngles_test",decimal = 2) testingUtils.test_point(acqGait,"LAnkleAngles","LAnkleAngles_test",decimal = 2) testingUtils.test_point(acqGait,"RHipAngles","RHipAngles_test",decimal = 3) testingUtils.test_point(acqGait,"RKneeAngles","RKneeAngles_test",decimal = 2) testingUtils.test_point(acqGait,"RAnkleAngles","RAnkleAngles_test",decimal = 2) testingUtils.test_point(acqGait,"LFootProgressAngles","LFootProgressAngles_test",decimal = 2) testingUtils.test_point(acqGait,"RFootProgressAngles","RFootProgressAngles_test",decimal = 2) testingUtils.test_point(acqGait,"LThoraxAngles","LThoraxAngles_test",decimal = 2) testingUtils.test_point(acqGait,"RThoraxAngles","RThoraxAngles_test",decimal = 2) testingUtils.test_point(acqGait,"LSpineAngles","LSpineAngles_test",decimal = 2) testingUtils.test_point(acqGait,"RSpineAngles","RSpineAngles_test",decimal = 2) testingUtils.test_point(acqGait,"LShoulderAngles","LShoulderAngles_test",decimal = 2) testingUtils.test_point(acqGait,"RShoulderAngles","RShoulderAngles_test",decimal = 2) testingUtils.test_point(acqGait,"LElbowAngles","LElbowAngles_test",decimal = 2) testingUtils.test_point(acqGait,"RElbowAngles","RElbowAngles_test",decimal = 2) testingUtils.test_point(acqGait,"LHeadAngles","LHeadAngles_test",decimal = 3) testingUtils.test_point(acqGait,"RHeadAngles","RHeadAngles_test",decimal = 3) # testingUtils.test_point(acqGait,"LWristAngles","LWristAngles_test",decimal = 3) fail on z! # testingUtils.test_point(acqGait,"RWristAngles","RWristAngles_test",decimal = 3) fail on Z! # testingUtils.test_point(acqGait,"CentreOfMass","CentreOfMass_test",decimal = 3) btkTools.smartAppendPoint(acqGait,"headCOM_py",model.getSegment("Head").getComTrajectory()) btkTools.smartAppendPoint(acqGait,"ThoraxCOM_py",model.getSegment("Thorax").getComTrajectory()) btkTools.smartAppendPoint(acqGait,"LhumCOM_py",model.getSegment("Left UpperArm").getComTrajectory()) btkTools.smartAppendPoint(acqGait,"LforeCom_py",model.getSegment("Left ForeArm").getComTrajectory()) btkTools.smartAppendPoint(acqGait,"LhandCom_py",model.getSegment("Left Hand").getComTrajectory()) btkTools.smartAppendPoint(acqGait,"RhumCOM_py",model.getSegment("Right UpperArm").getComTrajectory()) btkTools.smartAppendPoint(acqGait,"RforeCom_py",model.getSegment("Right ForeArm").getComTrajectory()) btkTools.smartAppendPoint(acqGait,"RhandCom_py",model.getSegment("Right Hand").getComTrajectory())