SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
Public Member Functions | Public Attributes | Protected Attributes | List of all members
scl::SRigidBodyDyn Class Reference

#include <SRigidBodyDyn.hpp>

Inheritance diagram for scl::SRigidBodyDyn:
Inheritance graph
[legend]
Collaboration diagram for scl::SRigidBodyDyn:
Collaboration graph
[legend]

Public Member Functions

 SRigidBodyDyn ()
 
virtual const std::string & getType () const
 
virtual const std::string & getName () const
 
virtual bool hasBeenInit () const
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW
const SRigidBody
link_ds_
 
Eigen::MatrixXd J_com_
 
Eigen::Affine3d T_o_lnk_
 
Eigen::Affine3d T_lnk_
 
sFloat q_T_
 
Eigen::VectorXd sp_q_T_
 
Eigen::VectorXd sp_dq_T_
 
sSpatialXForm sp_inertia_
 
Eigen::MatrixXd spatial_velocity_
 
Eigen::MatrixXd spatial_acceleration_
 
Eigen::MatrixXd spatial_force_
 
sSpatialXForm sp_X_within_link_
 
sSpatialXForm sp_X_o_lnk_
 
sutil::CMappedList
< std::string, sSpatialXForm
sp_X_joint_
 
Eigen::MatrixXd sp_S_joint_
 Column vectors correspond to spatial directions of motion. More...
 
Eigen::MatrixXd sp_Sorth_joint_
 Column vectors correspond to spatial directions of constraint. More...
 
std::string parent_name_
 
SRigidBodyDynparent_addr_
 
std::vector< SRigidBodyDyn * > child_addrs_
 
std::vector< SRigidBodyDyn * > gr_parent_names_
 
std::vector< SRigidBodyDyn * > gr_parent_addrs_
 
std::vector< SRigidBodyDyn * > gr_child_addrs_
 
std::string name_
 
sBool has_been_init_
 

Protected Attributes

std::string type_
 

Detailed Description

SRigidBodyDyn : A class that contains the dynamic information pertaining to a rigid body. This is to cache matrices that might be used in different control scenarios.

NOTE : It is typically inefficient to store all of these since O(n) algorithms exist to compute most control parameters. However, caching them greatly simplifies the control code. Moreover, caching may also lead to some performance gains when the dynamics is computed at a lower rate and/or when the information here is reused over and over in complex controllers.

To be consistent with our tree convention, this contains: a) std::string name_; b) std::string parent_name_; c) SRigidBodyDyn* parent_addr_; d) std::vector<SRigidBodyDyn*> child_addrs_;

Constructor & Destructor Documentation

scl::SRigidBodyDyn::SRigidBodyDyn ( )
inline

Constructor : Sets stuff to NaN/NULL

Member Function Documentation

virtual const std::string& scl::SObject::getName ( ) const
inlinevirtualinherited

Get the object's type

virtual const std::string& scl::SObject::getType ( ) const
inlinevirtualinherited

Get the object's type

virtual bool scl::SObject::hasBeenInit ( ) const
inlinevirtualinherited

Get the object's type

Member Data Documentation

sBool scl::SObject::has_been_init_
inherited

Whether the object is ready for use

Eigen::MatrixXd scl::SRigidBodyDyn::J_com_

The Jacobian relating center of mass velocities in the origin frame to the generalized velocities. dx_o_ = J_com_ * dq_

EIGEN_MAKE_ALIGNED_OPERATOR_NEW const SRigidBody* scl::SRigidBodyDyn::link_ds_

The data structure pointing to the static link information

std::string scl::SObject::name_
inherited

The object's name

sFloat scl::SRigidBodyDyn::q_T_

The generalized coordinate values at which the local transform was updated. (Avoids recomputation when un-necessary). NOTE : Only supported by scl dynamics as of now.

sSpatialXForm scl::SRigidBodyDyn::sp_inertia_

Spatial inertia of joint

Eigen::VectorXd scl::SRigidBodyDyn::sp_q_T_

The generalized coordinate values are now a vector (multi-dof or quaternion joints)

Eigen::MatrixXd scl::SRigidBodyDyn::sp_S_joint_

Column vectors correspond to spatial directions of motion.

Eigen::MatrixXd scl::SRigidBodyDyn::sp_Sorth_joint_

Column vectors correspond to spatial directions of constraint.

sutil::CMappedList<std::string,sSpatialXForm> scl::SRigidBodyDyn::sp_X_joint_

The transformation matrix from the rigid body's frame to the parent frame: x_parent_frame_com_ = T_lnk_ * x_com_;

sSpatialXForm scl::SRigidBodyDyn::sp_X_o_lnk_

The transformation matrix from the rigid body's frame to the origin frame: x_o_com_ = X_o_lnk_ * x_com_;

sSpatialXForm scl::SRigidBodyDyn::sp_X_within_link_

The transformation matrix within the link

Eigen::MatrixXd scl::SRigidBodyDyn::spatial_acceleration_

spatial acceleration for rigid body in the articulate body

Eigen::MatrixXd scl::SRigidBodyDyn::spatial_force_

spatial force for the rigid body in the articulate body

Eigen::MatrixXd scl::SRigidBodyDyn::spatial_velocity_

spatial velocity for rigid body in the articulate body

Eigen::Affine3d scl::SRigidBodyDyn::T_lnk_

The transformation matrix from the rigid body's frame to the parent frame: x_parent_frame_com_ = T_lnk_ * x_com_;

Eigen::Affine3d scl::SRigidBodyDyn::T_o_lnk_

The transformation matrix from the rigid body's frame to the origin frame: x_o_com_ = T_o_lnk_ * x_com_;

std::string scl::SObject::type_
protectedinherited

The object's type. Should only be set by the constructor


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