KrisLibrary
1.0.0
|
A Newton-Raphson robot IK solver. More...
#include <IKFunctions.h>
Public Member Functions | |
RobotIKSolver (RobotIKFunction &function) | |
void | UseJointLimits (Real revJointThreshold=Inf) |
void | UseJointLimits (const Vector &qmin, const Vector &qmax) |
void | UseBiasConfiguration (const Vector &qdesired) |
void | ClearJointLimits () |
void | RobotToState () |
void | StateToRobot () |
bool | Solve (Real tolerance, int &iters) |
void | PrintStats () |
Public Attributes | |
Optimization::NewtonRoot | solver |
RobotIKFunction & | function |
RobotKinematics3D & | robot |
A Newton-Raphson robot IK solver.
Joint limits are optionally included if the UseJointLimits() functions are called. Typically, the first version is called.
A bias configuration can be explicitly set using the UseBiasConfiguration() function. The solver will seek toward this configuration during the solve.
Optionally, a Real parameter may specify a threshold t such that a revolute joint's limits are included only if the angular range is less than t. Specifying a value less than 2pi is useful to avoid local minima for joints with wide ranges, because it allows the joint angle to pass from -pi to pi, and vice versa.