Ravelin
Public Member Functions | List of all members
Ravelin::SINGLE_BODY Class Referenceabstract

Superclass for both rigid and deformable bodies. More...

#include <SingleBodyd.h>

Inheritance diagram for Ravelin::SINGLE_BODY:
Ravelin::DYNAMIC_BODY Ravelin::DYNAMIC_BODY Ravelin::virtual_enable_shared_from_this< DYNAMIC_BODY > Ravelin::virtual_enable_shared_from_this< DYNAMIC_BODY > Ravelin::virtual_enable_shared_from_this< DYNAMIC_BODY > Ravelin::virtual_enable_shared_from_this< DYNAMIC_BODY > Ravelin::virtual_enable_shared_from_this_base Ravelin::virtual_enable_shared_from_this_base Ravelin::virtual_enable_shared_from_this_base Ravelin::virtual_enable_shared_from_this_base Ravelin::RIGIDBODY Ravelin::RIGIDBODY

Public Member Functions

virtual boost::shared_ptr
< DYNAMIC_BODY > 
get_super_body () const
 
virtual boost::shared_ptr
< const POSE3 > 
get_computation_frame () const =0
 Gets the computation frame for the body.
 
virtual REAL get_mass () const =0
 Gets the mass of the body (for gravity calculation)
 
virtual boost::shared_ptr
< const POSE3 > 
get_pose () const =0
 Gets the pose of the body.
 
virtual const SACCEL & get_accel ()=0
 Gets the acceleration of the body.
 
virtual const SVELOCITY & get_velocity ()=0
 Gets the velocity of the body.
 
virtual void apply_impulse (const SMOMENTUM &w)=0
 Applies an impulse at a point on the body.
 
virtual REAL calc_mass () const =0
 Calculates the mass of the body.
 
virtual boost::shared_ptr
< ARTICULATED_BODY > 
get_articulated_body () const =0
 Gets the articulated body that this body is a part of (if any)
 
virtual bool is_enabled () const =0
 Determines whether the body is enabled.
 
virtual VECTOR3 calc_point_vel (const VECTOR3 &point) const =0
 Calculates the velocity at a point on the body in the body frame
 
REAL calc_point_vel (const VECTOR3 &point, const VECTOR3 &dir)
 Calculates the velocity at a point on the body in a given direction.
 
virtual boost::shared_ptr
< DYNAMIC_BODY > 
get_super_body () const
 
virtual boost::shared_ptr
< const POSE3 > 
get_computation_frame () const =0
 Gets the computation frame for the body.
 
virtual REAL get_mass () const =0
 Gets the mass of the body (for gravity calculation)
 
virtual boost::shared_ptr
< const POSE3 > 
get_pose () const =0
 Gets the pose of the body.
 
virtual const SACCEL & get_accel ()=0
 Gets the acceleration of the body.
 
virtual const SVELOCITY & get_velocity ()=0
 Gets the velocity of the body.
 
virtual void apply_impulse (const SMOMENTUM &w)=0
 Applies an impulse at a point on the body.
 
virtual REAL calc_mass () const =0
 Calculates the mass of the body.
 
virtual boost::shared_ptr
< ARTICULATED_BODY > 
get_articulated_body () const =0
 Gets the articulated body that this body is a part of (if any)
 
virtual bool is_enabled () const =0
 Determines whether the body is enabled.
 
virtual VECTOR3 calc_point_vel (const VECTOR3 &point) const =0
 Calculates the velocity at a point on the body in the body frame
 
REAL calc_point_vel (const VECTOR3 &point, const VECTOR3 &dir)
 Calculates the velocity at a point on the body in a given direction.
 
- Public Member Functions inherited from Ravelin::DYNAMIC_BODY
virtual MATRIXN & calc_jacobian (boost::shared_ptr< const POSE3 > source_pose, boost::shared_ptr< const POSE3 > target_pose, boost::shared_ptr< DYNAMIC_BODY > body, MATRIXN &J)=0
 The Jacobian transforms from the generalized coordinate from to the given frame.
 
virtual MATRIXN & calc_jacobian_dot (boost::shared_ptr< const POSE3 > source_pose, boost::shared_ptr< const POSE3 > target_pose, boost::shared_ptr< DYNAMIC_BODY > body, MATRIXN &J)=0
 
virtual void validate_position_variables ()
 Validates position-based variables (potentially dangerous for a user to call)
 
virtual void validate_velocity_variables ()
 Validates velocity-based variables (potentially dangerous for a user to call)
 
virtual void set_computation_frame_type (ReferenceFrameType rftype)=0
 Sets the computation frame type for this body.
 
ReferenceFrameType get_computation_frame_type () const
 Gets the computation frame type for this body.
 
