This class implements the Stack of Task. It allows to deal with the priority of the controllers through the shell. The controllers can be either constraints either tasks. More...
#include <sot/core/sot-qr.hh>
Public Member Functions | |
virtual const std::string & | getClassName (void) const |
Returns the name of this class. More... | |
SotQr (const std::string &name) | |
Default constructor. More... | |
void | defineFreeFloatingJoints (const unsigned int &jointIdFirst, const unsigned int &jointIdLast=-1) |
This method defines the part of the state vector which correspond to the free flyer of the robot. More... | |
virtual void | commandLine (const std::string &cmdLine, std::istringstream &cmdArgs, std::ostream &os) |
This method deals with the command line. The command given in argument is send to the stack of tasks by the shell. The command understood by sot are: More... | |
virtual std::ostream & | writeGraph (std::ostream &os) const |
This method write the priority between tasks in the output stream os. More... | |
Methods to handle the stack. | |
void | push (TaskAbstract &task) |
Push the task in the stack. It has a lowest priority than the previous ones. If this is the first task, then it has the highest priority. More... | |
TaskAbstract & | pop (void) |
Pop the task from the stack. This method removes the task with the smallest priority in the task. The other are projected in the null-space of their predecessors. More... | |
bool | exist (const TaskAbstract &task) |
This method allows to know if a task exists or not. More... | |
void | remove (const TaskAbstract &task) |
Remove a task regardless to its position in the stack. It removes also the signals connected to the output signal of this stack. More... | |
void | removeDependency (const TaskAbstract &key) |
This method removes the output signals depending on this task. More... | |
void | up (const TaskAbstract &task) |
This method makes the task to swap with the task having the immediate superior priority. More... | |
void | down (const TaskAbstract &task) |
This method makes the task to swap with the task having the immediate inferior priority. More... | |
void | clear (void) |
Remove all the tasks from the stack. More... | |
Methods to handle the constraints. | |
void | addConstraint (Constraint &constraint) |
Add a constraint to the stack with the current level of priority. More... | |
void | removeConstraint (const Constraint &constraint) |
Remove a constraint from the stack. More... | |
void | clearConstraint (void) |
Remove all the constraints from the stack. More... | |
Methods to compute the control law following the | |
recursive definition of the stack of tasks. | |
ml::Vector & | computeControlLaw (ml::Vector &control, const int &time) |
Compute the control law. More... | |
ml::Matrix & | computeConstraintProjector (ml::Matrix &Proj, const int &time) |
Compute the projector of the constraint. More... | |
![]() | |
Entity (const std::string &name) | |
virtual | ~Entity () |
const std::string & | getName () const |
virtual std::string | getDocString () const |
bool | hasSignal (const std::string &signame) const |
SignalBase< int > & | getSignal (const std::string &signalName) |
const SignalBase< int > & | getSignal (const std::string &signalName) const |
std::ostream & | displaySignalList (std::ostream &os) const |
virtual std::ostream & | writeCompletionList (std::ostream &os) const |
virtual SignalBase< int > * | test () |
virtual void | test2 (SignalBase< int > *) |
const std::string & | getCommandList () const |
CommandMap_t | getNewStyleCommandMap () |
command::Command * | getNewStyleCommand (const std::string &cmdName) |
SignalMap | getSignalMap () const |
Public Attributes | |
Methods to handle signals | |
dg::SignalPtr< ml::Vector, int > | q0SIN |
Intrinsec velocity of the robot, that is used to initialized the recurence of the SOT (e.g. velocity comming from the other OpenHRP plugins). More... | |
dg::SignalPtr< double, int > | inversionThresholdSIN |
This signal allow to change the threshold for the damped pseudo-inverse on-line. More... | |
dg::SignalTimeDependent< ml::Matrix, int > | constraintSOUT |
This signal allow to get the result of the Constraint projector. More... | |
dg::SignalTimeDependent< ml::Vector, int > | controlSOUT |
This signal allow to get the result of the computed control law. More... | |
Static Public Attributes | |
static const std::string | CLASS_NAME |
Specify the name of the class entity. More... | |
static const double | INVERSION_THRESHOLD_DEFAULT |
Threshold to compute the dumped pseudo inverse. More... | |
static const unsigned int | NB_JOINTS_DEFAULT |
Number of joints by default. More... | |
Protected Types | |
typedef std::list< TaskAbstract * > | StackType |
Defines a type for a list of tasks. More... | |
typedef std::list< Constraint * > | ConstraintListType |
Defines a type for a list of constraints. More... | |
Protected Attributes | |
StackType | stack |
This field is a list of controllers managed by the stack of tasks. More... | |
ConstraintListType | constraintList |
This field is a list of constraints managed by the stack of tasks. More... | |
unsigned int | ffJointIdFirst |
Defines an interval in the state vector of the robot which is the free flyer. More... | |
unsigned int | ffJointIdLast |
unsigned int | nbJoints |
Store the number of joints to be used in the command computed by the stack of tasks. More... | |
TaskAbstract * | taskGradient |
Store a pointer to compute the gradient. More... | |
ml::Matrix | Proj |
![]() | |
std::string | name |
SignalMap | signalMap |
CommandMap_t | commandMap |
Static Protected Attributes | |
static const unsigned int | FF_JOINT_ID_DEFAULT = 0 |
Defines a default joint. More... | |
Methods to display the stack of tasks. | |
virtual void | display (std::ostream &os) const |
SOTSOTQR_EXPORT friend std::ostream & | operator<< (std::ostream &os, const SotQr &sot) |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, SignalBase< int > * > | SignalMap |
typedef std::map< const std::string, command::Command *> | CommandMap_t |
![]() | |
void | addCommand (const std::string &name, command::Command *command) |
void | entityRegistration () |
void | entityDeregistration () |
void | signalRegistration (const SignalArray< int > &signals) |
void | signalDeregistration (const std::string &name) |
This class implements the Stack of Task. It allows to deal with the priority of the controllers through the shell. The controllers can be either constraints either tasks.
|
protected |
Defines a type for a list of constraints.
|
protected |
Defines a type for a list of tasks.
dynamicgraph::sot::SotQr::SotQr | ( | const std::string & | name | ) |
Default constructor.
void dynamicgraph::sot::SotQr::addConstraint | ( | Constraint & | constraint | ) |
Add a constraint to the stack with the current level of priority.
void dynamicgraph::sot::SotQr::clear | ( | void | ) |
Remove all the tasks from the stack.
void dynamicgraph::sot::SotQr::clearConstraint | ( | void | ) |
Remove all the constraints from the stack.
|
virtual |
This method deals with the command line. The command given in argument is send to the stack of tasks by the shell. The command understood by sot are:
Reimplemented from dynamicgraph::Entity.
ml::Matrix& dynamicgraph::sot::SotQr::computeConstraintProjector | ( | ml::Matrix & | Proj, |
const int & | time | ||
) |
Compute the projector of the constraint.
ml::Vector& dynamicgraph::sot::SotQr::computeControlLaw | ( | ml::Vector & | control, |
const int & | time | ||
) |
Compute the control law.
void dynamicgraph::sot::SotQr::defineFreeFloatingJoints | ( | const unsigned int & | jointIdFirst, |
const unsigned int & | jointIdLast = -1 |
||
) |
This method defines the part of the state vector which correspond to the free flyer of the robot.
|
virtual |
Display the stack of tasks in text mode as a tree.
Reimplemented from dynamicgraph::Entity.
void dynamicgraph::sot::SotQr::down | ( | const TaskAbstract & | task | ) |
This method makes the task to swap with the task having the immediate inferior priority.
bool dynamicgraph::sot::SotQr::exist | ( | const TaskAbstract & | task | ) |
This method allows to know if a task exists or not.
|
inlinevirtual |
Returns the name of this class.
Implements dynamicgraph::Entity.
TaskAbstract& dynamicgraph::sot::SotQr::pop | ( | void | ) |
Pop the task from the stack. This method removes the task with the smallest priority in the task. The other are projected in the null-space of their predecessors.
void dynamicgraph::sot::SotQr::push | ( | TaskAbstract & | task | ) |
Push the task in the stack. It has a lowest priority than the previous ones. If this is the first task, then it has the highest priority.
void dynamicgraph::sot::SotQr::remove | ( | const TaskAbstract & | task | ) |
Remove a task regardless to its position in the stack. It removes also the signals connected to the output signal of this stack.
void dynamicgraph::sot::SotQr::removeConstraint | ( | const Constraint & | constraint | ) |
Remove a constraint from the stack.
void dynamicgraph::sot::SotQr::removeDependency | ( | const TaskAbstract & | key | ) |
This method removes the output signals depending on this task.
void dynamicgraph::sot::SotQr::up | ( | const TaskAbstract & | task | ) |
This method makes the task to swap with the task having the immediate superior priority.
|
virtual |
This method write the priority between tasks in the output stream os.
Reimplemented from dynamicgraph::Entity.
|
friend |
Wrap the previous method around an operator.
|
static |
Specify the name of the class entity.
|
protected |
This field is a list of constraints managed by the stack of tasks.
dg::SignalTimeDependent<ml::Matrix,int> dynamicgraph::sot::SotQr::constraintSOUT |
This signal allow to get the result of the Constraint projector.
dg::SignalTimeDependent<ml::Vector,int> dynamicgraph::sot::SotQr::controlSOUT |
This signal allow to get the result of the computed control law.
|
staticprotected |
Defines a default joint.
|
protected |
Defines an interval in the state vector of the robot which is the free flyer.
|
protected |
|
static |
Threshold to compute the dumped pseudo inverse.
dg::SignalPtr<double,int> dynamicgraph::sot::SotQr::inversionThresholdSIN |
This signal allow to change the threshold for the damped pseudo-inverse on-line.
|
static |
Number of joints by default.
|
protected |
Store the number of joints to be used in the command computed by the stack of tasks.
|
protected |
Projection used to compute the control law.
dg::SignalPtr<ml::Vector,int> dynamicgraph::sot::SotQr::q0SIN |
Intrinsec velocity of the robot, that is used to initialized the recurence of the SOT (e.g. velocity comming from the other OpenHRP plugins).
|
protected |
This field is a list of controllers managed by the stack of tasks.
|
protected |
Store a pointer to compute the gradient.