OpenSim Moco  0.2.0
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
OpenSim::SmoothSphereHalfSpaceForce Class Reference
Inheritance diagram for OpenSim::SmoothSphereHalfSpaceForce:

Public Member Functions

 OpenSim_DECLARE_PROPERTY (stiffness, double, "The stiffness constant (i.e., plain strain modulus), " "default is 1 (N/m^2)")
 
 OpenSim_DECLARE_PROPERTY (dissipation, double, "The dissipation coefficient, default is 0 (s/m).")
 
 OpenSim_DECLARE_PROPERTY (static_friction, double, "The coefficient of static friction, default is 0.")
 
 OpenSim_DECLARE_PROPERTY (dynamic_friction, double, "The coefficient of dynamic friction, default is 0.")
 
 OpenSim_DECLARE_PROPERTY (viscous_friction, double, "The coefficient of viscous friction, default is 0.")
 
 OpenSim_DECLARE_PROPERTY (transition_velocity, double, "The transition velocity, default is 0.01 (m/s).")
 
 OpenSim_DECLARE_PROPERTY (constant_contact_force, double, "The constant that enforces non-null derivatives, " "default is 1e-5.")
 
 OpenSim_DECLARE_PROPERTY (hertz_smoothing, double, "The parameter that determines the smoothness of the transition " "of the tanh used to smooth the Hertz force. The larger the " "steeper the transition but the worse for optimization, " "default is 300.")
 
 OpenSim_DECLARE_PROPERTY (hunt_crossley_smoothing, double, "The parameter that determines the smoothness of the transition " "of the tanh used to smooth the Hunt-Crossley force. The larger " "the steeper the transition but the worse for optimization, " "default is 50.")
 
 OpenSim_DECLARE_PROPERTY (contact_sphere_radius, double, "The radius of the contact sphere.")
 
 OpenSim_DECLARE_PROPERTY (contact_sphere_location, SimTK::Vec3, "The location of the contact sphere in the sphere frame.")
 
 OpenSim_DECLARE_PROPERTY (contact_half_space_location, SimTK::Vec3, "The location of the contact half space in the half space frame, " "default is Vec3(0).")
 
 OpenSim_DECLARE_PROPERTY (contact_half_space_orientation, SimTK::Vec3, "The orientation of the contact half space in the half space " "frame (body-fixed XYZ Euler angles), default represents ground " "(0,0,-0.5*SimTK::Pi).")
 
 OpenSim_DECLARE_PROPERTY (force_visualization_radius, double, "The radius of the cylinder that visualizes contact " "forces generated by this force component. Default: 0.01 m")
 
 OpenSim_DECLARE_OPTIONAL_PROPERTY (force_visualization_scale_factor, double, "(Optional) The scale factor that determines the length of the " "cylinder that visualizes contact forces generated by this force " "component. The cylinder will be one meter long when the contact " "force magnitude is equal to this value. If this property is not " "specified, the total weight of the model is used " "as the scale factor.") OpenSim_DECLARE_UNNAMED_PROPERTY(Appearance
 
 OpenSim_DECLARE_SOCKET (sphere_frame, PhysicalFrame, "The body to which the contact sphere is attached.")
 
 OpenSim_DECLARE_SOCKET (half_space_frame, PhysicalFrame, "The body to which the contact half space is attached.")
 
 SmoothSphereHalfSpaceForce (const std::string &name, const Frame &contactSphereBodyFrame, SimTK::Vec3 contactSphereLocation, double contactSphereRadius, const Frame &contactHalfSpaceBodyFrame, SimTK::Vec3 contactHalfSpaceLocation, SimTK::Vec3 contactHalfSpaceOrientation)
 
SimTK::Transform getHalfSpaceTransformInHalfSpaceFrame () const
 
OpenSim::Array< std::string > getRecordLabels () const override
 Obtain names of the quantities (column labels) of the force values to be reported. More...
 
OpenSim::Array< double > getRecordValues (const SimTK::State &state) const override
 Obtain the values to be reported that correspond to the labels. More...
 

Public Attributes

Default appearance for this Geometry
 

Protected Member Functions

void extendAddToSystem (SimTK::MultibodySystem &system) const override
 Create a SimTK::Force which implements this Force.
 
void extendRealizeInstance (const SimTK::State &state) const override
 
void generateDecorations (bool fixed, const ModelDisplayHints &hints, const SimTK::State &state, SimTK::Array_< SimTK::DecorativeGeometry > &geometry) const override
 

Member Function Documentation

◆ getRecordLabels()

OpenSim::Array<std::string> OpenSim::SmoothSphereHalfSpaceForce::getRecordLabels ( ) const
override

Obtain names of the quantities (column labels) of the force values to be reported.

The order is the three forces and three torques applied on the sphere followed by the three forces and three torques applied on the half space. Forces and torques are expressed in the ground frame.

◆ getRecordValues()

OpenSim::Array<double> OpenSim::SmoothSphereHalfSpaceForce::getRecordValues ( const SimTK::State &  state) const
override

Obtain the values to be reported that correspond to the labels.

The values are expressed in the ground frame.


The documentation for this class was generated from the following file: