Ravelin
|
Defines a rotary joint. More...
#include <RevoluteJoint.h>
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 VECTORN & | get_q_tare () const |
boost::shared_ptr< RIGIDBODY > | get_inboard_link () const |
Gets the inboard link for this joint. | |
boost::shared_ptr< RIGIDBODY > | get_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 POSE3 > | get_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 POSE3 > | get_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< JOINT > | shared_from_this () |
boost::shared_ptr< const JOINT > | shared_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 POSE3 > | get_inboard_pose () |
boost::shared_ptr< const POSE3 > | get_outboard_pose () |
virtual void | init_data () |
Method for initializing all variables in the joint. More... | |
Defines a rotary joint.
REVOLUTEJOINT::REVOLUTEJOINT | ( | ) |
|
virtual |
Computes the time derivative of the constraint jacobian with respect to a body.
TODO: implement this
Implements JOINT.