Ravelin
Public Member Functions | Protected Attributes | List of all members
REVOLUTEJOINT Class Reference

Defines a rotary joint. More...

#include <RevoluteJoint.h>

Inheritance diagram for REVOLUTEJOINT:
JOINT Ravelin::virtual_enable_shared_from_this< JOINT > Ravelin::virtual_enable_shared_from_this_base

Public Member Functions

 REVOLUTEJOINT ()
 Initializes the 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 POSE3
get_induced_pose ()
 Gets the pose for this joint.
 
virtual const std::vector
< SVELOCITY > & 
get_spatial_axes_dot ()
 Gets the derivative for the spatial axes for this joint.
 
virtual unsigned num_dof () const
 Gets the number of degrees-of-freedom for this joint.
 
virtual void evaluate_constraints (REAL C[])
 Evaluates the constraint equations.
 
VECTOR3 get_axis () const
 
void set_axis (const VECTOR3 &axis)
 Sets the axis of rotation for this joint (MUST BE CALLED AFTER set_location(.))
 
virtual void calc_constraint_jacobian (bool inboard, MATRIXN &Cq)
 Computes the constraint jacobian with respect to a body.
 
virtual void calc_constraint_jacobian_dot (bool inboard, MATRIXN &Cq)
 Computes the time derivative of the constraint jacobian with respect to a body. More...
 
virtual bool is_singular_config () const
 Revolute joint can never be in a singular configuration.
 
- Public Member Functions inherited from JOINT
 JOINT ()
 Initializes the joint. More...
 
virtual const std::vector
< SVELOCITY > & 
get_spatial_axes ()
 Gets the spatial axes for this joint. More...
 
void add_force (const VECTORN &force)
 Adds a force to the joint.
 
void reset_force ()
 Resets the force on the joint.
 
ConstraintType get_constraint_type () const
 
void set_constraint_type (ConstraintType type)
 Sets whether this constraint is implicit or explicit (or unknown)
 
boost::shared_ptr
< ARTICULATED_BODY
get_articulated_body ()
 Gets the articulated body corresponding to this body. More...
 
void set_articulated_body (boost::shared_ptr< ARTICULATED_BODY > abody)
 Sets the articulated body corresponding to this body. More...
 
virtual void set_inboard_link (boost::shared_ptr< RIGIDBODY > link, bool update_pose)
 
virtual void set_outboard_link (boost::shared_ptr< RIGIDBODY > link, bool update_pose)
 
void set_location (const VECTOR3 &p, boost::shared_ptr< RIGIDBODY > inboard, boost::shared_ptr< RIGIDBODY > outboard)
 
VECTOR3 get_location (bool use_outboard=false) const
 Gets the location of this joint. More...
 
virtual void set_inboard_pose (boost::shared_ptr< const POSE3 > inboard_pose, bool update_joint_pose)
 
virtual void set_outboard_pose (boost::shared_ptr< POSE3 > outboard_pose, bool update_joint_pose)
 
virtual void evaluate_constraints_dot (REAL C[])
 Evaluates the time derivative of the constraint equations.
 
virtual void set_q_tare (const VECTORN &tare)
 
virtual const VECTORNget_q_tare () const
 
boost::shared_ptr< RIGIDBODYget_inboard_link () const
 Gets the inboard link for this joint.
 
boost::shared_ptr< RIGIDBODYget_outboard_link () const
 Gets the outboard link for this joint.
 
unsigned get_index () const
 Gets the joint index (returns UINT_MAX if not set)
 
void set_index (unsigned index)
 Sets the joint index. More...
 
unsigned get_constraint_index () const
 Gets the constraint index for this joint.
 
void set_constraint_index (unsigned idx)
 Sets the constraint index for this joint.
 
void set_coord_index (unsigned index)
 Sets the coordinate index for this joint. More...
 
unsigned get_coord_index () const
 Gets the starting coordinate index for this joint.
 
boost::shared_ptr< const POSE3get_pose () const
 Gets the pose of this joint (relative to the inboard pose instead of the outboard pose as returned by get_pose_from_outboard())
 
boost::shared_ptr< const POSE3get_pose_from_outboard () const
 Gets the pose of this joint relative to the outboard pose (rather than the inboard pose as returned by get_pose())
 
virtual unsigned num_constraint_eqns () const
 Gets the number of constraint equations for this joint.
 
- Public Member Functions inherited from Ravelin::virtual_enable_shared_from_this< JOINT >
boost::shared_ptr< JOINTshared_from_this ()
 
boost::shared_ptr< const JOINTshared_from_this () const
 

Protected Attributes

VECTOR3 _u
 The joint axis (defined in inner relative pose coordinates)
 
VECTOR3 _ui
 Two unit vectors that make a orthonormal basis with _u.
 
VECTOR3 _uj
 
VECTOR3 _v2
 The joint axis (defined in outer relative pose coordinates)
 
std::vector< SVELOCITY_s_dot
 The time derivative of the spatial axis – should be zero vector 6x1.
 
- Protected Attributes inherited from JOINT
boost::shared_ptr< POSE3_Fprime
 The frame induced by the joint.
 
boost::shared_ptr< POSE3_F
 The frame of this joint.
 
boost::shared_ptr< POSE3_Fb
 The frame of this joint backward from the outboard link.
 
std::vector< SVELOCITY_s
 The spatial axes (in joint frame) for the joint. More...
 
VECTORN _q_tare
 The stored "tare" value for the initial joint configuration. More...
 
boost::weak_ptr< RIGIDBODY_inboard_link
 
boost::weak_ptr< RIGIDBODY_outboard_link
 
boost::weak_ptr< ARTICULATED_BODY_abody
 
ConstraintType _constraint_type
 
unsigned _joint_idx
 
unsigned _coord_idx
 
unsigned _constraint_idx
 

Additional Inherited Members

- Public Types inherited from 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
}
 
- Public Attributes inherited from JOINT
std::string joint_id
 The ID of this joint.
 
VECTORN qdd
 The acceleration of this joint.
 
VECTORN force
 The actuator force (user/controller sets this)
 
VECTORN lambda
 Constraint forces calculated by forward dynamics.
 
VECTORN q
 The position of this joint.
 
VECTORN qd
 The velocity of this joint.
 
- Protected Member Functions inherited from JOINT
void calc_constraint_jacobian_numeric (bool inboard, MATRIXN &Cq)
 Computes the constraint jacobian with respect to a body numerically
 
bool transform_jacobian (MATRIXN &J, bool use_inboard, MATRIXN &output)
 Transforms a Jacobian (if necessary) More...
 
void invalidate_pose_vectors ()
 
boost::shared_ptr< const POSE3get_inboard_pose ()
 
boost::shared_ptr< const POSE3get_outboard_pose ()
 
virtual void init_data ()
 Method for initializing all variables in the joint. More...
 

Detailed Description

Defines a rotary joint.

Constructor & Destructor Documentation

REVOLUTEJOINT::REVOLUTEJOINT ( )

Initializes the joint.

The axis of rotation is set to [0 0 0]. The inboard and outboard links are set to NULL.

References JOINT::_F, _s_dot, _u, _ui, _v2, and JOINT::init_data().

Member Function Documentation

void REVOLUTEJOINT::calc_constraint_jacobian_dot ( bool  inboard,
MATRIXN Cq 
)
virtual

Computes the time derivative of the constraint jacobian with respect to a body.

TODO: implement this

Implements JOINT.


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