33 #ifndef DART_DYNAMICS_INVERSEKINEMATICS_HPP_
34 #define DART_DYNAMICS_INVERSEKINEMATICS_HPP_
135 bool
solve(
bool applySolution = true);
143 bool solve(
Eigen::VectorXd& positions,
bool applySolution = true);
218 Eigen::VectorXd& positions,
bool allowIncompleteResult = true);
271 template <class DegreeOfFreedomT>
272 void setDofs(const
std::vector<DegreeOfFreedomT*>& _dofs);
310 const
std::shared_ptr<optimizer::
Function>& _nsObjective);
325 template <class IKErrorMethod, typename... Args>
340 template <class IKGradientMethod, typename... Args>
365 std::shared_ptr<const optimizer::Problem>
getProblem() const;
377 void setSolver(const
std::shared_ptr<optimizer::Solver>& _newSolver);
383 std::shared_ptr<const optimizer::Solver>
getSolver() const;
559 typedef std::pair<Eigen::Vector6d, Eigen::Vector6d>
Bounds;
579 std::pair<Eigen::Vector6d, Eigen::Vector6d>
mBounds;
594 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
600 const std::string& _methodName,
607 virtual std::unique_ptr<ErrorMethod>
clone(
625 virtual Eigen::Isometry3d computeDesiredTransform(
633 const std::string& getMethodName()
const;
643 void setBounds(
const std::pair<Eigen::Vector6d, Eigen::Vector6d>& _bounds);
646 const std::pair<Eigen::Vector6d, Eigen::Vector6d>& getBounds()
const;
649 void setAngularBounds(
650 const Eigen::Vector3d& _lower
652 const Eigen::Vector3d& _upper
656 void setAngularBounds(
657 const std::pair<Eigen::Vector3d, Eigen::Vector3d>& _bounds);
660 std::pair<Eigen::Vector3d, Eigen::Vector3d> getAngularBounds()
const;
663 void setLinearBounds(
664 const Eigen::Vector3d& _lower
666 const Eigen::Vector3d& _upper
670 void setLinearBounds(
671 const std::pair<Eigen::Vector3d, Eigen::Vector3d>& _bounds);
674 std::pair<Eigen::Vector3d, Eigen::Vector3d> getLinearBounds()
const;
682 double getErrorLengthClamp()
const;
694 void setAngularErrorWeights(
695 const Eigen::Vector3d& _weights
700 Eigen::Vector3d getAngularErrorWeights()
const;
704 void setLinearErrorWeights(
705 const Eigen::Vector3d& _weights
710 Eigen::Vector3d getLinearErrorWeights()
const;
737 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
764 bool computeErrorFromCenter =
true,
788 Eigen::Isometry3d computeDesiredTransform(
789 const Eigen::Isometry3d& _currentTf,
797 void setComputeFromCenter(
bool computeFromCenter);
801 bool isComputingFromCenter()
const;
811 Properties getTaskSpaceRegionProperties()
const;
835 const Eigen::VectorXd& weights = Eigen::VectorXd());
841 const std::string& _methodName,
848 virtual std::unique_ptr<GradientMethod>
clone(
873 const Eigen::VectorXd& _q, Eigen::Map<Eigen::VectorXd> _grad);
876 const std::string& getMethodName()
const;
879 void clampGradient(Eigen::VectorXd& _grad)
const;
886 double getComponentWiseClamp()
const;
890 void applyWeights(Eigen::VectorXd& _grad)
const;
898 void setComponentWeights(
const Eigen::VectorXd& _weights);
901 const Eigen::VectorXd& getComponentWeights()
const;
912 void convertJacobianMethodOutputToGradient(
913 Eigen::VectorXd& grad,
const std::vector<std::size_t>& dofs);
916 Properties getGradientMethodProperties()
const;
988 std::unique_ptr<GradientMethod>
clone(
992 void computeGradient(
1001 double getDampingCoefficient()
const;
1028 std::unique_ptr<GradientMethod>
clone(
1032 void computeGradient(
1058 OUT_OF_REACH = 1 << 0,
1059 LIMIT_VIOLATED = 1 << 1
1087 PRE_AND_POST_ANALYTICAL
1095 const Eigen::VectorXd& _config = Eigen::VectorXd(),
1096 int _validity = VALID);
1107 typedef std::function<bool(
1108 const Eigen::VectorXd& _better,
1109 const Eigen::VectorXd& _worse,
1132 double extraErrorLengthClamp,
1136 void resetQualityComparisonFunction();
1155 const std::string& _methodName,
1165 const std::vector<Solution>& getSolutions();
1171 const std::vector<Solution>& getSolutions(
1172 const Eigen::Isometry3d& _desiredTf);
1176 void computeGradient(
1189 const Eigen::Isometry3d& _desiredBodyTf)
1197 virtual const std::vector<std::size_t>&
getDofs()
const = 0;
1214 void setExtraErrorLengthClamp(
double _clamp);
1218 double getExtraErrorLengthClamp()
const;
1237 void resetQualityComparisonFunction();
1248 void constructDofMap();
1262 virtual void addExtraDofGradient(
1263 Eigen::VectorXd& grad,
1272 void checkSolutionJointLimits();
1336 double eval(
const Eigen::VectorXd& _x)
override;
1340 const Eigen::VectorXd& _x, Eigen::Map<Eigen::VectorXd> _grad)
override;
1358 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
1382 double eval(
const Eigen::VectorXd& _x)
override;
1386 const Eigen::VectorXd& _x, Eigen::Map<Eigen::VectorXd> _grad)
override;
#define DART_DEPRECATED(version)
Definition: Deprecated.hpp:51
#define DART_DEFINE_ALIGNED_SHARED_OBJECT_CREATOR(class_name)
Definition: Memory.hpp:155
BodyPropPtr properties
Definition: SdfParser.cpp:80
The Subject class is a base class for any object that wants to report when it gets destroyed.
Definition: Subject.hpp:58
sub_ptr is a pointer to a Subject.
Definition: sub_ptr.hpp:47
Analytical is a base class that should be inherited by methods that are made to solve the IK analytic...
Definition: InverseKinematics.hpp:1051
Eigen::VectorXd mRestoreConfigCache
A cache for storing the current configuration so that it can be restored later.
Definition: InverseKinematics.hpp:1308
std::vector< Solution > mLimitViolationCache
A cache for solutions that violate joint limits.
Definition: InverseKinematics.hpp:1300
Eigen::VectorXd mExtraDofGradCache
A cache for storing the gradient for the extra DOFs.
Definition: InverseKinematics.hpp:1311
UniqueProperties mAnalyticalP
Properties for this Analytical IK solver.
Definition: InverseKinematics.hpp:1278
std::vector< Solution > mValidSolutionsCache
A cache for the valid solutions.
Definition: InverseKinematics.hpp:1294
Validity_t
Bitwise enumerations that are used to describe some properties of each solution produced by the analy...
Definition: InverseKinematics.hpp:1056
virtual ~Analytical()=default
Virtual destructor.
ExtraDofUtilization
If there are extra DOFs in the IK module which your Analytical solver implementation does not make us...
Definition: InverseKinematics.hpp:1083
@ POST_ANALYTICAL
Definition: InverseKinematics.hpp:1086
@ PRE_ANALYTICAL
Definition: InverseKinematics.hpp:1085
Eigen::VectorXd mConfigCache
A cache for storing the current configuration.
Definition: InverseKinematics.hpp:1303
virtual const std::vector< Solution > & computeSolutions(const Eigen::Isometry3d &_desiredBodyTf)=0
Use this function to fill the entries of the mSolutions variable.
std::vector< Solution > mSolutions
Vector of solutions.
Definition: InverseKinematics.hpp:1275
std::vector< std::size_t > mExtraDofs
List of extra DOFs in the module which are not covered by the Analytical IK implementation.
Definition: InverseKinematics.hpp:1288
std::vector< Solution > mOutOfReachCache
A cache for the out of reach solutions.
Definition: InverseKinematics.hpp:1297
virtual const std::vector< std::size_t > & getDofs() const =0
Get a list of the DOFs that will be included in the entries of the solutions returned by getSolutions...
std::function< bool(const Eigen::VectorXd &_better, const Eigen::VectorXd &_worse, const InverseKinematics *_ik)> QualityComparison
Definition: InverseKinematics.hpp:1111
std::vector< int > mDofMap
This maps the DOFs provided by getDofs() to their index in the Node's list of dependent DOFs.
Definition: InverseKinematics.hpp:1283
The InverseKinematics::Constraint Function is simply meant to be used to merge the ErrorMethod and Gr...
Definition: InverseKinematics.hpp:1370
virtual ~Constraint()=default
Virtual constructor.
sub_ptr< InverseKinematics > mIK
Pointer to this Constraint's IK module.
Definition: InverseKinematics.hpp:1390
ErrorMethod is a base class for different ways of computing the error of an InverseKinematics module.
Definition: InverseKinematics.hpp:557
common::sub_ptr< InverseKinematics > mIK
Pointer to the IK module of this ErrorMethod.
Definition: InverseKinematics.hpp:721
virtual ~ErrorMethod()=default
Virtual destructor.
Properties mErrorP
The properties of this ErrorMethod.
Definition: InverseKinematics.hpp:733
Eigen::Vector6d mLastError
The last error vector computed by this ErrorMethod.
Definition: InverseKinematics.hpp:730
std::pair< Eigen::Vector6d, Eigen::Vector6d > Bounds
Definition: InverseKinematics.hpp:559
virtual std::unique_ptr< ErrorMethod > clone(InverseKinematics *_newIK) const =0
Enable this ErrorMethod to be cloned to a new IK module.
Eigen::VectorXd mLastPositions
The last joint positions passed into this ErrorMethod.
Definition: InverseKinematics.hpp:727
virtual Eigen::Vector6d computeError()=0
Override this function with your implementation of the error vector computation.
std::string mMethodName
Name of this error method.
Definition: InverseKinematics.hpp:724
This class should be inherited by optimizer::Function classes that have a dependency on the InverseKi...
Definition: InverseKinematics.hpp:544
virtual optimizer::FunctionPtr clone(InverseKinematics *_newIK) const =0
Enable this function to be cloned to a new IK module.
virtual ~Function()=default
Virtual destructor.
GradientMethod is a base class for different ways of computing the gradient of an InverseKinematics m...
Definition: InverseKinematics.hpp:822
Eigen::VectorXd mInitialPositionsCache
Cache used by convertJacobianMethodOutputToGradient to avoid reallocating this vector on each iterati...
Definition: InverseKinematics.hpp:947
std::string mMethodName
The name of this method.
Definition: InverseKinematics.hpp:933
virtual std::unique_ptr< GradientMethod > clone(InverseKinematics *_newIK) const =0
Enable this GradientMethod to be cloned to a new IK module.
virtual ~GradientMethod()=default
Virtual destructor.
Eigen::VectorXd mLastPositions
The last positions that was passed to this GradientMethod.
Definition: InverseKinematics.hpp:936
common::sub_ptr< InverseKinematics > mIK
The IK module that this GradientMethod belongs to.
Definition: InverseKinematics.hpp:930
Eigen::VectorXd mLastGradient
The last gradient that was computed by this GradientMethod.
Definition: InverseKinematics.hpp:939
Properties mGradientP
Properties for this GradientMethod.
Definition: InverseKinematics.hpp:942
virtual void computeGradient(const Eigen::Vector6d &_error, Eigen::VectorXd &_grad)=0
Override this function with your implementation of the gradient computation.
JacobianDLS refers to the Damped Least Squares Jacobian Pseudoinverse (specifically,...
Definition: InverseKinematics.hpp:960
UniqueProperties mDLSProperties
Properties of this Damped Least Squares method.
Definition: InverseKinematics.hpp:1008
virtual ~JacobianDLS()=default
Virtual destructor.
JacobianTranspose will simply apply the transpose of the Jacobian to the error vector in order to com...
Definition: InverseKinematics.hpp:1018
virtual ~JacobianTranspose()=default
Virtual destructor.
The InverseKinematics::Objective Function is simply used to merge the objective and null space object...
Definition: InverseKinematics.hpp:1322
Eigen::MatrixXd mNullSpaceCache
Cache for the null space.
Definition: InverseKinematics.hpp:1354
virtual ~Objective()=default
Virtual destructor.
Eigen::VectorXd mGradCache
Cache for the gradient of the Objective.
Definition: InverseKinematics.hpp:1347
sub_ptr< InverseKinematics > mIK
Pointer to this Objective's IK module.
Definition: InverseKinematics.hpp:1344
Eigen::JacobiSVD< math::Jacobian > mSVDCache
Cache for the null space SVD.
Definition: InverseKinematics.hpp:1350
The TaskSpaceRegion is a nicely generalized method for computing the error of an IK Problem.
Definition: InverseKinematics.hpp:744
virtual ~TaskSpaceRegion()=default
Virtual destructor.
UniqueProperties mTaskSpaceP
Properties of this TaskSpaceRegion.
Definition: InverseKinematics.hpp:815
The InverseKinematics class provides a convenient way of setting up an IK optimization problem.
Definition: InverseKinematics.hpp:76
bool findSolution(Eigen::VectorXd &positions)
Finds a solution of the IK problem without applying the solution.
Definition: InverseKinematics.cpp:80
void setActive(bool _active=true)
If this IK module is set to active, then it will be utilized by any HierarchicalIK that has it in its...
Definition: InverseKinematics.cpp:1340
std::shared_ptr< SimpleFrame > getTarget()
Get the target that is being used by this IK module.
Definition: InverseKinematics.cpp:1601
void clearCaches()
Clear the caches of this IK module.
Definition: InverseKinematics.cpp:1679
const std::shared_ptr< optimizer::Solver > & getSolver()
Get the Solver that is being used by this IK module.
Definition: InverseKinematics.cpp:1550
const std::shared_ptr< optimizer::Function > & getNullSpaceObjective()
Get the null space objective for this IK module.
Definition: InverseKinematics.cpp:1456
void resetNodeConnection()
Reset the signal connection for this IK module's Node.
Definition: InverseKinematics.cpp:1851
math::Jacobian mJacobian
Jacobian cache for the IK module.
Definition: InverseKinematics.hpp:530
static InverseKinematicsPtr create(JacobianNode *_node)
Create an InverseKinematics module for a specified node.
Definition: InverseKinematics.cpp:43
void useWholeBody()
Use all relevant joints on the Skeleton to solve the IK.
Definition: InverseKinematics.cpp:1384
void resetProblem(bool _clearSeeds=false)
Reset the Problem that is being maintained by this IK module.
Definition: InverseKinematics.cpp:1524
void setPositions(const Eigen::VectorXd &_q)
Set the current joint positions of the Skeleton.
Definition: InverseKinematics.cpp:1664
const std::vector< std::size_t > & getDofs() const
Get the indices of the DOFs that this IK module will use when solving.
Definition: InverseKinematics.cpp:1416
void useChain()
When solving the IK for this module's Node, use the longest available dynamics::Chain that goes from ...
Definition: InverseKinematics.cpp:1370
void setSolver(const std::shared_ptr< optimizer::Solver > &_newSolver)
Set the Solver that should be used by this IK module, and set it up with the Problem that is configur...
Definition: InverseKinematics.cpp:1539
void initialize()
Gets called during construction.
Definition: InverseKinematics.cpp:1806
bool mHasOffset
True if the offset is non-zero.
Definition: InverseKinematics.hpp:521
IKErrorMethod & setErrorMethod(Args &&... args)
Set the ErrorMethod for this IK module.
Definition: InverseKinematics.hpp:45
sub_ptr< JacobianNode > mNode
JacobianNode that this IK module is associated with.
Definition: InverseKinematics.hpp:527
friend class Objective
Definition: InverseKinematics.hpp:456
const std::shared_ptr< optimizer::Function > & getObjective()
Get the objective function for this IK module.
Definition: InverseKinematics.cpp:1435
InverseKinematics(const InverseKinematics &)=delete
Copying is not allowed.
void resetTargetConnection()
Reset the signal connection for this IK module's target.
Definition: InverseKinematics.cpp:1842
JacobianNode * getAffiliation()
This is the same as getNode().
Definition: InverseKinematics.cpp:1625
const Eigen::Vector3d & getOffset() const
Get the offset from the origin of the body frame that will be used when performing inverse kinematics...
Definition: InverseKinematics.cpp:1574
IKGradientMethod & setGradientMethod(Args &&... args)
Set the GradientMethod for this IK module.
Definition: InverseKinematics.hpp:55
JacobianNode * getNode()
Get the JacobianNode that this IK module operates on.
Definition: InverseKinematics.cpp:1613
virtual ~InverseKinematics()
Virtual destructor.
Definition: InverseKinematics.cpp:50
bool hasOffset() const
This returns false if the offset for the inverse kinematics is a zero vector.
Definition: InverseKinematics.cpp:1580
friend class Constraint
Definition: InverseKinematics.hpp:458
Analytical * getAnalytical()
Get the Analytical IK method for this module, if one is available.
Definition: InverseKinematics.cpp:1500
bool mActive
True if this IK module should be active in its IK hierarcy.
Definition: InverseKinematics.hpp:480
void setTarget(std::shared_ptr< SimpleFrame > _newTarget)
Set the target for this IK module.
Definition: InverseKinematics.cpp:1586
std::vector< int > mDofMap
Map for the DOFs that are to be used by this IK module.
Definition: InverseKinematics.hpp:490
common::Connection mTargetConnection
Connection to the target update.
Definition: InverseKinematics.hpp:474
void setNullSpaceObjective(const std::shared_ptr< optimizer::Function > &_nsObjective)
Set an objective function that should be minimized within the null space of the inverse kinematics co...
Definition: InverseKinematics.cpp:1448
std::vector< std::size_t > mDofs
A list of the DegreeOfFreedom Skeleton indices that will be used by this IK module.
Definition: InverseKinematics.hpp:487
std::shared_ptr< optimizer::Function > mNullSpaceObjective
Null space objective for the IK module.
Definition: InverseKinematics.hpp:496
std::size_t mHierarchyLevel
Hierarchy level for this IK module.
Definition: InverseKinematics.hpp:483
bool solve(bool applySolution=true)
Solve the IK Problem.
Definition: InverseKinematics.cpp:57
std::shared_ptr< optimizer::Function > mObjective
Objective for the IK module.
Definition: InverseKinematics.hpp:493
InverseKinematics & operator=(const InverseKinematics &)=delete
Assignment is not allowed.
bool isActive() const
Returns true if this IK module is allowed to be active in a HierarchicalIK.
Definition: InverseKinematics.cpp:1352
common::Connection mNodeConnection
Connection to the node update.
Definition: InverseKinematics.hpp:477
bool hasNullSpaceObjective() const
Returns false if the null space objective does nothing.
Definition: InverseKinematics.cpp:1469
void setDofs(const std::vector< DegreeOfFreedomT * > &_dofs)
Explicitly set which degrees of freedom should be used to solve the IK for this module.
Definition: InverseKinematics.hpp:70
Eigen::Vector3d mOffset
The offset that this IK module should use when computing IK.
Definition: InverseKinematics.hpp:518
void setOffset(const Eigen::Vector3d &_offset=Eigen::Vector3d::Zero())
Inverse kinematics can be performed on any point within the body frame.
Definition: InverseKinematics.cpp:1562
const std::shared_ptr< optimizer::Problem > & getProblem()
Get the Problem that is being maintained by this IK module.
Definition: InverseKinematics.cpp:1512
Analytical * mAnalytical
If mGradientMethod is an Analytical extension, then this will have the same value is mGradientMethod.
Definition: InverseKinematics.hpp:509
Eigen::VectorXd getPositions() const
Get the current joint positions of the Skeleton.
Definition: InverseKinematics.cpp:1658
std::shared_ptr< optimizer::Solver > mSolver
The solver that this IK module will use for iterative methods.
Definition: InverseKinematics.hpp:515
InverseKinematicsPtr clone(JacobianNode *_newNode) const
Clone this IK module, but targeted at a new Node.
Definition: InverseKinematics.cpp:166
GradientMethod & getGradientMethod()
Get the GradientMethod for this IK module.
Definition: InverseKinematics.cpp:1487
void setInactive()
Equivalent to setActive(false)
Definition: InverseKinematics.cpp:1346
std::shared_ptr< optimizer::Problem > mProblem
The Problem that will be maintained by this IK module.
Definition: InverseKinematics.hpp:512
const math::Jacobian & computeJacobian() const
Compute the Jacobian for this IK module's node, using the Skeleton's current joint positions and the ...
Definition: InverseKinematics.cpp:1637
void setHierarchyLevel(std::size_t _level)
Set the hierarchy level of this module.
Definition: InverseKinematics.cpp:1358
ErrorMethod & getErrorMethod()
Get the ErrorMethod for this IK module.
Definition: InverseKinematics.cpp:1475
std::unique_ptr< ErrorMethod > mErrorMethod
The method that this IK module will use to compute errors.
Definition: InverseKinematics.hpp:499
void setObjective(const std::shared_ptr< optimizer::Function > &_objective)
Set an objective function that should be minimized while satisfying the inverse kinematics constraint...
Definition: InverseKinematics.cpp:1428
std::unique_ptr< GradientMethod > mGradientMethod
The method that this IK module will use to compute gradients.
Definition: InverseKinematics.hpp:502
std::size_t getHierarchyLevel() const
Get the hierarchy level of this modle.
Definition: InverseKinematics.cpp:1364
std::shared_ptr< SimpleFrame > mTarget
Target that this IK module should use.
Definition: InverseKinematics.hpp:524
const std::vector< int > & getDofMap() const
When a Jacobian is computed for a JacobianNode, it will include a column for every DegreeOfFreedom th...
Definition: InverseKinematics.cpp:1422
bool solveAndApply(bool allowIncompleteResult=true)
Identical to findSolution(), but this function applies the solution when the solver successfully foun...
Definition: InverseKinematics.cpp:132
The JacobianNode class serves as a common interface for BodyNodes and EndEffectors to both be used as...
Definition: JacobianNode.hpp:55
The SimpleFrame class offers a user-friendly way of creating arbitrary Frames within the kinematic tr...
Definition: SimpleFrame.hpp:52
TemplateInverseKinematicsPtr is a templated class that enables users to create a reference-counting I...
Definition: InverseKinematicsPtr.hpp:49
Definition: Function.hpp:46
Definition: Random-impl.hpp:92
Matrix< double, 6, 1 > Vector6d
Definition: MathTypes.hpp:49
Vector6d compose(const Eigen::Vector3d &_angular, const Eigen::Vector3d &_linear)
Definition: MathTypes.hpp:52
const double DefaultIKGradientComponentClamp
Definition: InverseKinematics.hpp:56
const double DefaultIKTolerance
Definition: InverseKinematics.hpp:54
const double DefaultIKAngularWeight
Definition: InverseKinematics.hpp:59
const double DefaultIKLinearWeight
Definition: InverseKinematics.hpp:60
const double DefaultIKDLSCoefficient
Definition: InverseKinematics.hpp:58
std::shared_ptr< const SimpleFrame > ConstSimpleFramePtr
Definition: SmartPointer.hpp:53
const double DefaultIKGradientComponentWeight
Definition: InverseKinematics.hpp:57
std::shared_ptr< SimpleFrame > SimpleFramePtr
Definition: SmartPointer.hpp:53
const double DefaultIKErrorClamp
Definition: InverseKinematics.hpp:55
Eigen::Matrix< double, 6, Eigen::Dynamic > Jacobian
Definition: MathTypes.hpp:114
std::shared_ptr< Function > FunctionPtr
Definition: Function.hpp:84
Definition: BulletCollisionDetector.cpp:65
Definition: SharedLibraryManager.hpp:46
Definition: InverseKinematics.hpp:1140
Definition: InverseKinematics.hpp:1092
int mValidity
Bitmap for whether this configuration is valid.
Definition: InverseKinematics.hpp:1103
Eigen::VectorXd mConfig
Configuration computed by the Analytical solver.
Definition: InverseKinematics.hpp:1099
Definition: InverseKinematics.hpp:1114
QualityComparison mQualityComparator
Function for comparing the qualities of solutions.
Definition: InverseKinematics.hpp:1122
ExtraDofUtilization mExtraDofUtilization
Flag for how to use the extra DOFs in the IK module.
Definition: InverseKinematics.hpp:1116
double mExtraErrorLengthClamp
How much to clamp the extra error that gets applied to DOFs.
Definition: InverseKinematics.hpp:1119
The Properties struct contains settings that are commonly used by methods that compute error for inve...
Definition: InverseKinematics.hpp:564
Eigen::Vector6d mErrorWeights
These weights will be applied to the error vector component-wise.
Definition: InverseKinematics.hpp:591
std::pair< Eigen::Vector6d, Eigen::Vector6d > mBounds
Bounds that define the acceptable range of the Node's transform relative to its target frame.
Definition: InverseKinematics.hpp:579
double mErrorLengthClamp
The error vector will be clamped to this length with each iteration.
Definition: InverseKinematics.hpp:584
Definition: InverseKinematics.hpp:825
double mComponentWiseClamp
The component-wise clamp for this GradientMethod.
Definition: InverseKinematics.hpp:827
Eigen::VectorXd mComponentWeights
The weights for this GradientMethod.
Definition: InverseKinematics.hpp:830
Definition: InverseKinematics.hpp:972
Definition: InverseKinematics.hpp:963
double mDamping
Damping coefficient.
Definition: InverseKinematics.hpp:965
Definition: InverseKinematics.hpp:769
Definition: InverseKinematics.hpp:747
SimpleFramePtr mReferenceFrame
The reference frame that the task space region is expressed.
Definition: InverseKinematics.hpp:760
bool mComputeErrorFromCenter
Setting this to true (which is default) will tell it to compute the error based on the center of the ...
Definition: InverseKinematics.hpp:755