SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
#include <STaskComPos.hpp>
Public Member Functions | |
STaskComPos () | |
virtual | ~STaskComPos () |
virtual bool | initTaskParams () |
bool | init (const std::string &arg_name, const std::string &arg_type, const sUInt arg_priority, const scl::sUInt arg_task_dof, const SRobotParsed *arg_robot_ds, const SGcModel *arg_gc_model, const Eigen::VectorXd &arg_kp, const Eigen::VectorXd &arg_kv, const Eigen::VectorXd &arg_ka, const Eigen::VectorXd &arg_ki, const Eigen::VectorXd &arg_ftask_max, const Eigen::VectorXd &arg_ftask_min, const std::vector< scl::sString2 > &arg_nonstd_params) |
bool | setParentController (const SControllerMultiTask *arg_parent) |
virtual const std::string & | getType () const |
virtual const std::string & | getName () const |
virtual bool | hasBeenInit () const |
Public Attributes | |
Eigen::Vector3d | x_ |
Eigen::Vector3d | dx_ |
Eigen::Vector3d | ddx_ |
Eigen::Vector3d | x_goal_ |
Eigen::Vector3d | dx_goal_ |
Eigen::Vector3d | ddx_goal_ |
Eigen::Vector3d | pos_in_parent_ |
sFloat | spatial_resolution_ |
const SControllerMultiTask * | parent_controller_ |
std::string | type_task_ |
scl::sBool | has_been_activated_ |
scl::sBool | has_control_null_space_ |
sUInt | priority_ |
scl::sUInt | dof_task_ |
const SRobotParsed * | robot_ |
const SGcModel * | gc_model_ |
Eigen::MatrixXd | J_ |
Eigen::MatrixXd | J_6_ |
Eigen::MatrixXd | J_dyn_inv_ |
Eigen::MatrixXd | null_space_ |
Eigen::MatrixXd | M_task_ |
Eigen::MatrixXd | M_task_inv_ |
Eigen::MatrixXd | force_task_cc_ |
Eigen::MatrixXd | force_task_grav_ |
Eigen::VectorXd | force_task_ |
Eigen::VectorXd | force_task_max_ |
Eigen::VectorXd | force_task_min_ |
Eigen::VectorXd | force_gc_ |
Eigen::MatrixXd | range_space_ |
Eigen::VectorXd | kp_ |
Eigen::VectorXd | kv_ |
Eigen::VectorXd | ka_ |
Eigen::VectorXd | ki_ |
std::vector< sString2 > | task_nonstd_params_ |
Eigen::VectorXd | shared_data_ |
std::string | name_ |
sBool | has_been_init_ |
Protected Attributes | |
std::string | type_ |
This is a task to control the position, velocity and acceleration of the center of mass of an articulated body system. The controller operates in Euclidean space, and in the global (origin) frame.
Should the center of mass Jacobian become singular (loses rank k), it will use an svd to compute the n-k'th rank approximation of the control equations.
scl::STaskComPos::STaskComPos | ( | ) |
Default constructor sets stuff to S_NULL
|
virtual |
Default destructor does nothing
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
|
inherited |
Initialization function
NOTE : This function also activates the task.
arg_task_dof | 0 task dof means a gc task. Ie. full dofs |
arg_nonstd_params | These are ignored during STaskBase initialization. However, subclasses may choose to use them and/or require various values |
|
virtual |
Initializes the task specific data members.
Implements scl::STaskBase.
|
inherited |
Sets the parent controller
|
inherited |
Task space degrees of freedom
|
inherited |
Generalized coordinate forces (usually joint torques) : Computed by : the task-servo = J' * f Used by : the robot-servo to calculate overall generalized coordinate force
|
inherited |
Task space forces Computed by : the task-servo Used by : the task-servo to compute the force_gc_
|
inherited |
Task-space centrifugal/coriolis force vector Controls cc forces in a subspace of the entire gc space so that the operational point experience no cc forces. Other points, however, do.
|
inherited |
Task-space gravity force vector. Controls gravity in a subspace of the entire gc space so that the operational point is massless. Other points experience gravity.
|
inherited |
Upper and lower limits of task-space forces (Why separate : Consider muscles which can only pull, not push)
|
inherited |
Robot generalized coordinate model
|
inherited |
Whether the task is active or inactive Default = false. True after init()
|
inherited |
Whether the object is ready for use
|
inherited |
Is control task. This variable controls whether the controller computes remaining null spaces for lower level tasks or not. If it is true, the lower level task null spaces are not computed, potentially improving performance substantially.
Settings: True : Task dof < Robot dof [Default] False : Task dof == Robot dof [Must enable manually in init]
|
inherited |
The computed task space Jacobian matrices. Used for velocities. Note that we compute the generalized inverse (the Jacobian is usually not full rank) without inverting the jacobian itself.
|
inherited |
Gains (scalar if same for different dimensions; vector if different for different dimensions) kp = position, kv = velocity, ka = acceleration ki = integrated position error (to fix steady-state errors).
Computed by : None. These are constants. Used by : The task-servo to calculate task forces
|
inherited |
Task-space mass matrix
|
inherited |
The object's name
|
inherited |
The task's null space. Used to compute the range space of lower priority tasks.
|
inherited |
The parent controller
|
inherited |
The task's priority. Important to determine its range space. Lower is better. 0 is best. -1 is NULL.
|
inherited |
Range space of the task : Computed by : the robot-servo to calculate overall generalized coordinate force Used by : the robot-servo to calculate overall generalized coordinate force
|
inherited |
Robot model. Not a const because it could use the branching representation's iterator
|
inherited |
This may be used by any shared module in scl that wants to communicate arbitrary information to a STaskBase subclass
|
inherited |
A set of additional options that may be used by users to initialize this specific task. These typically go above and beyond the standard options.
Eg.The parent link and the pos in parent, which are required by op point tasks but not by gc tasks. These will be stored like: task_options_[0].data_[0] = "parent_link"; task_options_[0].data_[1] = "base"; task_options_[1].data_[0] = "pos_in_parent"; task_options_[1].data_[1] = "0.0 0.0 0.0"; task_options_[2].data_[0] = "my_new_arbitrary_option"; task_options_[2].data_[1] = "8080";
|
protectedinherited |
The object's type. Should only be set by the constructor
|
inherited |
The type of the task