virtual void calc_fwd_dyn ()=0
 Forces a recalculation of forward dynamics.
 
virtual void reset_accumulators ()=0
 Resets the force and torque accumulators on the dynamic body.
 
virtual void rotate (const QUAT &q)=0
 Rotates the dynamic body by the given orientation.
 
virtual void translate (const ORIGIN3 &o)=0
 Translates the dynamic body by the given translation.
 
virtual REAL calc_kinetic_energy (boost::shared_ptr< const POSE3 > P=boost::shared_ptr< const POSE3 >())=0
 Calculates the kinetic energy of the body in an arbitrary frame.
 
virtual boost::shared_ptr
< const POSE3 > 
get_gc_pose () const =0
 Gets the frame for generalized coordinates.
 
virtual unsigned num_generalized_coordinates (GeneralizedCoordinateType gctype) const =0
 Gets the number of generalized coordinates.
 
virtual void set_generalized_forces (const SHAREDVECTORN &gf)=0
 Sets the generalized forces on the body.
 
virtual void set_generalized_forces (const VECTORN &gf)
 Sets the generalized forces on the body.
 
virtual void add_generalized_force (const SHAREDVECTORN &gf)=0
 Adds a generalized force to the body.
 
virtual void add_generalized_force (const VECTORN &gf)
 Adds a generalized force to the body.
 
virtual void apply_generalized_impulse (const SHAREDVECTORN &gj)=0
 Applies a generalized impulse to the body.
 
virtual void apply_generalized_impulse (const VECTORN &gj)
 Applies a generalized impulse to the body.
 
virtual SHAREDVECTORN & get_generalized_coordinates_euler (SHAREDVECTORN &gc)=0
 Gets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual VECTORN & get_generalized_coordinates_euler (VECTORN &gc)
 Gets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual SHAREDVECTORN & get_generalized_velocity (GeneralizedCoordinateType gctype, SHAREDVECTORN &gv)=0
 Gets the generalized velocity of this body.
 
virtual VECTORN & get_generalized_velocity (GeneralizedCoordinateType gctype, VECTORN &gv)
 Gets the generalized velocity of this body.
 
virtual void set_generalized_acceleration (const SHAREDVECTORN &ga)=0
 Sets the generalized velocity of this body.
 
virtual void set_generalized_acceleration (const VECTORN &ga)
 Sets the generalized acceleration of this body.
 
virtual SHAREDVECTORN & get_generalized_acceleration (SHAREDVECTORN &ga)=0
 Gets the generalized velocity of this body.
 
virtual VECTORN & get_generalized_acceleration (VECTORN &ga)
 Gets the generalized acceleration of this body.
 
virtual void set_generalized_coordinates_euler (const SHAREDVECTORN &gc)=0
 Sets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual void set_generalized_coordinates_euler (const VECTORN &gc)
 Sets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual void set_generalized_velocity (GeneralizedCoordinateType gctype, const SHAREDVECTORN &gv)=0
 Sets the generalized velocity of this body. More...
 
virtual void set_generalized_velocity (GeneralizedCoordinateType gctype, const VECTORN &gv)
 Sets the generalized velocity of this body.
 
MATRIXN & get_generalized_inertia (MATRIXN &M)
 Gets the generalized inertia of this body.
 
virtual SHAREDMATRIXN & get_generalized_inertia (SHAREDMATRIXN &M)=0
 Gets the generalized inertia of this body.
 
virtual SHAREDMATRIXN & solve_generalized_inertia (const SHAREDMATRIXN &B, SHAREDMATRIXN &X)=0
 Solves using the inverse generalized inertia.
 
virtual MATRIXN & solve_generalized_inertia (const MATRIXN &B, MATRIXN &X)
 Solves using the inverse generalized inertia.
 
virtual MATRIXN & solve_generalized_inertia (const SHAREDMATRIXN &B, MATRIXN &X)
 Solves using the inverse generalized inertia.
 
virtual SHAREDMATRIXN & solve_generalized_inertia (const MATRIXN &B, SHAREDMATRIXN &X)
 Solves using the inverse generalized inertia.
 
virtual VECTORN & solve_generalized_inertia (const VECTORN &b, VECTORN &x)
 Solves using the inverse generalized inertia.
 
virtual VECTORN & solve_generalized_inertia (const SHAREDVECTORN &b, VECTORN &x)
 Solves using the inverse generalized inertia.
 
virtual SHAREDVECTORN & solve_generalized_inertia (const VECTORN &b, SHAREDVECTORN &x)
 Solves using the inverse generalized inertia.
 
virtual SHAREDVECTORN & solve_generalized_inertia (const SHAREDVECTORN &b, SHAREDVECTORN &x)=0
 Solves using the inverse generalized inertia.
 
