Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

robot::control::kinematics::IKORController Class Reference

IKOR (Inverse Kinematics On Redundant systems) Controller. More...

Inheritance diagram for robot::control::kinematics::IKORController:

Inheritance graph
[legend]
Collaboration diagram for robot::control::kinematics::IKORController:

Collaboration graph
[legend]
List of all members.

Public Types

enum  IKMethod { LeastNorm, FSPLagrangian }

Public Member Functions

 IKORController (IKMethod method, ref< robot::Robot > robot, Int manipulatorIndex, bool platformActive=false, bool orientationControl=true, base::Orient::Representation orientationRepresentation=base::Orient::EulerRPY)
virtual String className () const
virtual void setControlInterface (ref< ControlInterface > controlInterface)
 Requires a "JointPositionControl" ControlInterface type.

virtual bool isConnected () const
virtual bool iterate (const base::Time &time)
virtual array< std::pair<
String, String > > 
controlInterfaces () const
virtual ref< ControlInterfacegetControlInterface (String interfaceName="") throw (std::invalid_argument)
 Provide ControlInterface for named interface (or default/possibly-only interface).

void setProximityDangerDistance (Real d)
 proximity distance below which obstacle avoidance constraints become active

virtual bool isSameKindAs (const ReferencedObject &) const
virtual bool isSameKindAs (const Object &) const
void reference () const
bool unreference () const
const int referenceCount () const
void enableOnUnreferenceCall (bool enabled)
virtual void onUnreference () const

Protected Member Functions

void calcEEPositionOrientation ()
 Calculate the End-Effector position and orientation from the forward kinematics transform.


Protected Attributes

IKMethod method
 Inverse Kinematics method to employ (e.g. FSP).

ref< const robot::Robotrobot
 Robot to be controlled.

bool platformActive
 consider first dof(s) to be the platform?

bool orientationControl
 position & orientation control of EE, or just position control?

base::Orient::Representation orientRep
 representation of the orientation components of the interface inputs/outputs

robot::KinematicChain manipChain
 kinematic chain of the manipulator (without any tools)

Real d
ref< InverseKinematicsSolverikSolver
 Solvers to use for computing IK.

InverseKinematicsSolver::OptimizationMethod optMethod
InverseKinematicsSolver::OptimizationCriterion optCriterion
InverseKinematicsSolver::OptimizationConstraints optConstraints
Vector tx
 requested target End-Effector position

Vector x
 temporary to hold last computed EE position/orient

Vector q
 corresponding joint variables for posEE

ref< ControlInterfacemanipulatorInterface
 position ControlInterface for manipulator

ref< ControlInterfaceproxInterface
 proximity sensor interface (or 0)

Vector linkPositions
 positions of origins of each link (3*M components - i.e. (x,y,z)*M )

int _refCount
bool onUnreferenceEnabled

Static Protected Attributes

array< String > inputName
 name of EEPositionControlInterface inputs

array< String > outputName
 name of EEPositionControlInterface outputs


Friends

class EEPositionControlInterface

Detailed Description

IKOR (Inverse Kinematics On Redundant systems) Controller.

An inverse kinematics controller for redundant manipulators. Can use either a least norm solution method (without constraints) or the Full Space Parameterization (FSP) method (with a selection of optimization method, criteria and constraints).

Requires the following ControlInterface (:type)

:JointPositionControl

Provides the following ControlInterfaces (name:type)

manipulatorEEPosition:EndEffectorPositionControl

manipulatorLinkPositions:LinkOriginPositions

Definition at line 63 of file IKORController.


Member Enumeration Documentation

enum robot::control::kinematics::IKORController::IKMethod
 

Enumeration values:
LeastNorm 
FSPLagrangian 

Definition at line 66 of file IKORController.


Constructor & Destructor Documentation

