|
| LMCtrl (iKinChain &c, unsigned int _ctrlPose, double _Ts, double _mu0, double _mu_inc, double _mu_dec, double _mu_min, double _mu_max, double _sv_thres=1e-6) |
| Constructor. More...
|
|
virtual yarp::sig::Vector | computeGPM () |
| Returns the further contribution to the qdot=pinvJ*xdot equation according to the Gradient Projection Method, i.e. More...
|
|
virtual void | setChainConstraints (bool _constrained) |
| Enables/Disables joint angles constraints. More...
|
|
virtual yarp::sig::Vector | iterate (yarp::sig::Vector &xd, const unsigned int verbose=0) |
| Executes one iteration of the control algorithm. More...
|
|
virtual void | restart (const yarp::sig::Vector &q0) |
| Reinitializes the algorithm's internal state and resets the starting point. More...
|
|
virtual bool | test_convergence (const double tol_size) |
| Tests convergence by comparing the size of the algorithm internal structure (may be the gradient norm or the simplex size or whatever) to a certain tolerance. More...
|
|
virtual std::string | getAlgoName () |
| Returns the algorithm's name. More...
|
|
void | resetInt () |
| Resets integral status at the current joint angles. More...
|
|
yarp::sig::Vector | get_qdot () const |
| Returns the actual derivative of joint angles. More...
|
|
yarp::sig::Vector | get_gpm () const |
| Returns the actual value of Gradient Projected. More...
|
|
double | get_mu () const |
| Returns the current weighting factor mu. More...
|
|
void | reset_mu () |
| Sets the weighting factor mu equal to the initial value. More...
|
|
virtual | ~LMCtrl () |
| Destructor. More...
|
|
| iKinCtrl (iKinChain &c, unsigned int _ctrlPose) |
| Constructor. More...
|
|
virtual yarp::sig::Vector | solve (yarp::sig::Vector &xd, const double tol_size=IKINCTRL_DISABLED, const int max_iter=IKINCTRL_DISABLED, const unsigned int verbose=0, int *exit_code=NULL, bool *exhalt=NULL) |
| Iterates the control algorithm trying to converge on the target. More...
|
|
void | switchWatchDog (bool sw) |
| Switch on/off the watchDog mechanism to trigger deadLocks. More...
|
|
virtual void | setInTargetTol (double tol_x) |
| Sets tolerance for in-target check (5e-3 by default). More...
|
|
virtual double | getInTargetTol () const |
| Returns tolerance for in-target check. More...
|
|
virtual void | setWatchDogTol (double tol_q) |
| Sets tolerance for watchDog check (1e-4 by default). More...
|
|
virtual double | getWatchDogTol () const |
| Returns tolerance for watchDog check. More...
|
|
virtual void | setWatchDogMaxIter (int maxIter) |
| Sets maximum number of iterations to trigger the watchDog (200 by default). More...
|
|
virtual int | getWatchDogMaxIter () const |
| Returns maximum number of iterations to trigger the watchDog. More...
|
|
virtual bool | isInTarget () |
| Checks if the End-Effector is in target. More...
|
|
int | get_state () const |
| Returns the algorithm's state. More...
|
|
void | set_ctrlPose (unsigned int _ctrlPose) |
| Sets the state of Pose control settings. More...
|
|
unsigned int | get_ctrlPose () const |
| Returns the state of Pose control settings. More...
|
|
unsigned int | get_dim () const |
| Returns the number of Chain DOF. More...
|
|
unsigned int | get_iter () const |
| Returns the number of performed iterations. More...
|
|
virtual yarp::sig::Vector | get_x () const |
| Returns the actual cartesian position of the End-Effector. More...
|
|
virtual yarp::sig::Vector | get_e () const |
| Returns the actual cartesian position error. More...
|
|
virtual void | set_q (const yarp::sig::Vector &q0) |
| Sets the joint angles values. More...
|
|
virtual yarp::sig::Vector | get_q () const |
| Returns the actual joint angles values. More...
|
|
virtual yarp::sig::Vector | get_grad () const |
| Returns the actual gradient. More...
|
|
virtual yarp::sig::Matrix | get_J () const |
| Returns the actual Jacobian used in computation. More...
|
|
virtual double | dist () const |
| Returns the actual distance from the target in cartesian space (euclidean norm is used). More...
|
|
virtual | ~iKinCtrl () |
| Default destructor. More...
|
|
|
virtual double | update_mu () |
|
virtual void | inTargetFcn () |
| Method called whenever in target. More...
|
|
virtual void | deadLockRecoveryFcn () |
| Method called whenever the watchDog is triggered. More...
|
|
virtual void | printIter (const unsigned int verbose) |
| Dumps warning or status messages. More...
|
|
virtual yarp::sig::Matrix | pinv (const yarp::sig::Matrix &A, const double tol=0.0) |
|
virtual yarp::sig::Vector | calc_e () |
| Computes the error according to the current controller settings (complete pose/translational/rotational part). More...
|
|
virtual void | update_state () |
| Updates the control state. More...
|
|
virtual void | watchDog () |
| Handles the watchDog. More...
|
|
virtual yarp::sig::Vector | checkVelocity (const yarp::sig::Vector &_qdot, double _Ts) |
| Checks each joint velocity and sets it to zero if it steers the joint out of range. More...
|
|
unsigned int | printHandling (const unsigned int verbose=0) |
| Method to be called within the printIter routine inherited by children in order to handle the highest word of verbose integer. More...
|
|
A class derived from iKinCtrl implementing the Levenberg-Marquardt algorithm:
qdot=-pinv(Jt*J+mu*I)*grad
r(k)=dist(k)/dist(k-1) r(k)<1 => mu(k)=mu(k-1)*mu_dec; r(k)>1 => mu(k)=mu(k-1)*mu_inc;
H=Jt*J is the approximation of Hessian matrix
Definition at line 576 of file iKinInv.h.