|
Ravelin
|
Superclass for both rigid and deformable bodies. More...
#include <SingleBodyd.h>
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 |
Superclass for both rigid and deformable bodies.
1.8.6