virtual MATRIXN & transpose_solve_generalized_inertia (const MATRIXN &B, MATRIXN &X)
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual MATRIXN & transpose_solve_generalized_inertia (const SHAREDMATRIXN &B, MATRIXN &X)
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual SHAREDMATRIXN & transpose_solve_generalized_inertia (const MATRIXN &B, SHAREDMATRIXN &X)
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual SHAREDMATRIXN & transpose_solve_generalized_inertia (const SHAREDMATRIXN &B, SHAREDMATRIXN &X)=0
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual SHAREDVECTORN & get_generalized_forces (SHAREDVECTORN &f)=0
 Gets the external forces on this body. More...
 
virtual VECTORN & get_generalized_forces (VECTORN &f)
 Gets the external forces on this body. More...
 
virtual SHAREDVECTORN & convert_to_generalized_force (boost::shared_ptr< SINGLE_BODY > body, const SFORCE &w, SHAREDVECTORN &gf)=0
 Converts a force to a generalized force. More...
 
virtual VECTORN & convert_to_generalized_force (boost::shared_ptr< SINGLE_BODY > body, const SFORCE &w, VECTORN &gf)
 Converts a force to a generalized force. More...
 
virtual MATRIXN & calc_jacobian (boost::shared_ptr< const POSE3 > source_pose, boost::shared_ptr< const POSE3 > target_pose, boost::shared_ptr< DYNAMIC_BODY > body, MATRIXN &J)=0
 The Jacobian transforms from the generalized coordinate from to the given frame.
 
virtual MATRIXN & calc_jacobian_dot (boost::shared_ptr< const POSE3 > source_pose, boost::shared_ptr< const POSE3 > target_pose, boost::shared_ptr< DYNAMIC_BODY > body, MATRIXN &J)=0
 
virtual void validate_position_variables ()
 Validates position-based variables (potentially dangerous for a user to call)
 
virtual void validate_velocity_variables ()
 Validates velocity-based variables (potentially dangerous for a user to call)
 
virtual void set_computation_frame_type (ReferenceFrameType rftype)=0
 Sets the computation frame type for this body.
 
ReferenceFrameType get_computation_frame_type () const
 Gets the computation frame type for this body.
 
virtual void calc_fwd_dyn ()=0
 Forces a recalculation of forward dynamics.
 
virtual void reset_accumulators ()=0
 Resets the force and torque accumulators on the dynamic body.
 
virtual void rotate (const QUAT &q)=0
 Rotates the dynamic body by the given orientation.
 
virtual void translate (const ORIGIN3 &o)=0
 Translates the dynamic body by the given translation.
 
virtual REAL calc_kinetic_energy (boost::shared_ptr< const POSE3 > P=boost::shared_ptr< const POSE3 >())=0
 Calculates the kinetic energy of the body in an arbitrary frame.
 
virtual boost::shared_ptr
< const POSE3 > 
get_gc_pose () const =0
 Gets the frame for generalized coordinates.
 
virtual unsigned num_generalized_coordinates (GeneralizedCoordinateType gctype) const =0
 Gets the number of generalized coordinates.
 
virtual void set_generalized_forces (const SHAREDVECTORN &gf)=0
 Sets the generalized forces on the body.
 
virtual void set_generalized_forces (const VECTORN &gf)
 Sets the generalized forces on the body.
 
virtual void add_generalized_force (const SHAREDVECTORN &gf)=0
 Adds a generalized force to the body.
 
virtual void add_generalized_force (const VECTORN &gf)
 Adds a generalized force to the body.
 
virtual void apply_generalized_impulse (const SHAREDVECTORN &gj)=0
 Applies a generalized impulse to the body.
 
virtual void apply_generalized_impulse (const VECTORN &gj)
 Applies a generalized impulse to the body.
 
virtual SHAREDVECTORN & get_generalized_coordinates_euler (SHAREDVECTORN &gc)=0
 Gets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual VECTORN & get_generalized_coordinates_euler (VECTORN &gc)
 Gets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual SHAREDVECTORN & get_generalized_velocity (GeneralizedCoordinateType gctype, SHAREDVECTORN &gv)=0
 Gets the generalized velocity of this body.
 
virtual VECTORN & get_generalized_velocity (GeneralizedCoordinateType gctype, VECTORN &gv)
 Gets the generalized velocity of this body.
 
virtual void set_generalized_acceleration (const SHAREDVECTORN &ga)=0
 Sets the generalized velocity of this body.
 
virtual void set_generalized_acceleration (const VECTORN &ga)
 Sets the generalized acceleration of this body.
 
virtual SHAREDVECTORN & get_generalized_acceleration (SHAREDVECTORN &ga)=0
 Gets the generalized velocity of this body.
 
