SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
#include <CTaskOpPosPIDA1OrderInfTime.hpp>
Public Member Functions | |
virtual bool | computeServo (const SRobotSensors *arg_sensors) |
virtual bool | computeModel (const SRobotSensors *arg_sensors) |
virtual STaskBase * | getTaskData () |
virtual bool | setGoalPos (const Eigen::VectorXd &arg_goal) |
virtual bool | setGoalVel (const Eigen::VectorXd &arg_goal) |
virtual bool | setGoalAcc (const Eigen::VectorXd &arg_goal) |
virtual bool | getGoalPos (Eigen::VectorXd &arg_goal) const |
virtual bool | getGoalVel (Eigen::VectorXd &arg_goal) const |
virtual bool | getGoalAcc (Eigen::VectorXd &arg_goal) const |
virtual bool | getPos (Eigen::VectorXd &arg_pos) const |
virtual bool | getVel (Eigen::VectorXd &arg_vel) const |
virtual bool | getAcc (Eigen::VectorXd &arg_acc) const |
sBool | achievedGoalPos () |
void | setFlagComputeOpPosGravity (sBool arg_compute_grav) |
sBool | integralGainActive () |
CTaskOpPosPIDA1OrderInfTime () | |
virtual | ~CTaskOpPosPIDA1OrderInfTime () |
virtual bool | init (STaskBase *arg_task_data, CDynamicsBase *arg_dynamics) |
virtual void | reset () |
virtual sBool | hasBeenInit () |
virtual sBool | setActivated (sBool arg_activate) |
virtual sBool | hasBeenActivated () |
Protected Attributes | |
STaskOpPosPIDA1OrderInfTime * | data_ |
Eigen::VectorXd | tmp1 |
Eigen::VectorXd | tmp2 |
Eigen::ColPivHouseholderQR < Eigen::Matrix3d > | qr_ |
sBool | lambda_inv_singular_ |
Eigen::JacobiSVD< Eigen::Matrix3d > | svd_ |
Eigen::Matrix3d | singular_values_ |
sBool | flag_compute_gravity_ |
sBool | flag_integral_gain_active_ |
sBool | has_been_init_ |
CDynamicsBase * | dynamics_ |
Computes the operational space forces for a single 3-d (x,y,z) goal point Euclidean task
It computes:
NOTE : This differs from the plain operational space controller in that it also incorporates integral gain. For many applications, integral gain is actually not desirable since it introduces a non-deterministic time-varying control signal to the equations. To make this work well, one might have to tune gains manually depending on the motor task involved.
Use with caution.
scl::CTaskOpPosPIDA1OrderInfTime::CTaskOpPosPIDA1OrderInfTime | ( | ) |
Default constructor : Does nothing
|
inlinevirtual |
Default destructor : Does nothing.
bool scl::CTaskOpPosPIDA1OrderInfTime::achievedGoalPos | ( | ) |
Whether the task has achieved its goal position.
|
virtual |
Computes the dynamics (task model) Assumes that the data_->model_.gc_model_ has been updated.
Implements scl::CTaskBase.
|
virtual |
Computes the task torques
Implements scl::CTaskBase.
|
inlinevirtual |
Gets the current acceleration. Returns false if not supported by task.
Reimplemented from scl::CTaskBase.
|
inlinevirtual |
Gets the current goal acceleration. Returns false if not supported by task.
Reimplemented from scl::CTaskBase.
|
inlinevirtual |
Gets the current goal position. Returns false if not supported by task.
Reimplemented from scl::CTaskBase.
|
inlinevirtual |
Gets the current goal velocity. Returns false if not supported by task.
Reimplemented from scl::CTaskBase.
|
inlinevirtual |
Gets the current position. Returns false if not supported by task.
Reimplemented from scl::CTaskBase.
|
virtual |
Return this task controller's task data structure.
Implements scl::CTaskBase.
|
inlinevirtual |
Gets the current velocity. Returns false if not supported by task.
Reimplemented from scl::CTaskBase.
|
inlinevirtualinherited |
Activated = All dynamic parameters and data structures are up to date and task is actively contributing to a controller.
|
inlinevirtualinherited |
Initialized = All static parameters are set and data structures are up to date. Ready to contribute to a controller.
|
virtual |
Initializes the task object. Required to set output gc force dofs
Implements scl::CTaskBase.
|
inline |
Whether the integral gain has activated.
|
virtual |
Resets the task by removing its data. NOTE : Does not deallocate its data structure
Implements scl::CTaskBase.
Activated = All dynamic parameters and data structures are up to date and task is actively contributing to a controller.
Set to true/false during runtime to activate/deactivate task.
Returns : success/failure
|
virtual |
Sets the current goal acceleration
Reimplemented from scl::CTaskBase.
|
virtual |
Sets the current goal position
Reimplemented from scl::CTaskBase.
|
virtual |
Sets the current goal velocity
Reimplemented from scl::CTaskBase.
|
protected |
The actual data structure for this computational object
|
protectedinherited |
A Dynamics model required to compute the task's dynamics
|
protectedinherited |
Initialized = All static parameters are set and data structures are up to date.
Set to true in init()
|
protected |
True when the lambda_inv matrix turns singular.
|
protected |
For inverting the lambda matrix (when it gets singular)
|
protected |
For inverting the operational space inertia matrix near singularities. 3x3 for operational point tasks.
|
protected |
Temporary variables