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

robot::control::kinematics::SVDFullSpaceSolver Class Reference

Inheritance diagram for robot::control::kinematics::SVDFullSpaceSolver:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SVDFullSpaceSolver ()
virtual String className () const
virtual Object & clone () const
virtual Matrix solve (const Matrix &A_in, const Vector &b_in, array< Int > &dependentRowsEliminated)
 Computes a set of vectors gi that can be used to find solutions to Ax=b for x.

void setStopOnIllCondition (bool stopOnIllCondition)
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

 SVDFullSpaceSolver (const SVDFullSpaceSolver &fsp)

Static Protected Member Functions

bool isSmall (Real a)

Protected Attributes

bool stopOnIllCondition
 if true, if A is ill-conditioned (SVD gives large condition number), an exception is thrown

int _refCount
bool onUnreferenceEnabled

Detailed Description

Solver that finds the set of vectors gi, such that dq = sum ti.gi s.t. sum tk=1 is a solution to Jdq=dx, and dq = sum ti.gi s.t. sum tk=0 is a solution to Jdq=0 (null-space) using Singular Value Decomposition (SVD)

Definition at line 42 of file SVDFullSpaceSolver.


Constructor & Destructor Documentation

robot::control::kinematics::SVDFullSpaceSolver::SVDFullSpaceSolver  ) 
 

Referenced by clone().

robot::control::kinematics::SVDFullSpaceSolver::SVDFullSpaceSolver const SVDFullSpaceSolver fsp  )  [inline, protected]
 

Definition at line 72 of file SVDFullSpaceSolver.


Member Function Documentation

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

virtual Object& robot::control::kinematics::SVDFullSpaceSolver::clone  )  const [inline, virtual]
 

Definition at line 48 of file SVDFullSpaceSolver.

References NewObj, and SVDFullSpaceSolver().

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

bool robot::control::kinematics::SVDFullSpaceSolver::isSmall Real  a  )  [inline, static, protected]
 

Definition at line 77 of file SVDFullSpaceSolver.

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

void robot::control::kinematics::SVDFullSpaceSolver::setStopOnIllCondition bool  stopOnIllCondition  )  [inline]
 

if true, if A is ill-conditioned (SVD gives large condition number), an exception is thrown in solve() otherwise, all 0 singular values are considered infinite (the corresponding elements of Sinv are set to 0) and a solution is returned (which should have least-norm error from requested b)

Definition at line 69 of file SVDFullSpaceSolver.

virtual Matrix robot::control::kinematics::SVDFullSpaceSolver::solve const Matrix A_in,
const Vector b_in,
array< Int > &  dependentRowsEliminated
[virtual]
 

Computes a set of vectors gi that can be used to find solutions to Ax=b for x.

Parameters:
A_in NxM Matrix
b_in N-dim Vector
dependentRowsEliminated is filled out with the indices of rows of A_in that are eliminated from the computation because they are dependent (actually if Ai|bi is dependent. If only Ai is dependent but bi conflicts an exception is throw because solution is impossible)
Returns:
returns the set of vector gis as columns of a Matrix
Exceptions:
std::invalid_argument if gis can't be found for the provided A & b

Implements robot::control::kinematics::FullSpaceSolver.

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

bool robot::control::kinematics::SVDFullSpaceSolver::stopOnIllCondition [protected]
 

if true, if A is ill-conditioned (SVD gives large condition number), an exception is thrown

Definition at line 75 of file SVDFullSpaceSolver.


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