<?xml version="1.0" encoding="UTF-8" ?>
<OpenSimDocument Version="30000">
    <Model name="Tug_of_War_Millard">
        <!--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>Author: The OpenSim Teams License: Creative Commons (CCBY 3.0). You are free to distribute, remix, tweak, and build upon this work, even commercially, as long as you credit us for the original creation. http://creativecommons.org/licenses/by/3.0/</credits>
        <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>0</inertia_xx>
                    <inertia_yy>0</inertia_yy>
                    <inertia_zz>0</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>
                                <DisplayGeometry>
                                    <!--Name of geometry file .vtp, .stl, .obj-->
                                    <geometry_file>checkered_floor.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>block.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.05 0.35</transform>
                                    <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
                                    <scale_factors> 5 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>block.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.05 -0.35</transform>
                                    <!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
                                    <scale_factors> 5 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="block">
                    <mass>20</mass>
                    <mass_center> 0 0 0</mass_center>
                    <inertia_xx>0.133333333333333</inertia_xx>
                    <inertia_yy>0.133333333333333</inertia_yy>
                    <inertia_zz>0.133333333333333</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>
                        <SliderJoint name="ground_block">
                            <!--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 -1.5707963267949 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.05 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 -1.5707963267949 0</orientation>
                            <!--Set holding the generalized coordinates (q's) that parmeterize this joint.-->
                            <CoordinateSet>
                                <objects>
                                    <Coordinate name="block_tz">
                                        <!--Coordinate can describe rotational, translational, or coupled motion. Defaults to rotational.-->
                                        <motion_type>translational</motion_type>
                                        <!--The value of this coordinate before any value has been set. Rotational coordinate value is in radians and Translational in meters.-->
                                        <default_value>0</default_value>
                                        <!--The speed value of this coordinate before any value has been set. Rotational coordinate value is in rad/s and Translational in m/s.-->
                                        <default_speed_value>0</default_speed_value>
                                        <!--The minimum and maximum values that the coordinate can range between. Rotational coordinate range in radians and Translational in meters.-->
                                        <range>-0.3 0.3</range>
                                        <!--Flag indicating whether or not the values of the coordinates should be limited to the range, above.-->
                                        <clamped>true</clamped>
                                        <!--Flag indicating whether or not the values of the coordinates should be constrained to the current (e.g. default) value, above.-->
                                        <locked>false</locked>
                                        <!--If specified, the coordinate can be prescribed by a function of time. It can be any OpenSim Function with valid second order derivatives.-->
                                        <prescribed_function />
                                        <!--Flag indicating whether or not the values of the coordinates should be prescribed according to the function above. It is ignored if the no prescribed function is specified.-->
                                        <prescribed>false</prescribed>
                                    </Coordinate>
                                </objects>
                                <groups />
                            </CoordinateSet>
                            <!--Whether the joint transform defines parent->child or child->parent.-->
                            <reverse>false</reverse>
                        </SliderJoint>
                    </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>block.vtp</geometry_file>
                                    <!--Color used to display the geometry when visible-->
                                    <color> 0.2 0.5 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>1</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>
                <Millard2012EquilibriumMuscle name="RightMuscle"> 
                    <!--Flag indicating whether the force is disabled or not. Disabled means that the force is not active in subsequent dynamics realizations.--> 
                    <isDisabled>false</isDisabled> 
                    <!--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="muscle1-point1">
									<location> 0 0.05 -0.35</location>
									<body>ground</body>
								</PathPoint>
								<PathPoint name="muscle1-point2">
									<location> 0 0 -0.05</location>
									<body>block</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> 
                    <!--The maximum force this actuator can produce.--> 
                    <optimal_force>1</optimal_force> 
                    <!--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> 
                    <!--Maximum contraction velocity of the fibers, in optimal fiberlengths/second--> 
                    <max_contraction_velocity>10</max_contraction_velocity> 
                    <!--Compute muscle dynamics ignoring tendon compliance. Tendon is assumed to be rigid.--> 
                    <ignore_tendon_compliance>false</ignore_tendon_compliance> 
                    <!--Compute muscle dynamics ignoring activation dynamics. Activation is equivalent to excitation.-->
                    <ignore_activation_dynamics>false</ignore_activation_dynamics> 
                    <!--assumed initial activation level if none is assigned.--> 
                    <default_activation>1</default_activation> 
                    <!--assumed initial fiber length if none is assigned.--> 
                    <default_fiber_length>0.1</default_fiber_length> 
                    <!--Activation time constant (in seconds).-->
                    <activation_time_constant>0.01</activation_time_constant>
                    <!--Deactivation time constant (in seconds).-->
                    <deactivation_time_constant>0.04</deactivation_time_constant>
                    <!--active force length curve--> 
                    <ActiveForceLengthCurve> 
                        <!--normalized fiber length which the steep ascending limb starts--> 
                        <min_norm_active_fiber_length>0.4441</min_norm_active_fiber_length> 
                        <!--normalized fiber length which the steep ascending limb transitions to the shallow ascending limb--> <transition_norm_fiber_length>0.6259</transition_norm_fiber_length> 
                        <!--normalized fiber length which the descending limb ends--> 
                        <max_norm_active_fiber_length>1.8123</max_norm_active_fiber_length> 
                        <!--slope of the shallow ascending limb--> 
                        <shallow_ascending_slope>0.8616</shallow_ascending_slope> 
                        <!--minimum value of the active force length curve--> 
                        <minimum_value>0</minimum_value> 
                    </ActiveForceLengthCurve> 
                    <!--force velocity inverse curve--> 
                    <ForceVelocityInverseCurve> 
                        <!--curve slope at the maximum normalized concentric contraction velocity (-1)--> 
                        <min_concentric_slope>0.1</min_concentric_slope> 
                        <!--curve slope at isometric (normalized fiber velocity of 0)--> 
                        <isometric_slope>5</isometric_slope> 
                        <!--curve slope at the maximum normalized eccentric contraction velocity (1)--> 
                        <min_eccentric_slope>0.1</min_eccentric_slope> 
                        <!--curve value at the maximum normalized eccentric contraction velocity--> <max_eccentric_velocity_force_multiplier>1.4</max_eccentric_velocity_force_multiplier> 
                        <!--concentric curve bend, from linear to maximum bend (0-1)--> 
                        <concentric_curviness>0.5</concentric_curviness> 
                        <!--eccentric curve bend, from linear to maximum bend (0-1)--> 
                        <eccentric_curviness>0.9</eccentric_curviness> 
                    </ForceVelocityInverseCurve> 
                    <!--fiber force length curve--> 
                    <FiberForceLengthCurve> 
                        <!--Fiber strain at zero force--> 
                        <strain_at_zero_force>0</strain_at_zero_force> 
                        <!--Fiber strain at a tension of 1 normalized force--> 
                        <strain_at_one_norm_force>0.6</strain_at_one_norm_force> 
                        <!--Fiber stiffness at a tension of 1 normalized force--> <stiffness_at_one_norm_force></stiffness_at_one_norm_force> 
                        <!--Fiber curve bend, from linear to maximum bend (0-1)--> 
                        <curviness></curviness> 
                    </FiberForceLengthCurve> 
                    <!--Tendon force length curve--> 
                    <TendonForceLengthCurve> 
                        <!--tendon strain at a tension of 1 normalized force--> 
                        <strain_at_one_norm_force>0.049</strain_at_one_norm_force> 
                        <!--tendon stiffness at a tension of 1 normalized force--> 
                        <stiffness_at_one_norm_force></stiffness_at_one_norm_force> 
                        <!--normalized force developed at the end of the toe region--> 
                        <norm_force_at_toe_end></norm_force_at_toe_end> 
                        <!--tendon curve bend, from linear to maximum bend (0-1)--> 
                        <curviness></curviness> 
                    </TendonForceLengthCurve> 
                </Millard2012EquilibriumMuscle> 
                <Millard2012EquilibriumMuscle name="LeftMuscle"> 
                    <!--Flag indicating whether the force is disabled or not. Disabled means that the force is not active in subsequent dynamics realizations.--> 
                    <isDisabled>false</isDisabled> 
                    <!--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="muscle2-point1">
									<location> 0 0.05 0.35</location>
									<body>ground</body>
								</PathPoint>
								<PathPoint name="muscle2-point2">
									<location> 0 0 0.05</location>
									<body>block</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> 
                    <!--The maximum force this actuator can produce.--> 
                    <optimal_force>1</optimal_force> 
                    <!--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> 
                    <!--Maximum contraction velocity of the fibers, in optimal fiberlengths/second--> 
                    <max_contraction_velocity>10</max_contraction_velocity> 
                    <!--Compute muscle dynamics ignoring tendon compliance. Tendon is assumed to be rigid.--> 
                    <ignore_tendon_compliance>false</ignore_tendon_compliance> 
                    <!--Compute muscle dynamics ignoring activation dynamics. Activation is equivalent to excitation.-->
                    <ignore_activation_dynamics>false</ignore_activation_dynamics> 
                    <!--assumed initial activation level if none is assigned.--> 
                    <default_activation>1</default_activation> 
                    <!--assumed initial fiber length if none is assigned.--> 
                    <default_fiber_length>0.1</default_fiber_length> 
                    <!--Activation time constant (in seconds).-->
                    <activation_time_constant>0.01</activation_time_constant>
                    <!--Deactivation time constant (in seconds).-->
                    <deactivation_time_constant>0.04</deactivation_time_constant>
                    <!--active force length curve--> 
                    <ActiveForceLengthCurve> 
                        <!--normalized fiber length which the steep ascending limb starts--> 
                        <min_norm_active_fiber_length>0.4441</min_norm_active_fiber_length> 
                        <!--normalized fiber length which the steep ascending limb transitions to the shallow ascending limb--> <transition_norm_fiber_length>0.6259</transition_norm_fiber_length> 
                        <!--normalized fiber length which the descending limb ends--> 
                        <max_norm_active_fiber_length>1.8123</max_norm_active_fiber_length> 
                        <!--slope of the shallow ascending limb--> 
                        <shallow_ascending_slope>0.8616</shallow_ascending_slope> 
                        <!--minimum value of the active force length curve--> 
                        <minimum_value>0</minimum_value> 
                    </ActiveForceLengthCurve> 
                    <!--force velocity inverse curve--> 
                    <ForceVelocityInverseCurve> 
                        <!--curve slope at the maximum normalized concentric contraction velocity (-1)--> 
                        <min_concentric_slope>0.1</min_concentric_slope> 
                        <!--curve slope at isometric (normalized fiber velocity of 0)--> 
                        <isometric_slope>5</isometric_slope> 
                        <!--curve slope at the maximum normalized eccentric contraction velocity (1)--> 
                        <min_eccentric_slope>0.1</min_eccentric_slope> 
                        <!--curve value at the maximum normalized eccentric contraction velocity--> <max_eccentric_velocity_force_multiplier>1.4</max_eccentric_velocity_force_multiplier> 
                        <!--concentric curve bend, from linear to maximum bend (0-1)--> 
                        <concentric_curviness>0.5</concentric_curviness> 
                        <!--eccentric curve bend, from linear to maximum bend (0-1)--> 
                        <eccentric_curviness>0.9</eccentric_curviness> 
                    </ForceVelocityInverseCurve> 
                        <!--fiber force length curve--> 
                        <FiberForceLengthCurve> 
                        <!--Fiber strain at zero force--> 
                        <strain_at_zero_force>0</strain_at_zero_force> 
                        <!--Fiber strain at a tension of 1 normalized force--> 
                        <strain_at_one_norm_force>0.6</strain_at_one_norm_force> 
                        <!--Fiber stiffness at a tension of 1 normalized force--> <stiffness_at_one_norm_force></stiffness_at_one_norm_force> 
                        <!--Fiber curve bend, from linear to maximum bend (0-1)--> 
                        <curviness></curviness> 
                    </FiberForceLengthCurve> 
                    <!--Tendon force length curve--> 
                    <TendonForceLengthCurve> 
                        <!--tendon strain at a tension of 1 normalized force--> 
                        <strain_at_one_norm_force>0.049</strain_at_one_norm_force> 
                        <!--tendon stiffness at a tension of 1 normalized force--> 
                        <stiffness_at_one_norm_force></stiffness_at_one_norm_force> 
                        <!--normalized force developed at the end of the toe region--> 
                        <norm_force_at_toe_end></norm_force_at_toe_end> 
                        <!--tendon curve bend, from linear to maximum bend (0-1)--> 
                        <curviness></curviness> 
                    </TendonForceLengthCurve> 
                </Millard2012EquilibriumMuscle>                
            </objects>
            <groups />
        </ForceSet>
        <!--Markers in the model.-->
        <MarkerSet>
            <objects />
            <groups />
        </MarkerSet>
        <!--ContactGeometries  in the model.-->
        <ContactGeometrySet>
            <objects />
            <groups />
        </ContactGeometrySet>
        <!--Controllers in the model.-->
        <ControllerSet name="Controllers">
            <objects />
            <groups />
        </ControllerSet>
        <!--Additional components in the model.-->
        <ComponentSet name="MiscComponents">
            <objects />
            <groups />
        </ComponentSet>
        <!--Probes in the model.-->
        <ProbeSet>
            <objects />
            <groups />
        </ProbeSet>
    </Model>
</OpenSimDocument>
