openrave.org

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
OpenRAVE::ControllerBase Class Referenceabstract

[interface] Abstract base class to encapsulate a local controller. If not specified, method is not multi-thread safe. See Controller Concepts. More...

#include <controller.h>

Inheritance diagram for OpenRAVE::ControllerBase:
Inheritance graph
[legend]
Collaboration diagram for OpenRAVE::ControllerBase:
Collaboration graph
[legend]

Public Member Functions

 ControllerBase (EnvironmentBasePtr penv)
 
virtual ~ControllerBase ()
 
virtual bool Init (RobotBasePtr robot, const std::vector< int > &dofindices, int nControlTransformation)=0
 initializes the controller and specifies the controlled dof
 
virtual const std::vector< int > & GetControlDOFIndices () const =0
 returns the dof indices controlled
 
virtual int IsControlTransformation () const =0
 returns non-zero value if base affine transformation is controlled.
 
virtual RobotBasePtr GetRobot () const =0
 
virtual void Reset (int options=0)=0
 Resets the current controller trajectories and any other state associated with the robot.
 
virtual bool SetDesired (const std::vector< dReal > &values, TransformConstPtr trans=TransformConstPtr())=0
 go to a specific position in configuration space. [multi-thread safe]
 
virtual bool SetPath (TrajectoryBaseConstPtr ptraj)=0
 Follow a path in configuration space, adds to the queue of trajectories already in execution. [multi-thread safe]
 
virtual void SimulationStep (dReal fTimeElapsed)=0
 Simulate one step forward for controllers running in the simulation environment.
 
virtual bool IsDone ()=0
 Return true when goal reached.
 
virtual dReal GetTime () const OPENRAVE_DUMMY_IMPLEMENTATION
 return the time along the current command
 
virtual void GetVelocity (std::vector< dReal > &vel) const OPENRAVE_DUMMY_IMPLEMENTATION
 get velocity of the controlled DOFs
 
virtual void GetTorque (std::vector< dReal > &torque) const OPENRAVE_DUMMY_IMPLEMENTATION
 
- Public Member Functions inherited from OpenRAVE::InterfaceBase
 InterfaceBase (InterfaceType type, EnvironmentBasePtr penv)
 
virtual ~InterfaceBase ()
 
InterfaceType GetInterfaceType () const
 
const std::string & GetXMLId () const
 
const std::string & GetPluginName () const
 
EnvironmentBasePtr GetEnv () const
 
const READERSMAPGetReadableInterfaces () const
 Returns the raw map reference, this is not multithread safe and the GetInterfaceMutex should be locked before using.
 
virtual XMLReadablePtr GetReadableInterface (const std::string &xmltag) const
 Returns the readable interface. [multi-thread safe]
 
virtual XMLReadablePtr SetReadableInterface (const std::string &xmltag, XMLReadablePtr readable)
 Set a new readable interface and return the previously set interface if it exists. [multi-thread safe]
 
virtual const std::string & GetDescription () const
 Documentation of the interface in reStructuredText format. See Documenting Interfaces. [multi-thread safe]
 
virtual void SetDescription (const std::string &description)
 sets a description [multi-thread safe]
 
virtual void SetUserData (const std::string &key, UserDataPtr data) const
 set user data for a specific key. [multi-thread safe]
 
virtual UserDataPtr GetUserData (const std::string &key=std::string()) const
 return the user custom data [multi-thread safe]
 
virtual bool RemoveUserData (const std::string &key) const
 removes a user data pointer. if user data pointer does not exist, then return 0, otherwise 1. [multi-thread safe]
 
virtual void SetUserData (UserDataPtr data) RAVE_DEPRECATED
 
virtual const std::string & GetURI () const
 the URI used to load the interface (sometimes this is not possible if the definition lies inside an environment file). [multi-thread safe]
 
virtual const std::string & GetXMLFilename () const
 
virtual void Clone (InterfaceBaseConstPtr preference, int cloningoptions)
 Clone the contents of an interface to the current interface.
 
virtual bool SendCommand (std::ostream &os, std::istream &is)
 Used to send special commands to the interface and receive output.
 
virtual void Serialize (BaseXMLWriterPtr writer, int options=0) const
 serializes the interface
 

Static Public Member Functions

static InterfaceType GetInterfaceTypeStatic ()
 return the static interface type this class points to (used for safe casting)
 

Additional Inherited Members

- Public Types inherited from OpenRAVE::InterfaceBase
typedef std::map< std::string,
XMLReadablePtr,
CaseInsensitiveCompare
READERSMAP
 
