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

robot::control::kinematics::LeastNormIKSolver Class Reference

Inverse kinematics solver using the Moore-Penrose Pseudo Inverse. More...

Inheritance diagram for robot::control::kinematics::LeastNormIKSolver:

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef std::bitset< sizeof(Int)*8 OptimizationConstraints )
enum  OptimizationMethod {
  DefaultMethod, PseudoInv, Lagrangian, BangBang,
  Simplex
}
enum  OptimizationCriterion { DefaultCriterion, LeastNorm, LeastFlow }
enum  OptimizationConstraint {
  DefaultConstraints, JointLimits, ObstacleAvoidance, Acceleration,
  EndEffectorImpact
}

Public Member Functions

 LeastNormIKSolver ()
virtual String className () const
virtual Vector solve (const Vector &dx, const Vector &x, const Vector &q, const base::Matrix &J, OptimizationMethod optMethod=PseudoInv, OptimizationCriterion optCriterion=LeastNorm, OptimizationConstraints optConstraints=OptimizationConstraints(DefaultConstraints), base::Orient::Representation orientationRepresentation=base::Orient::EulerRPY)
 Solve inverse kinematics.

virtual bool isConstraintTypeSupported (OptimizationConstraint optConstraint, OptimizationMethod optMethod=DefaultMethod, OptimizationCriterion optCriterion=DefaultCriterion)
 query if a particular constraint type is supported by this solver for a specific method & criterion

virtual void setProximitySensorData (const array< LinkProximityData > &proximityData, Real d)
virtual void setParameter (const String &name, Real value)
 Set implementation specific parameters. Unknown names will throw a std::invald_argument exception.

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 Attributes

ref< MPPseudoInvSolversolver
int _refCount
bool onUnreferenceEnabled

Detailed Description

Inverse kinematics solver using the Moore-Penrose Pseudo Inverse.

Equivelent to a least norm solution without any constraints.

Definition at line 43 of file LeastNormIKSolver.


Member Typedef Documentation

typedef std::bitset<sizeof(Int)*8 robot::control::kinematics::InverseKinematicsSolver::OptimizationConstraints) [inherited]
 

Definition at line 58 of file InverseKinematicsSolver.


Member Enumeration Documentation

enum robot::control::kinematics::InverseKinematicsSolver::OptimizationConstraint [inherited]
 

Enumeration values:
DefaultConstraints 
JointLimits 
ObstacleAvoidance 
Acceleration 
EndEffectorImpact 

Definition at line 55 of file InverseKinematicsSolver.

enum robot::control::kinematics::InverseKinematicsSolver::OptimizationCriterion [inherited]
 

Enumeration values:
DefaultCriterion 
LeastNorm 
LeastFlow 

Definition at line 54 of file InverseKinematicsSolver.

enum robot::control::kinematics::InverseKinematicsSolver::OptimizationMethod [inherited]
 

Enumeration values:
DefaultMethod 
PseudoInv 
Lagrangian 
BangBang 
Simplex 

Definition at line 53 of file InverseKinematicsSolver.


Constructor & Destructor Documentation

robot::control::kinematics::LeastNormIKSolver::LeastNormIKSolver  ) 
 


Member Function Documentation

virtual String robot::control::kinematics::LeastNormIKSolver::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 48 of file LeastNormIKSolver.

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 bool robot::control::kinematics::InverseKinematicsSolver::isConstraintTypeSupported OptimizationConstraint  optConstraint,
OptimizationMethod  optMethod = DefaultMethod,
OptimizationCriterion  optCriterion = DefaultCriterion
[inline, virtual, inherited]
 

query if a particular constraint type is supported by this solver for a specific method & criterion

Reimplemented in robot::control::kinematics::IKOR.

Definition at line 110 of file InverseKinematicsSolver.

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 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::InverseKinematicsSolver::setParameter const String &  name,
Real  value
[inline, virtual, inherited]
 

Set implementation specific parameters. Unknown names will throw a std::invald_argument exception.

Reimplemented in robot::control::kinematics::IKOR, and robot::control::kinematics::OldIKOR.

Definition at line 137 of file InverseKinematicsSolver.

References Exception.

virtual void robot::control::kinematics::InverseKinematicsSolver::setProximitySensorData const array< LinkProximityData > &  proximityData,
Real  d
[inline, virtual, inherited]
 

set proximity sensor data (array indices correspond to parameter elements of q) d - is 'danger distance' within which a constraint becomes active

Reimplemented in robot::control::kinematics::IKOR.

Definition at line 130 of file InverseKinematicsSolver.

virtual Vector robot::control::kinematics::LeastNormIKSolver::solve const Vector dx,
const Vector x,
const Vector q,
const base::Matrix J,
OptimizationMethod  optMethod = PseudoInv,
OptimizationCriterion  optCriterion = LeastNorm,
OptimizationConstraints  optConstraints = OptimizationConstraints(DefaultConstraints),
base::Orient::Representation  orientationRepresentation = base::Orient::EulerRPY
[virtual]
 

Solve inverse kinematics.

Takes current the joint parameters (q) and the required change in end-effector position (dx) and returns the changes in joint parameters (dq) that will achieve the requested dx.

Parameters:
dx see InverseKinematicsSolver
x see InverseKinematicsSolver
q see InverseKinematicsSolver
J see InverseKinematicsSolver
optMethod Ignored. The solver only provides a single solution, hence no optimization is necessary.
optCriterion Must be LeastNorm.
optConstraints Ignored. No constraints can be specified.
orientationRepresentation see InverseKinematicsSolver
Returns:
see InverseKinematicsSolver
Exceptions:
see MPPseudoInvSolver::solve()

Implements robot::control::kinematics::InverseKinematicsSolver.

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.


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().

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().

ref<MPPseudoInvSolver> robot::control::kinematics::LeastNormIKSolver::solver [protected]
 

Definition at line 76 of file LeastNormIKSolver.


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