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 | Protected Attributes | Private Attributes | List of all members
scl::CTaskOpPosContactForce Class Reference

#include <CTaskOpPosContactForce.hpp>

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

Public Member Functions

virtual bool init (STaskBase *arg_task_data, CDynamicsBase *arg_dynamics)
 
virtual STaskBasegetTaskData ()
 
virtual void reset ()
 
virtual bool computeServo (const SRobotSensors *arg_sensors)
 
virtual bool computeModel (const SRobotSensors *arg_sensors)
 
 CTaskOpPosContactForce ()
 
virtual ~CTaskOpPosContactForce ()
 
void setGoal (const Eigen::VectorXd &arg_goal)
 
void setGoalVel (const Eigen::VectorXd &arg_goal)
 
void setGoalAcc (const Eigen::VectorXd &arg_goal)
 
sBool achievedGoalPos ()
 
virtual bool setGoalPos (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
 
virtual sBool hasBeenInit ()
 
virtual sBool setActivated (sBool arg_activate)
 
virtual sBool hasBeenActivated ()
 

Protected Attributes

sBool has_been_init_
 
CDynamicsBasedynamics_
 

Private Attributes

STaskOpPosContactForcedata_
 
Eigen::VectorXd tmp1
 
Eigen::VectorXd tmp2
 
Eigen::ColPivHouseholderQR
< Eigen::Matrix3d > 
qr_
 
sBool lambda_inv_singular_
 
Eigen::JacobiSVD< Eigen::Matrix3d > svd_
 
Eigen::Matrix3d singular_values_
 

Detailed Description

Computes the operational space forces for a single 3-d (x,y,z) goal point Euclidean task

It computes:

  1. The task model (computes, mass, jacobian, inv jacobian, coriolis, centrifugal and gravity matrices/vectors).
  2. The task servo (computes the dynamically decoupled task forces and the torques. uses the task model to do so).

Constructor & Destructor Documentation

scl::CTaskOpPosContactForce::CTaskOpPosContactForce ( )

Default constructor : Does nothing

virtual scl::CTaskOpPosContactForce::~CTaskOpPosContactForce ( )
inlinevirtual

Default destructor : Does nothing.

Member Function Documentation

bool scl::CTaskOpPosContactForce::achievedGoalPos ( )

Whether the task has achieved its goal position.

bool scl::CTaskOpPosContactForce::computeModel ( const SRobotSensors arg_sensors)
virtual

Computes the dynamics (task model) Assumes that the data_->model_.gc_model_ has been updated.

Implements scl::CTaskBase.

bool scl::CTaskOpPosContactForce::computeServo ( const SRobotSensors arg_sensors)
virtual

Computes the task torques

Implements scl::CTaskBase.

virtual bool scl::CTaskBase::getAcc ( Eigen::VectorXd &  arg_acc) const
inlinevirtualinherited

Gets the current acceleration. Returns false if not supported by task.

Reimplemented in scl::CTaskOpPosPIDA1OrderInfTime, scl::CTaskOpPos, and scl::CTaskComPos.

virtual bool scl::CTaskBase::getGoalAcc ( Eigen::VectorXd &  arg_goal) const
inlinevirtualinherited

Gets the current goal acceleration. Returns false if not supported by task.

Reimplemented in scl::CTaskOpPosPIDA1OrderInfTime, scl::CTaskOpPos, scl::CTaskGcSet, scl::CTaskComPos, and scl::CTaskGc.

virtual bool scl::CTaskBase::getGoalPos ( Eigen::VectorXd &  arg_goal) const
inlinevirtualinherited

Gets the current goal position. Returns false if not supported by task.

Reimplemented in scl::CTaskOpPosPIDA1OrderInfTime, scl::CTaskOpPos, scl::CTaskGcSet, scl::CTaskComPos, scl::CTaskGcLimitCentering, and scl::CTaskGc.

virtual bool scl::CTaskBase::getGoalVel ( Eigen::VectorXd &  arg_goal) const
inlinevirtualinherited

Gets the current goal velocity. Returns false if not supported by task.

Reimplemented in scl::CTaskOpPosPIDA1OrderInfTime, scl::CTaskOpPos, scl::CTaskGcSet, scl::CTaskComPos, and scl::CTaskGc.

virtual bool scl::CTaskBase::getPos ( Eigen::VectorXd &  arg_pos) const
inlinevirtualinherited

Gets the current position. Returns false if not supported by task.

Reimplemented in scl::CTaskOpPosPIDA1OrderInfTime, scl::CTaskOpPos, scl::CTaskComPos, and scl::CTaskGcLimitCentering.

STaskBase * scl::CTaskOpPosContactForce::getTaskData ( )
virtual

Return this task controller's task data structure.

Implements scl::CTaskBase.

virtual bool scl::CTaskBase::getVel ( Eigen::VectorXd &  arg_vel) const
inlinevirtualinherited

Gets the current velocity. Returns false if not supported by task.

Reimplemented in scl::CTaskOpPosPIDA1OrderInfTime, scl::CTaskOpPos, and scl::CTaskComPos.

virtual sBool scl::CTaskBase::hasBeenActivated ( )
inlinevirtualinherited

Activated = All dynamic parameters and data structures are up to date and task is actively contributing to a controller.

virtual sBool scl::CTaskBase::hasBeenInit ( )
inlinevirtualinherited

Initialized = All static parameters are set and data structures are up to date. Ready to contribute to a controller.

bool scl::CTaskOpPosContactForce::init ( STaskBase arg_task_data,
CDynamicsBase arg_dynamics 
)
virtual

Initializes the task object. Required to set output gc force dofs

Implements scl::CTaskBase.

void scl::CTaskOpPosContactForce::reset ( )
virtual

Resets the task by removing its data. NOTE : Does not deallocate its data structure

Implements scl::CTaskBase.

virtual sBool scl::CTaskBase::setActivated ( sBool  arg_activate)
inlinevirtualinherited

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

void scl::CTaskOpPosContactForce::setGoal ( const Eigen::VectorXd &  arg_goal)
inline

Sets the current goal position

void scl::CTaskOpPosContactForce::setGoalAcc ( const Eigen::VectorXd &  arg_goal)
inlinevirtual

Sets the current goal acceleration

Reimplemented from scl::CTaskBase.

virtual bool scl::CTaskBase::setGoalPos ( const Eigen::VectorXd &  arg_goal)
inlinevirtualinherited

Sets the current goal position. Returns false if not supported by task.

Reimplemented in scl::CTaskOpPosPIDA1OrderInfTime, scl::CTaskOpPos, scl::CTaskGcSet, scl::CTaskComPos, scl::CTaskGcLimitCentering, and scl::CTaskGc.

void scl::CTaskOpPosContactForce::setGoalVel ( const Eigen::VectorXd &  arg_goal)
inlinevirtual

Sets the current goal velocity

Reimplemented from scl::CTaskBase.

Member Data Documentation

STaskOpPosContactForce* scl::CTaskOpPosContactForce::data_
private

The actual data structure for this computational object

CDynamicsBase* scl::CTaskBase::dynamics_
protectedinherited

A Dynamics model required to compute the task's dynamics

sBool scl::CTaskBase::has_been_init_
protectedinherited

Initialized = All static parameters are set and data structures are up to date.

Set to true in init()

sBool scl::CTaskOpPosContactForce::lambda_inv_singular_
private

True when the lambda_inv matrix turns singular.

Eigen::ColPivHouseholderQR<Eigen::Matrix3d> scl::CTaskOpPosContactForce::qr_
private

For inverting the lambda matrix (when it gets singular)

Eigen::JacobiSVD<Eigen::Matrix3d > scl::CTaskOpPosContactForce::svd_
private

For inverting the operational space inertia matrix near singularities. 3x3 for operational point tasks.

Eigen::VectorXd scl::CTaskOpPosContactForce::tmp1
private

Temporary variables


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