robot::control::kinematics::IKORController::IKORController IKMethod  method,
ref< robot::Robot robot,
Int  manipulatorIndex,
bool  platformActive = false,
bool  orientationControl = true,
base::Orient::Representation  orientationRepresentation = base::Orient::EulerRPY
 


Member Function Documentation

void robot::control::kinematics::IKORController::calcEEPositionOrientation  )  [protected]
 

Calculate the End-Effector position and orientation from the forward kinematics transform.

caches q & x. Representation of orientation component is orientRep

virtual String robot::control::kinematics::IKORController::className  )  const [inline, virtual]
 

return the name of the object's class type. Must be defined by derived classes.

Implements base::Object.

Definition at line 72 of file IKORController.

virtual array<std::pair<String,String> > robot::control::kinematics::IKORController::controlInterfaces  )  const [virtual]
 

void base::Referenced::enableOnUnreferenceCall bool  enabled  )  [inline, inherited]
 

If enabled, each call to unreference() will also call virtual method onUnreference()

Definition at line 115 of file Referenced.

References base::Referenced::onUnreferenceEnabled.

virtual ref<ControlInterface> robot::control::kinematics::IKORController::getControlInterface String  interfaceName = ""  )  throw (std::invalid_argument) [virtual]
 

Provide ControlInterface for named interface (or default/possibly-only interface).

Exceptions:
std::invalid_argument if the specified interface name is unknown.

Implements robot::Controllable.

virtual bool robot::control::kinematics::IKORController::isConnected  )  const [inline, virtual]
 

Query if the Controller has been passed all the ControlInterfaces it needs via setControlInterface()

Reimplemented from robot::Controller.

Definition at line 78 of file IKORController.

References manipulatorInterface.

virtual bool base::Object::isSameKindAs const Object  )  const [inline, virtual, inherited]
 

Definition at line 47 of file Object.

virtual bool base::ReferencedObject::isSameKindAs const ReferencedObject  )  const [inline, virtual, inherited]
 

Definition at line 52 of file ReferencedObject.

virtual bool robot::control::kinematics::IKORController::iterate const base::Time time  )  [virtual]
 

Execute an iteration of the control loop. returns true if it wants to quit the loop - however this may be ignored by the user/caller.

Implements robot::Controller.

virtual void base::Referenced::onUnreference  )  const [inline, virtual, inherited]
 

Called by unreference() if enabled via enableOnUnreferenceCall(true). Typically overridden in subclasses that wish to know about unreference() calls - for example to handle manually breaking cyclic references

Reimplemented in robot::control::ControllableAdaptor::AdaptorControlInterface, and robot::control::ControllableAdaptor.

Definition at line 121 of file Referenced.

Referenced by base::Referenced::unreference().

void base::Referenced::reference  )  const [inline, inherited]
 

Increment the reference count by one, indicating that this object has another pointer which is referencing it.

Definition at line 65 of file Referenced.

References base::Referenced::_refCount.

const int base::Referenced::referenceCount  )  const [inline, inherited]
 

Return the number pointers currently referencing this object.

Definition at line 112 of file Referenced.

References base::Referenced::_refCount.

Referenced by robot::control::ControllableAdaptor::AdaptorControlInterface::onUnreference().

virtual void robot::control::kinematics::IKORController::setControlInterface ref< ControlInterface controlInterface  )  [virtual]
 

Requires a "JointPositionControl" ControlInterface type.

Implements robot::Controller.

void robot::control::kinematics::IKORController::setProximityDangerDistance Real  d  )  [inline]
 

proximity distance below which obstacle avoidance constraints become active

Definition at line 87 of file IKORController.

bool base::Referenced::unreference  )  const [inline, inherited]
 

Decrement the reference count by one, indicating that a pointer to this object is referencing it. If the refence count goes to zero, it is assumed that this object is nolonger referenced and is automatically deleted.

Definition at line 81 of file Referenced.

References base::Referenced::_refCount, Exception, base::Referenced::onUnreference(), and base::Referenced::onUnreferenceEnabled.


