def test_markAdoptedSets(): # Set's. fus = osim.FunctionSet() fu1 = osim.Constant() fus.adoptAndAppend(fu1) del fus del fu1 s = osim.ScaleSet() o = osim.Scale() s.adoptAndAppend(o) del s del o s = osim.ControlSet() o = osim.ControlLinear() s.adoptAndAppend(o) del s del o s = osim.BodyScaleSet() o = osim.BodyScale() s.adoptAndAppend(o) del s del o s = osim.PathPointSet() o = osim.PathPoint() s.adoptAndAppend(o) del s del o s = osim.IKTaskSet() o = osim.IKMarkerTask() s.adoptAndAppend(o) del s del o s = osim.MarkerPairSet() o = osim.MarkerPair() s.adoptAndAppend(o) del s del o s = osim.MeasurementSet() o = osim.Measurement() s.adoptAndAppend(o) del s del o s = osim.FrameSet() o = osim.Body() s.adoptAndAppend(o) del s del o s = osim.ForceSet() o = osim.CoordinateLimitForce() s.adoptAndAppend(o) del s del o s = osim.ForceSet() o = osim.SpringGeneralizedForce() s.append(o) s = osim.ProbeSet() o = osim.Umberger2010MuscleMetabolicsProbe() s.adoptAndAppend(o) del s del o a = osim.Model() body = osim.Body('body', 1.0, osim.Vec3(0, 0, 0), osim.Inertia(0, 0, 0) ) loc_in_parent = osim.Vec3(0, -0, 0) orient_in_parent = osim.Vec3(0, 0, 0) loc_in_body = osim.Vec3(0, 0, 0) orient_in_body = osim.Vec3(0, 0, 0) joint = osim.WeldJoint("weld_joint", a.getGround(), loc_in_parent, orient_in_parent, body, loc_in_body, orient_in_parent) a.addBody(body) constr = osim.ConstantDistanceConstraint() constr.setBody1ByName("ground") constr.setBody1PointLocation(osim.Vec3(0, 0, 0)) constr.setBody2ByName("body") constr.setBody2PointLocation(osim.Vec3(1, 0, 0)) constr.setConstantDistance(1) a.addConstraint(constr)
#Set generic model path genModelPath = '..\\..\\OpensimModel' #Set generic model file genModelFileName = genModelPath+'\\LaiArnold2017_refined_Fukuchi2017-running.osim' #Add model geometry to search paths osim.ModelVisualizer.addDirToGeometrySearchPaths(genModelPath+'\\Geometry') #Create the measurement set object for later use measurementSetObject = osim.OpenSimObject.makeObjectFromFile('..\\OpensimModel\\scaleMeasurementSet_Fukuchi2017-running.xml') measurementSet = osim.MeasurementSet.safeDownCast(measurementSetObject) #Set the scale task set scaleTaskSet = osim.IKTaskSet('..\\OpensimModel\\scaleTasks_Fukuchi2017-running.xml') #Set scale order scaleOrder = osim.ArrayStr() scaleOrder.set(0,'measurements') #Set IK task set ikTaskSet = osim.IKTaskSet('..\\OpensimModel\\ikTasks_Fukuchi2017-running.xml') #Set up a list of markers once flattened to keep #This mainly gets rid of the random ASY markers markersFlatList = ['L.ASIS_1','L.ASIS_2','L.ASIS_3', 'L.Heel.Bottom_1','L.Heel.Bottom_2','L.Heel.Bottom_3', 'L.Heel.Lateral_1','L.Heel.Lateral_2','L.Heel.Lateral_3', 'L.Heel.Top_1','L.Heel.Top_2','L.Heel.Top_3', 'L.Iliac.Crest_1','L.Iliac.Crest_2','L.Iliac.Crest_3',
def test_markAdoptedSets(): # Set's. fus = osim.FunctionSet() fu1 = osim.Constant() fus.adoptAndAppend(fu1) del fus del fu1 gs = osim.GeometrySet() dg = osim.DisplayGeometry() gs.adoptAndAppend(dg) del gs del dg s = osim.ScaleSet() o = osim.Scale() s.adoptAndAppend(o) del s del o s = osim.ForceSet() o = osim.BushingForce() s.adoptAndAppend(o) del s del o cs = osim.ControllerSet() csc = osim.PrescribedController() cs.adoptAndAppend(csc) del cs del csc s = osim.ContactGeometrySet() o = osim.ContactHalfSpace() s.adoptAndAppend(o) del s del o s = osim.AnalysisSet() o = osim.MuscleAnalysis() s.adoptAndAppend(o) del s del o s = osim.ControlSet() o = osim.ControlLinear() s.adoptAndAppend(o) del s del o s = osim.MarkerSet() o = osim.Marker() s.adoptAndAppend(o) del s del o s = osim.BodySet() o = osim.Body() s.adoptAndAppend(o) del s del o s = osim.BodyScaleSet() o = osim.BodyScale() s.adoptAndAppend(o) del s del o s = osim.CoordinateSet() o = osim.Coordinate() s.adoptAndAppend(o) del s del o s = osim.JointSet() o = osim.BallJoint() s.adoptAndAppend(o) del s del o s = osim.PathPointSet() o = osim.PathPoint() s.adoptAndAppend(o) del s del o s = osim.IKTaskSet() o = osim.IKMarkerTask() s.adoptAndAppend(o) del s del o s = osim.MarkerPairSet() o = osim.MarkerPair() s.adoptAndAppend(o) del s del o s = osim.MeasurementSet() o = osim.Measurement() s.adoptAndAppend(o) del s del o # TODO # s = osim.ProbeSet() # o = osim.Umberger2010MuscleMetabolicsProbe() # s.adoptAndAppend(o) # del s # del o s = osim.ConstraintSet() a = osim.Model() body = osim.Body('body', 1.0, osim.Vec3(0, 0, 0), osim.Inertia(0, 0, 0)) loc_in_parent = osim.Vec3(0, -0, 0) orient_in_parent = osim.Vec3(0, 0, 0) loc_in_body = osim.Vec3(0, 0, 0) orient_in_body = osim.Vec3(0, 0, 0) joint = osim.WeldJoint("weld_joint", a.getGroundBody(), loc_in_parent, orient_in_parent, body, loc_in_body, orient_in_parent) a.addBody(body) constr = osim.ConstantDistanceConstraint() constr.setBody1ByName("ground") constr.setBody1PointLocation(osim.Vec3(0, 0, 0)) constr.setBody2ByName("body") constr.setBody2PointLocation(osim.Vec3(1, 0, 0)) constr.setConstantDistance(1) s.adoptAndAppend(constr)
scaleTool = osim.ScaleTool() #Set participant mass (64.3kg) scaleTool.setSubjectMass(64.3) #Set generic model file genModelFileName = os.getcwd()+'\\pfjLoading_GenericOsimModel_LaiArnold.osim' scaleTool.getGenericModelMaker().setModelFileName(genModelFileName) #Set the measurement set measurementSetObject = osim.OpenSimObject.makeObjectFromFile('scaleMeasurementSet.xml') measurementSet = osim.MeasurementSet.safeDownCast(measurementSetObject) scaleTool.getModelScaler().setMeasurementSet(measurementSet) #Set scale tasks taskSet = osim.IKTaskSet('scaleTasks.xml') for k in range(0,taskSet.getSize()-1): scaleTool.getMarkerPlacer().getIKTaskSet().adoptAndAppend(taskSet.get(k)) #Set marker file #Add the virtual markers and create a new .trc file to use in scaling osimHelper.addVirtualMarkersStatic('static.trc','staticVirtualMarkers.trc') #Place in scale tool scaleTool.getMarkerPlacer().setMarkerFileName('staticVirtualMarkers.trc') scaleTool.getModelScaler().setMarkerFileName('staticVirtualMarkers.trc') #Set options scaleTool.getModelScaler().setPreserveMassDist(True) scaleOrder = osim.ArrayStr(); scaleOrder.set(0,'measurements')