SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
#include <SRigidBodyDyn.hpp>
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_ |
SRigidBodyDyn * | parent_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_ |
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_;
|
inline |
Constructor : Sets stuff to NaN/NULL
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
|
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
|
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_;
|
protectedinherited |
The object's type. Should only be set by the constructor