Moby
Public Member Functions | List of all members
Moby::ScrewJoint Class Reference

Defines an actuated screw (helical) joint. More...

#include <ScrewJoint.h>

Inheritance diagram for Moby::ScrewJoint:
Moby::Joint Moby::Visualizable Moby::Base

Public Member Functions

 ScrewJoint ()
 Initializes the joint. More...
 
 ScrewJoint (boost::weak_ptr< RigidBody > inboard, boost::weak_ptr< RigidBody > outboard)
 Initializes the joint with the specified inboard and outboard links. More...
 
const Ravelin::Vector3d & get_axis () const
 
void set_axis (const Ravelin::Vector3d &axis)
 Sets the global axis for this joint. More...
 
virtual void update_spatial_axes ()
 Updates the spatial axis for this joint.
 
virtual void determine_q (VectorN &q)
 Determines (and sets) the value of Q from the axis and the inboard link and outboard link transforms.
 
virtual boost::shared_ptr
< const Ravelin::Pose3d > & 
get_induced_pose ()
 Gets the (local) transform for this joint.
 
virtual const std::vector
< Ravelin::SVelocityd > & 
get_spatial_axes_dot ()
 Gets the derivative for the spatial axes for this joint.
 
virtual void load_from_xml (boost::shared_ptr< const XMLTree > node, std::map< std::string, BasePtr > &id_map)
 Implements Base::load_from_xml()
 
virtual void save_to_xml (XMLTreePtr node, std::list< boost::shared_ptr< const Base > > &shared_objects) const
 Implements Base::save_to_xml()
 
virtual unsigned num_dof () const
 
virtual void evaluate_constraints (double C[])
 Evaluates the constraint equations.
 
double get_pitch () const
 Gets the pitch of the joint.
 
virtual bool is_sngular_config () const
 Screw joint can never be in a singular configuration.
 
void set_pitch (double pitch)
 Sets the pitch of the joint.
 
- Public Member Functions inherited from Moby::Joint
 Joint ()
 Initializes the joint. More...
 
 Joint (boost::weak_ptr< RigidBody > inboard, boost::weak_ptr< RigidBody > outboard)
 Initializes the joint with the specified inboard and outboard links. More...
 
void set_location (const Point3d &p, RigidBodyPtr inboard, RigidBodyPtr outboard)
 Sets the location of this joint with specified inboard and outboard links.
 
Ravelin::VectorNd & get_scaled_force (Ravelin::VectorNd &f)
 Gets the scaled actuator forces. More...
 
virtual void set_inboard_link (RigidBodyPtr link, bool update_pose)
 Sets the pointer to the inboard link for this joint (and updates the spatial axes, if the outboard link has been set)
 
virtual void set_outboard_link (RigidBodyPtr link, bool update_pose)
 Sets the pointer to the outboard link for this joint. More...
 
void set_articulated_body (ArticulatedBodyPtr abody)
 Sets the articulated body corresponding to this body. More...
 
ArticulatedBodyPtr get_articulated_body ()
 Gets the articulated body corresponding to this body. More...
 
RigidBodyPtr get_inboard_link () const
 Gets the inboard link for this joint.
 
RigidBodyPtr get_outboard_link () const
 Gets the outboard link for this joint.
 
- Public Member Functions inherited from Moby::Visualizable
 Visualizable (const Visualizable *v)
 
virtual void update_visualization ()
 Updates the visualization using the appropriate transform. More...
 
void set_visualization_relative_pose (const Ravelin::Pose3d &P)
 Sets the visualization relative pose.
 
virtual void set_visualization_data (osg::Node *vdata)
 Sets the visualization data from a node.
 
virtual void set_visualization_data (OSGGroupWrapperPtr vdata)
 Sets the visualization data from a OSGGroupWrapper.
 
osg::Group * get_visualization_data () const
 Gets the visualization data for this object.
 
boost::shared_ptr< const
Ravelin::Pose3d > 
get_visualization_pose ()
 Gets the pose for this visualizable object.
 
- Public Member Functions inherited from Moby::Base
 Base (const Base *b)
 

Additional Inherited Members

- Public Types inherited from Moby::Joint
enum  ConstraintType { eUnknown, eExplicit, eImplicit }
 
enum  DOFs {
  DOF_1 =0, DOF_2 =1, DOF_3 =2, DOF_4 =3,
  DOF_5 =4, DOF_6 =5
}
 
- Static Public Member Functions inherited from Moby::Visualizable
static osg::Group * construct_from_node (boost::shared_ptr< const XMLTree > node, const std::map< std::string, BasePtr > &id_map)
 Utility method for load_from_xml() More...
 
- Static Public Member Functions inherited from Moby::Base
template<class T >
static boost::shared_ptr< T > clone (boost::shared_ptr< T > x)
 Static method for cloning a shared pointer.
 
- Public Attributes inherited from Moby::Joint
Ravelin::VectorNd lolimit
 The lower joint limit.
 
Ravelin::VectorNd hilimit
 The upper joint limit.
 
double limit_restitution
 The coefficient of restitution applied when this joint reaches a limit.
 
double mu_fc
 The coulomb friction coefficient for this joint.
 
double mu_fv
 The viscous friction coefficient for this joint.
 
double compliant_layer_depth
 The depth of the compliant layer around the joint limit.
 
- Public Attributes inherited from Moby::Base
boost::shared_ptr< void > userdata
 Any relevant userdata.
 
std::string id
 The unique ID for this object.
 
- Protected Member Functions inherited from Moby::Joint
void determine_q_dot ()
 (Relatively slow) method for determining the joint velocity from current link velocities
 
virtual void init_data ()
 Computes the constraint Jacobian for this joint with respect to the given body in Rodrigues parameters. More...
 
- Protected Attributes inherited from Moby::Visualizable
boost::shared_ptr
< Ravelin::Pose3d > 
_vF
 The relative pose.
 
OSGGroupWrapperPtr _vizdata
 The underlying visualization data.
 

Detailed Description

Defines an actuated screw (helical) joint.

Constructor & Destructor Documentation

ScrewJoint::ScrewJoint ( )

Initializes the joint.

The axis is set to [0 0 0]. The pitch is set to 1.0. The inboard and outboard links are set to NULL.

References Moby::Joint::init_data().

ScrewJoint::ScrewJoint ( boost::weak_ptr< RigidBody inboard,
boost::weak_ptr< RigidBody outboard 
)

Initializes the joint with the specified inboard and outboard links.

The axis is set to [0 0 0] and the pitch is set to 1.0.

References Moby::Joint::init_data().

Member Function Documentation

void ScrewJoint::set_axis ( const Ravelin::Vector3d &  axis)

Sets the global axis for this joint.

The global axis for this joint takes the orientation of the inboard link into account; thus, if the orientation of the inboard link changes, then the global axis changes.

See Also
getAxisLocal()
setAxisLocal()

References Moby::Joint::get_inboard_link(), Moby::Joint::get_outboard_link(), and update_spatial_axes().

Referenced by load_from_xml().


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