Friends And Related Function Documentation

friend class EEPositionControlInterface [friend]
 

Definition at line 182 of file IKORController.


Member Data Documentation

int base::Referenced::_refCount [mutable, protected, inherited]
 

Definition at line 136 of file Referenced.

Referenced by base::Referenced::reference(), base::Referenced::referenceCount(), base::Referenced::Referenced(), base::Referenced::unreference(), and base::Referenced::~Referenced().

Real robot::control::kinematics::IKORController::d [protected]
 

Definition at line 98 of file IKORController.

ref<InverseKinematicsSolver> robot::control::kinematics::IKORController::ikSolver [protected]
 

Solvers to use for computing IK.

Definition at line 101 of file IKORController.

array<String> robot::control::kinematics::IKORController::inputName [static, protected]
 

name of EEPositionControlInterface inputs

Definition at line 177 of file IKORController.

Vector robot::control::kinematics::IKORController::linkPositions [mutable, protected]
 

positions of origins of each link (3*M components - i.e. (x,y,z)*M )

Definition at line 174 of file IKORController.

robot::KinematicChain robot::control::kinematics::IKORController::manipChain [protected]
 

kinematic chain of the manipulator (without any tools)

Definition at line 96 of file IKORController.

ref<ControlInterface> robot::control::kinematics::IKORController::manipulatorInterface [protected]
 

position ControlInterface for manipulator

Definition at line 109 of file IKORController.

Referenced by isConnected().

IKMethod robot::control::kinematics::IKORController::method [protected]
 

Inverse Kinematics method to employ (e.g. FSP).

Definition at line 90 of file IKORController.

bool base::Referenced::onUnreferenceEnabled [protected, inherited]
 

Definition at line 137 of file Referenced.

Referenced by base::Referenced::enableOnUnreferenceCall(), base::Referenced::Referenced(), and base::Referenced::unreference().

InverseKinematicsSolver::OptimizationConstraints robot::control::kinematics::IKORController::optConstraints [protected]
 

Definition at line 104 of file IKORController.

InverseKinematicsSolver::OptimizationCriterion robot::control::kinematics::IKORController::optCriterion [protected]
 

Definition at line 103 of file IKORController.

InverseKinematicsSolver::OptimizationMethod robot::control::kinematics::IKORController::optMethod [protected]
 

Definition at line 102 of file IKORController.

bool robot::control::kinematics::IKORController::orientationControl [protected]
 

position & orientation control of EE, or just position control?

Definition at line 93 of file IKORController.

base::Orient::Representation robot::control::kinematics::IKORController::orientRep [protected]
 

representation of the orientation components of the interface inputs/outputs

Definition at line 94 of file IKORController.

array<String> robot::control::kinematics::IKORController::outputName [static, protected]
 

name of EEPositionControlInterface outputs

Definition at line 178 of file IKORController.

bool robot::control::kinematics::IKORController::platformActive [protected]
 

consider first dof(s) to be the platform?

Definition at line 92 of file IKORController.

ref<ControlInterface> robot::control::kinematics::IKORController::proxInterface [protected]
 

proximity sensor interface (or 0)

Definition at line 110 of file IKORController.

Vector robot::control::kinematics::IKORController::q [mutable, protected]
 

corresponding joint variables for posEE

Definition at line 107 of file IKORController.

ref<const robot::Robot> robot::control::kinematics::IKORController::robot [protected]
 

Robot to be controlled.

Definition at line 91 of file IKORController.

Vector robot::control::kinematics::IKORController::tx [protected]
 

requested target End-Effector position

Definition at line 105 of file IKORController.

Vector robot::control::kinematics::IKORController::x [mutable, protected]
 

temporary to hold last computed EE position/orient

Definition at line 106 of file IKORController.


The documentation for this class was generated from the following file:
Generated on Thu Jul 29 16:42:32 2004 for OpenSim by doxygen 1.3.6