- Protected Types inherited from OpenRAVE::InterfaceBase
typedef boost::function< bool(std::ostream
&, std::istream &)> 
InterfaceCommandFn
 The function to be executed for every command.
 
- Protected Member Functions inherited from OpenRAVE::InterfaceBase
virtual void RegisterCommand (const std::string &cmdname, InterfaceCommandFn fncmd, const std::string &strhelp)
 Registers a command and its help string. [multi-thread safe]
 
virtual void UnregisterCommand (const std::string &cmdname)
 Unregisters the command. [multi-thread safe]
 
virtual boost::shared_mutex & GetInterfaceMutex () const
 
- Protected Attributes inherited from OpenRAVE::InterfaceBase
std::string __description
 

Detailed Description

[interface] Abstract base class to encapsulate a local controller. If not specified, method is not multi-thread safe. See Controller Concepts.

Examples:
customreader.cpp.

Definition at line 30 of file controller.h.

Constructor & Destructor Documentation

OpenRAVE::ControllerBase::ControllerBase ( EnvironmentBasePtr  penv)
inline

Definition at line 33 of file controller.h.

virtual OpenRAVE::ControllerBase::~ControllerBase ( )
inlinevirtual

Definition at line 35 of file controller.h.

Member Function Documentation

virtual const std::vector<int>& OpenRAVE::ControllerBase::GetControlDOFIndices ( ) const
pure virtual

returns the dof indices controlled

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.

static InterfaceType OpenRAVE::ControllerBase::GetInterfaceTypeStatic ( )
inlinestatic

return the static interface type this class points to (used for safe casting)

Definition at line 39 of file controller.h.

virtual RobotBasePtr OpenRAVE::ControllerBase::GetRobot ( ) const
pure virtual
virtual dReal OpenRAVE::ControllerBase::GetTime ( ) const
virtual

return the time along the current command

Reimplemented in OpenRAVE::MultiController, and cppexamples::CustomController.

virtual void OpenRAVE::ControllerBase::GetTorque ( std::vector< dReal > &  torque) const
virtual

get torque/current/strain values

Parameters
torque[out] - returns the current torque/current/strain exerted by each of the dofs from outside forces. The feedforward and friction terms should be subtracted out already

Reimplemented in OpenRAVE::MultiController.

virtual void OpenRAVE::ControllerBase::GetVelocity ( std::vector< dReal > &  vel) const
virtual

get velocity of the controlled DOFs

Parameters
vel[out] - current velocity of robot from the dof

Reimplemented in OpenRAVE::MultiController.

virtual bool OpenRAVE::ControllerBase::Init ( RobotBasePtr  robot,
const std::vector< int > &  dofindices,
int  nControlTransformation 
)
pure virtual

initializes the controller and specifies the controlled dof

Parameters
robotthe robot that uses the controller
dofindicesthe indices that controller will have exclusive access to
nControlTransformation
See Also
IsControlTransformation
Returns
true on successful initialization

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.

virtual int OpenRAVE::ControllerBase::IsControlTransformation ( ) const
pure virtual

returns non-zero value if base affine transformation is controlled.

Only one controller can modify translation and orientation per robot. For now, the two cannot be divided.

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.

virtual bool OpenRAVE::ControllerBase::IsDone ( )
pure virtual

Return true when goal reached.

If a trajectory was set, return only when trajectory is done. If SetDesired was called, return only when robot is is at the desired location. If SendCommand sent, returns true when the command was completed by the hand.

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.

virtual void OpenRAVE::ControllerBase::Reset ( int  options = 0)
pure virtual

Resets the current controller trajectories and any other state associated with the robot.

Parameters
options- specific options that can be used to control what to reset

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.

virtual bool OpenRAVE::ControllerBase::SetDesired ( const std::vector< dReal > &  values,
TransformConstPtr  trans = TransformConstPtr() 
)
pure virtual

go to a specific position in configuration space. [multi-thread safe]

Parameters
valuesthe final configuration in the control dofs
transthe transformation of the base. If not specified will use the current robot transformation. Ignored if controller does not use it
Returns
true if position operation successful.

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.

virtual bool OpenRAVE::ControllerBase::SetPath ( TrajectoryBaseConstPtr  ptraj)
pure virtual

Follow a path in configuration space, adds to the queue of trajectories already in execution. [multi-thread safe]

Parameters
ptraj- the trajectory
Returns
true if trajectory operation successful

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.

virtual void OpenRAVE::ControllerBase::SimulationStep ( dReal  fTimeElapsed)
pure virtual

Simulate one step forward for controllers running in the simulation environment.

Parameters
fTimeElapsed- time elapsed in simulation environment since last frame

Implemented in OpenRAVE::MultiController, and cppexamples::CustomController.


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