virtual VECTORN & get_generalized_acceleration (VECTORN &ga)
 Gets the generalized acceleration of this body.
 
virtual void set_generalized_coordinates_euler (const SHAREDVECTORN &gc)=0
 Sets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual void set_generalized_coordinates_euler (const VECTORN &gc)
 Sets the generalized coordinates of this body (using Euler parameters for any rigid body orientations, if relevant)
 
virtual void set_generalized_velocity (GeneralizedCoordinateType gctype, const SHAREDVECTORN &gv)=0
 Sets the generalized velocity of this body. More...
 
virtual void set_generalized_velocity (GeneralizedCoordinateType gctype, const VECTORN &gv)
 Sets the generalized velocity of this body.
 
MATRIXN & get_generalized_inertia (MATRIXN &M)
 Gets the generalized inertia of this body.
 
virtual SHAREDMATRIXN & get_generalized_inertia (SHAREDMATRIXN &M)=0
 Gets the generalized inertia of this body.
 
virtual SHAREDMATRIXN & solve_generalized_inertia (const SHAREDMATRIXN &B, SHAREDMATRIXN &X)=0
 Solves using the inverse generalized inertia.
 
virtual MATRIXN & solve_generalized_inertia (const MATRIXN &B, MATRIXN &X)
 Solves using the inverse generalized inertia.
 
virtual MATRIXN & solve_generalized_inertia (const SHAREDMATRIXN &B, MATRIXN &X)
 Solves using the inverse generalized inertia.
 
virtual SHAREDMATRIXN & solve_generalized_inertia (const MATRIXN &B, SHAREDMATRIXN &X)
 Solves using the inverse generalized inertia.
 
virtual VECTORN & solve_generalized_inertia (const VECTORN &b, VECTORN &x)
 Solves using the inverse generalized inertia.
 
virtual VECTORN & solve_generalized_inertia (const SHAREDVECTORN &b, VECTORN &x)
 Solves using the inverse generalized inertia.
 
virtual SHAREDVECTORN & solve_generalized_inertia (const VECTORN &b, SHAREDVECTORN &x)
 Solves using the inverse generalized inertia.
 
virtual SHAREDVECTORN & solve_generalized_inertia (const SHAREDVECTORN &b, SHAREDVECTORN &x)=0
 Solves using the inverse generalized inertia.
 
virtual MATRIXN & transpose_solve_generalized_inertia (const MATRIXN &B, MATRIXN &X)
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual MATRIXN & transpose_solve_generalized_inertia (const SHAREDMATRIXN &B, MATRIXN &X)
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual SHAREDMATRIXN & transpose_solve_generalized_inertia (const MATRIXN &B, SHAREDMATRIXN &X)
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual SHAREDMATRIXN & transpose_solve_generalized_inertia (const SHAREDMATRIXN &B, SHAREDMATRIXN &X)=0
 Solves the transpose matrix using the inverse generalized inertia.
 
virtual SHAREDVECTORN & get_generalized_forces (SHAREDVECTORN &f)=0
 Gets the external forces on this body. More...
 
virtual VECTORN & get_generalized_forces (VECTORN &f)
 Gets the external forces on this body. More...
 
virtual SHAREDVECTORN & convert_to_generalized_force (boost::shared_ptr< SINGLE_BODY > body, const SFORCE &w, SHAREDVECTORN &gf)=0
 Converts a force to a generalized force. More...
 
virtual VECTORN & convert_to_generalized_force (boost::shared_ptr< SINGLE_BODY > body, const SFORCE &w, VECTORN &gf)
 Converts a force to a generalized force. More...
 
- Public Member Functions inherited from Ravelin::virtual_enable_shared_from_this< DYNAMIC_BODY >
boost::shared_ptr< DYNAMIC_BODY > shared_from_this ()
 
boost::shared_ptr< const
DYNAMIC_BODY > 
shared_from_this () const
 

Additional Inherited Members

- Public Types inherited from Ravelin::DYNAMIC_BODY
enum  GeneralizedCoordinateType { eEuler, eSpatial, eEuler, eSpatial }
 
enum  GeneralizedCoordinateType { eEuler, eSpatial, eEuler, eSpatial }
 
- Public Attributes inherited from Ravelin::DYNAMIC_BODY
std::string body_id
 The identifier for this body.
 
- Protected Attributes inherited from Ravelin::DYNAMIC_BODY
ReferenceFrameType _rftype
 The computation frame type.
 
VECTORN gc
 Temporaries for use with integration.
 
VECTORN gv
 
VECTORN gcgv
 
VECTORN xp
 
VECTORN xv
 
VECTORN xa
 

Detailed Description

Superclass for both rigid and deformable bodies.


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