Klamp't  0.8.1
Public Member Functions | Public Attributes | List of all members
OperationalSpaceController Struct Reference

A combination of multiple "tasks" that define a weighted optimization objective for the joint torques. More...

#include <OperationalSpaceController.h>

Inheritance diagram for OperationalSpaceController:
RobotController

Public Member Functions

 OperationalSpaceController (Robot &robot)
 
virtual const char * Type () const
 
virtual void Update (Real dt)
 
virtual void Reset ()
 
void TasksToTorques (Vector &t)
 
bool IsValid () const
 
- Public Member Functions inherited from RobotController
 RobotController (Robot &robot)
 
virtual bool ReadState (File &f)
 
virtual bool WriteState (File &f) const
 
virtual map< string, string > Settings () const
 
virtual bool GetSetting (const string &name, string &str) const
 
virtual bool SetSetting (const string &name, const string &str)
 
virtual vector< string > Commands () const
 
virtual bool SendCommand (const string &name, const string &str)
 
void SetPIDCommand (const Config &qdes)
 
void SetPIDCommand (const Config &qdes, const Config &dqdes)
 
void SetFeedforwardPIDCommand (const Config &qdes, const Config &dqdes, const Vector &torques)
 
void SetTorqueCommand (const Vector &torques)
 
bool GetCommandedConfig (Config &q)
 
bool GetCommandedVelocity (Config &dq)
 
bool GetSensedConfig (Config &q)
 
bool GetSensedVelocity (Config &dq)
 

Public Attributes

SmartPointer< IntegratedStateEstimatorstateEstimator
 
Vector3 gravity
 
vector< JointAccelTaskjointTasks
 
vector< WorkspaceAccelTaskworkspaceTasks
 
vector< COMAccelTaskcomTasks
 
vector< TorqueTasktorqueTasks
 
vector< ContactForceTaskcontactForceTasks
 
- Public Attributes inherited from RobotController
Robotrobot
 
Real time
 
Real nominalTimeStep
 a "desired" time step, by default 0, which acts as a hint to the simulator. Note that it doesn't have to abide the hint.
 
RobotSensorssensors
 sensor input (filled in by simulator)
 
RobotMotorCommandcommand
 motor command output (output to simulator)
 

Detailed Description

A combination of multiple "tasks" that define a weighted optimization objective for the joint torques.

For a contact-free robot, we have min_{T} gj(q''(T)) + gw(x''(T)) + gt(T) s.t. |T| <= Tmax where

For robots with contacts, we must have an estimate for the contact points in the list of ContactForceTasks. The problem is now:

min_{T,f} gj(q''(T,f)) + gw(x''(T,f)) + gt(T,f) + gf(f) s.t. |T| <= Tmax f >= 0 (represent f as a list of friction cone vectors) xf''(T,f) = 0 (contacts don't move into the object) with

If the xf''=0 constraint is not solvable, we add a penalty for xf'' movement and treat it as another workspace task.

Warning: not tested thoroughly.


The documentation for this struct was generated from the following file: