SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
#include <CDynamicsAnalyticBase.hpp>
Public Member Functions | |
virtual sBool | computeGCModel (const Eigen::VectorXd &arg_q, SGcModel &arg_gc_model)=0 |
virtual sBool | computeTransformationMatrix (const Eigen::VectorXd &arg_q, sInt arg_link_id, sInt arg_ancestor_link_id, Eigen::Affine3d &arg_T)=0 |
virtual sBool | computeJacobian (const Eigen::VectorXd &arg_q, sInt arg_link_id, const Eigen::VectorXd &arg_pos_local, Eigen::MatrixXd &arg_J)=0 |
virtual sUInt | getIdForLink (std::string arg_link_name)=0 |
CDynamicsAnalyticBase () | |
virtual | ~CDynamicsAnalyticBase () |
virtual sBool | init (const SRobotParsed &arg_robot_data)=0 |
virtual sBool | hasBeenInit () |
Protected Attributes | |
sBool | has_been_init_ |
A base class for an analytic dynamics implementation for an actuated articulated body (a robot).
All dynamics implementations must try to be stateless. Ie. After one initial configuration that specifies the dynamic model's parameters, they must not store any more data. Pass in the model configuration as an argument and return the new state and/or dynamics matrices.
|
inline |
Default constructor sets the initialization state to false
|
inlinevirtual |
Default destructor does nothing
|
pure virtual |
Updates the generalized coordinate model matrices (Everything in SGcModel).
This is the most efficient method to access the standard matrices. Computing transformations and Jacobians individually is typically wasteful.
arg_q | The generalized coordinates |
arg_gc_model | All individual dynamics matrices will be saved here. |
Implemented in scl::CDynamicsAnalyticRPP.
|
pure virtual |
Calculates the Jacobian for the robot to which this dynamics object is assigned.
The Jacobian is specified by a link and an offset (in task space dimensions)from that link
Uses id based link lookup. The dynamics implementation should support this (maintain a map or something).
arg_q | The generalized coordinates |
arg_link_id | The link at which the Jacobian is to be calculated |
arg_pos_local | The offset from the link's frame (in local coordinates). |
arg_J | The Jacobian will be saved here. |
Implemented in scl::CDynamicsAnalyticRPP.
|
pure virtual |
Calculates the Transformation Matrix for the robot to which this dynamics object is assigned.
The Transformation Matrix is specified by a link and an offset (in task space dimensions)from that link and is given by:
x_ancestor_frame_coords = T * x_link_coords
Uses id based link lookup. The dynamics implementation should support this (maintain a map or something).
arg_q | The generalized coordinates |
arg_link_id | The link at which the transformation matrix is to be calculated |
arg_ancestor_link_id | The link up to which the transformation matrix is to be calculated |
arg_T | The transformation matrix will be saved here. |
Implemented in scl::CDynamicsAnalyticRPP.
|
pure virtual |
Gives an id for a link name.
Useful because:
Implemented in scl::CDynamicsAnalyticRPP.
|
inlinevirtual |
Initialization state
Reimplemented in scl::CDynamicsAnalyticRPP.
|
pure virtual |
Initializes the dynamics to be computed for a specific robot.
Returns, true : Succeeds in creating a dynamics object
false : If it can't find the robot or if the information is inconsistent with what the implementation requires, it returns false
Implemented in scl::CDynamicsAnalyticRPP.
|
protected |
True if the dynamics object has been initialized for a given robot