summaryrefslogtreecommitdiff
path: root/model
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2013-04-16 15:58:07 +0200
committerTobias Klauser <tklauser@distanz.ch>2013-04-16 15:58:07 +0200
commit04d88711816f8ddd994b05e818919039402664c3 (patch)
tree296b81cc0cad8511f682a9895554102b144d9906 /model
parent2e820c0ab42f43dcd2ddc5d6596782783a083396 (diff)
Add SimpleLeg model
Diffstat (limited to 'model')
-rw-r--r--model/SimpleLeg.osim469
1 files changed, 469 insertions, 0 deletions
diff --git a/model/SimpleLeg.osim b/model/SimpleLeg.osim
new file mode 100644
index 0000000..b7d8518
--- /dev/null
+++ b/model/SimpleLeg.osim
@@ -0,0 +1,469 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<OpenSimDocument Version="30000">
+ <Model name="SimpleLeg">
+ <!--See the credits section below for information about this model's authors, data sources, intended uses, and more.
+ See the publications section for the paper(s) you should cite when using this model. Do not remove either section if you modify or add to this model.
+ If you are this model's author(s), add or update the credits and publications sections before distributing your model.-->
+ <credits>Frank Anderson, Peter Loan, Ayman Habib, Ajay Seth, Michael Sherman</credits>
+ <publications>Unassigned</publications>
+ <length_units>meters</length_units>
+ <force_units>N</force_units>
+ <!--Acceleration due to gravity.-->
+ <gravity> 0 -9.80665 0</gravity>
+ <!--Bodies in the model.-->
+ <BodySet>
+ <objects>
+ <Body name="ground">
+ <mass>0</mass>
+ <mass_center> 0 0 0</mass_center>
+ <inertia_xx>1</inertia_xx>
+ <inertia_yy>1</inertia_yy>
+ <inertia_zz>1</inertia_zz>
+ <inertia_xy>0</inertia_xy>
+ <inertia_xz>0</inertia_xz>
+ <inertia_yz>0</inertia_yz>
+ <!--Joint that connects this body with the parent body.-->
+ <Joint />
+ <VisibleObject>
+ <!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
+ <GeometrySet>
+ <objects />
+ <groups />
+ </GeometrySet>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Whether to show a coordinate frame-->
+ <show_axes>false</show_axes>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
+ <display_preference>4</display_preference>
+ </VisibleObject>
+ <WrapObjectSet>
+ <objects />
+ <groups />
+ </WrapObjectSet>
+ </Body>
+ <Body name="pelvis">
+ <mass>11.777</mass>
+ <mass_center> -0.0707 0 0</mass_center>
+ <inertia_xx>0.1028</inertia_xx>
+ <inertia_yy>0.0871</inertia_yy>
+ <inertia_zz>0.0579</inertia_zz>
+ <inertia_xy>0</inertia_xy>
+ <inertia_xz>0</inertia_xz>
+ <inertia_yz>0</inertia_yz>
+ <!--Joint that connects this body with the parent body.-->
+ <Joint>
+ <WeldJoint name="ground_pelvis">
+ <!--Name of the parent body to which this joint connects its owner body.-->
+ <parent_body>ground</parent_body>
+ <!--Location of the joint in the parent body specified in the parent reference frame. Default is (0,0,0).-->
+ <location_in_parent>0 0 0</location_in_parent>
+ <!--Orientation of the joint in the parent body specified in the parent reference frame. Euler XYZ body-fixed rotation angles are used to express the orientation. Default is (0,0,0).-->
+ <orientation_in_parent>0 0 0</orientation_in_parent>
+ <!--Location of the joint in the child body specified in the child reference frame. For SIMM models, this vector is always the zero vector (i.e., the body reference frame coincides with the joint). -->
+ <location>0 0 0</location>
+ <!--Orientation of the joint in the owing body specified in the owning body reference frame. Euler XYZ body-fixed rotation angles are used to express the orientation. -->
+ <orientation>0 0 0</orientation>
+ <!--Set holding the generalized coordinates (q's) that parmeterize this joint.-->
+ <CoordinateSet>
+ <objects />
+ <groups />
+ </CoordinateSet>
+ <!--Whether the joint transform defines parent->child or child->parent.-->
+ <reverse>false</reverse>
+ </WeldJoint>
+ </Joint>
+ <VisibleObject>
+ <!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
+ <GeometrySet>
+ <objects>
+ <DisplayGeometry>
+ <!--Name of geometry file .vtp, .stl, .obj-->
+ <geometry_file>pelvis.vtp</geometry_file>
+ <!--Color used to display the geometry when visible-->
+ <color> 1 1 1</color>
+ <!--Name of texture file .jpg, .bmp-->
+ <texture_file />
+ <!--in body transform specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
+ <display_preference>4</display_preference>
+ <!--Display opacity between 0.0 and 1.0-->
+ <opacity>1</opacity>
+ </DisplayGeometry>
+ <DisplayGeometry>
+ <!--Name of geometry file .vtp, .stl, .obj-->
+ <geometry_file>l_pelvis.vtp</geometry_file>
+ <!--Color used to display the geometry when visible-->
+ <color> 1 1 1</color>
+ <!--Name of texture file .jpg, .bmp-->
+ <texture_file />
+ <!--in body transform specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
+ <display_preference>4</display_preference>
+ <!--Display opacity between 0.0 and 1.0-->
+ <opacity>1</opacity>
+ </DisplayGeometry>
+ <DisplayGeometry>
+ <!--Name of geometry file .vtp, .stl, .obj-->
+ <geometry_file>sacrum.vtp</geometry_file>
+ <!--Color used to display the geometry when visible-->
+ <color> 1 1 1</color>
+ <!--Name of texture file .jpg, .bmp-->
+ <texture_file />
+ <!--in body transform specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
+ <display_preference>4</display_preference>
+ <!--Display opacity between 0.0 and 1.0-->
+ <opacity>1</opacity>
+ </DisplayGeometry>
+ </objects>
+ <groups />
+ </GeometrySet>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Whether to show a coordinate frame-->
+ <show_axes>false</show_axes>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
+ <display_preference>4</display_preference>
+ </VisibleObject>
+ <WrapObjectSet>
+ <objects />
+ <groups />
+ </WrapObjectSet>
+ </Body>
+ <Body name="femur_r">
+ <mass>9.3014</mass>
+ <mass_center> 0 -0.17 0</mass_center>
+ <inertia_xx>0.1339</inertia_xx>
+ <inertia_yy>0.0351</inertia_yy>
+ <inertia_zz>0.1412</inertia_zz>
+ <inertia_xy>0</inertia_xy>
+ <inertia_xz>0</inertia_xz>
+ <inertia_yz>0</inertia_yz>
+ <!--Joint that connects this body with the parent body.-->
+ <Joint>
+ <PinJoint name="hip_r">
+ <!--Name of the parent body to which this joint connects its owner body.-->
+ <parent_body>pelvis</parent_body>
+ <!--Location of the joint in the parent body specified in the parent reference frame. Default is (0,0,0).-->
+ <location_in_parent>-0.0707 -0.0661 0.0835</location_in_parent>
+ <!--Orientation of the joint in the parent body specified in the parent reference frame. Euler XYZ body-fixed rotation angles are used to express the orientation. Default is (0,0,0).-->
+ <orientation_in_parent>0 0 0</orientation_in_parent>
+ <!--Location of the joint in the child body specified in the child reference frame. For SIMM models, this vector is always the zero vector (i.e., the body reference frame coincides with the joint). -->
+ <location>0 0 0</location>
+ <!--Orientation of the joint in the owing body specified in the owning body reference frame. Euler XYZ body-fixed rotation angles are used to express the orientation. -->
+ <orientation>0 0 0</orientation>
+ <!--Set holding the generalized coordinates (q's) that parmeterize this joint.-->
+ <CoordinateSet>
+ <objects>
+ <Coordinate name="hip_r_coord_0">
+ <!--Coordinate can describe rotational, translational, or coupled motion. Defaults to rotational.-->
+ <motion_type>rotational</motion_type>
+ <!--The minimum and maximum values that the coordinate can range between. Rotational coordinate range in radians and Translational in meters.-->
+ <range>-2.0943951023932 2.0943951023932</range>
+ </Coordinate>
+ </objects>
+ <groups />
+ </CoordinateSet>
+ <!--Whether the joint transform defines parent->child or child->parent.-->
+ <reverse>false</reverse>
+ </PinJoint>
+ </Joint>
+ <VisibleObject>
+ <!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
+ <GeometrySet>
+ <objects>
+ <DisplayGeometry>
+ <!--Name of geometry file .vtp, .stl, .obj-->
+ <geometry_file>femur.vtp</geometry_file>
+ <!--Color used to display the geometry when visible-->
+ <color> 1 1 1</color>
+ <!--Name of texture file .jpg, .bmp-->
+ <texture_file />
+ <!--in body transform specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
+ <display_preference>4</display_preference>
+ <!--Display opacity between 0.0 and 1.0-->
+ <opacity>1</opacity>
+ </DisplayGeometry>
+ </objects>
+ <groups />
+ </GeometrySet>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Whether to show a coordinate frame-->
+ <show_axes>false</show_axes>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
+ <display_preference>4</display_preference>
+ </VisibleObject>
+ <WrapObjectSet>
+ <objects />
+ <groups />
+ </WrapObjectSet>
+ </Body>
+ <Body name="tibia_r">
+ <mass>3.7075</mass>
+ <mass_center> 0 -0.1867 0</mass_center>
+ <inertia_xx>0.0504</inertia_xx>
+ <inertia_yy>0.0051</inertia_yy>
+ <inertia_zz>0.0511</inertia_zz>
+ <inertia_xy>0</inertia_xy>
+ <inertia_xz>0</inertia_xz>
+ <inertia_yz>0</inertia_yz>
+ <!--Joint that connects this body with the parent body.-->
+ <Joint>
+ <PinJoint name="knee_r">
+ <!--Name of the parent body to which this joint connects its owner body.-->
+ <parent_body>femur_r</parent_body>
+ <!--Location of the joint in the parent body specified in the parent reference frame. Default is (0,0,0).-->
+ <location_in_parent>0 -0.392 0</location_in_parent>
+ <!--Orientation of the joint in the parent body specified in the parent reference frame. Euler XYZ body-fixed rotation angles are used to express the orientation. Default is (0,0,0).-->
+ <orientation_in_parent>0 0 0</orientation_in_parent>
+ <!--Location of the joint in the child body specified in the child reference frame. For SIMM models, this vector is always the zero vector (i.e., the body reference frame coincides with the joint). -->
+ <location>0 0 0</location>
+ <!--Orientation of the joint in the owing body specified in the owning body reference frame. Euler XYZ body-fixed rotation angles are used to express the orientation. -->
+ <orientation>0 0 0</orientation>
+ <!--Set holding the generalized coordinates (q's) that parmeterize this joint.-->
+ <CoordinateSet>
+ <objects>
+ <Coordinate name="knee_r_coord_0">
+ <!--Coordinate can describe rotational, translational, or coupled motion. Defaults to rotational.-->
+ <motion_type>rotational</motion_type>
+ <!--The minimum and maximum values that the coordinate can range between. Rotational coordinate range in radians and Translational in meters.-->
+ <range>-0.785398163397448 0.17</range>
+ </Coordinate>
+ </objects>
+ <groups />
+ </CoordinateSet>
+ <!--Whether the joint transform defines parent->child or child->parent.-->
+ <reverse>false</reverse>
+ </PinJoint>
+ </Joint>
+ <VisibleObject>
+ <!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
+ <GeometrySet>
+ <objects>
+ <DisplayGeometry>
+ <!--Name of geometry file .vtp, .stl, .obj-->
+ <geometry_file>tibia.vtp</geometry_file>
+ <!--Color used to display the geometry when visible-->
+ <color> 1 1 1</color>
+ <!--Name of texture file .jpg, .bmp-->
+ <texture_file />
+ <!--in body transform specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
+ <display_preference>4</display_preference>
+ <!--Display opacity between 0.0 and 1.0-->
+ <opacity>1</opacity>
+ </DisplayGeometry>
+ </objects>
+ <groups />
+ </GeometrySet>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Whether to show a coordinate frame-->
+ <show_axes>false</show_axes>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
+ <display_preference>4</display_preference>
+ </VisibleObject>
+ <WrapObjectSet>
+ <objects />
+ <groups />
+ </WrapObjectSet>
+ </Body>
+ </objects>
+ <groups />
+ </BodySet>
+ <!--Constraints in the model.-->
+ <ConstraintSet>
+ <objects />
+ <groups />
+ </ConstraintSet>
+ <!--Forces in the model.-->
+ <ForceSet>
+ <objects>
+ <Thelen2003Muscle name="rectfem_r">
+ <!--Minimum allowed value for control signal. Used primarily when solving for control values.-->
+ <min_control>0</min_control>
+ <!--Maximum allowed value for control signal. Used primarily when solving for control values.-->
+ <max_control>1</max_control>
+ <!--The set of points defining the path of the muscle.-->
+ <GeometryPath>
+ <PathPointSet>
+ <objects>
+ <PathPoint name="rectfem_r-p1">
+ <location> -0.03 -0.031 0.097</location>
+ <body>pelvis</body>
+ </PathPoint>
+ <PathPoint name="bifemlh_r-p2">
+ <location> 0.033 -0.403 0.002</location>
+ <body>femur_r</body>
+ </PathPoint>
+ </objects>
+ <groups />
+ </PathPointSet>
+ <VisibleObject>
+ <!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
+ <GeometrySet>
+ <objects />
+ <groups />
+ </GeometrySet>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Whether to show a coordinate frame-->
+ <show_axes>false</show_axes>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
+ <display_preference>4</display_preference>
+ </VisibleObject>
+ <PathWrapSet>
+ <objects />
+ <groups />
+ </PathWrapSet>
+ </GeometryPath>
+ <!--Maximum isometric force that the fibers can generate-->
+ <max_isometric_force>1000</max_isometric_force>
+ <!--Optimal length of the muscle fibers-->
+ <optimal_fiber_length>0.1</optimal_fiber_length>
+ <!--Resting length of the tendon-->
+ <tendon_slack_length>0.2</tendon_slack_length>
+ <!--Angle between tendon and fibers at optimal fiber length expressed in radians-->
+ <pennation_angle_at_optimal>0</pennation_angle_at_optimal>
+ <!--Assumed activation level if none is assigned.-->
+ <default_activation>0.01</default_activation>
+ <!--Assumed fiber length, unless otherwise assigned.-->
+ <default_fiber_length>0.1</default_fiber_length>
+ <!--time constant for ramping up muscle activation-->
+ <activation_time_constant>0.01</activation_time_constant>
+ <!--time constant for ramping down of muscle activation-->
+ <deactivation_time_constant>0.04</deactivation_time_constant>
+ </Thelen2003Muscle>
+ <Thelen2003Muscle name="bifemlh_r">
+ <!--Minimum allowed value for control signal. Used primarily when solving for control values.-->
+ <min_control>0</min_control>
+ <!--Maximum allowed value for control signal. Used primarily when solving for control values.-->
+ <max_control>1</max_control>
+ <!--The set of points defining the path of the muscle.-->
+ <GeometryPath>
+ <PathPointSet>
+ <objects>
+ <PathPoint name="bifemlh_r-p1">
+ <location> -0.126 -0.103 0.069</location>
+ <body>pelvis</body>
+ </PathPoint>
+ <PathPoint name="bifemlh_r-p2">
+ <location> -0.03 -0.036 0.029</location>
+ <body>tibia_r</body>
+ </PathPoint>
+ <PathPoint name="bifemlh_r-p2">
+ <location> -0.023 -0.056 0.034</location>
+ <body>tibia_r</body>
+ </PathPoint>
+ </objects>
+ <groups />
+ </PathPointSet>
+ <VisibleObject>
+ <!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
+ <GeometrySet>
+ <objects />
+ <groups />
+ </GeometrySet>
+ <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
+ <scale_factors> 1 1 1</scale_factors>
+ <!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
+ <transform> -0 0 -0 0 0 0</transform>
+ <!--Whether to show a coordinate frame-->
+ <show_axes>false</show_axes>
+ <!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
+ <display_preference>4</display_preference>
+ </VisibleObject>
+ <PathWrapSet>
+ <objects />
+ <groups />
+ </PathWrapSet>
+ </GeometryPath>
+ <!--Maximum isometric force that the fibers can generate-->
+ <max_isometric_force>1000</max_isometric_force>
+ <!--Optimal length of the muscle fibers-->
+ <optimal_fiber_length>0.1</optimal_fiber_length>
+ <!--Resting length of the tendon-->
+ <tendon_slack_length>0.2</tendon_slack_length>
+ <!--Angle between tendon and fibers at optimal fiber length expressed in radians-->
+ <pennation_angle_at_optimal>0</pennation_angle_at_optimal>
+ <!--Assumed activation level if none is assigned.-->
+ <default_activation>0.01</default_activation>
+ <!--Assumed fiber length, unless otherwise assigned.-->
+ <default_fiber_length>0.1</default_fiber_length>
+ <!--time constant for ramping up muscle activation-->
+ <activation_time_constant>0.01</activation_time_constant>
+ <!--time constant for ramping down of muscle activation-->
+ <deactivation_time_constant>0.04</deactivation_time_constant>
+ </Thelen2003Muscle>
+ </objects>
+ <groups />
+ </ForceSet>
+ <!--Markers in the model.-->
+ <MarkerSet>
+ <objects />
+ <groups />
+ </MarkerSet>
+ <!--ContactGeometries in the model.-->
+ <ContactGeometrySet>
+ <objects>
+ <ContactHalfSpace name="floor">
+ <!--Body name to connect the contact geometry to-->
+ <body_name>ground</body_name>
+ <!--Location of geometry center in the body frame-->
+ <location>0 0 0</location>
+ <!--Orientation of geometry in the body frame-->
+ <orientation>0 0 -1.5707963267949</orientation>
+ </ContactHalfSpace>
+ </objects>
+ <groups />
+ </ContactGeometrySet>
+ <!--Controllers in the model.-->
+ <ControllerSet name="Controllers">
+ <objects>
+ <SimpleLegController>
+ <!--The list of model actuators that this controller will control.The keyword ALL indicates the controller will controll all the acuators in the model-->
+ <actuator_list>rectfem_r bifemlh_r</actuator_list>
+ </SimpleLegController>
+ </objects>
+ <groups />
+ </ControllerSet>
+ <!--Additional components in the model.-->
+ <ComponentSet name="MiscComponents">
+ <objects />
+ <groups />
+ </ComponentSet>
+ <!--Probes in the model.-->
+ <ProbeSet>
+ <objects />
+ <groups />
+ </ProbeSet>
+ </Model>
+</OpenSimDocument>