Weighted and Regularized Pseudo-Inverse Inverse Kinematics Solver The solver solves a weighted and regularised pseudo-inverse problem. It uses backtracking line-search and adaptive regularization. More...
#include <ik_solver.h>

Public Member Functions | |
| void | Solve (Eigen::MatrixXd &solution) override |
| void | SpecifyProblem (PlanningProblemPtr pointer) override |
Public Member Functions inherited from exotica::MotionSolver | |
| int | GetNumberOfMaxIterations () |
| double | GetPlanningTime () |
| PlanningProblemPtr | GetProblem () const |
| void | InstantiateBase (const Initializer &init) override |
| MotionSolver ()=default | |
| std::string | Print (const std::string &prepend) const override |
| void | SetNumberOfMaxIterations (int max_iter) |
| virtual | ~MotionSolver ()=default |
Public Member Functions inherited from exotica::Object | |
| std::string | GetObjectName () |
| void | InstantiateObject (const Initializer &init) |
| Object () | |
| virtual std::string | type () const |
| virtual | ~Object () |
Public Member Functions inherited from exotica::InstantiableBase | |
| virtual std::vector< Initializer > | GetAllTemplates () const=0 |
| InstantiableBase ()=default | |
| virtual | ~InstantiableBase ()=default |
Public Member Functions inherited from exotica::Instantiable< IKSolverInitializer > | |
| std::vector< Initializer > | GetAllTemplates () const override |
| Initializer | GetInitializerTemplate () override |
| const C & | GetParameters () const |
| virtual void | Instantiate (const C &init) |
| void | InstantiateInternal (const Initializer &init) override |
Private Member Functions | |
| void | DecreaseRegularization () |
| void | IncreaseRegularization () |
| void | PrintDebug (const int i) |
| void | ScaleToStepSize (Eigen::VectorXdRef xd) |
| To scale to maximum step size. More... | |
Private Attributes | |
| Eigen::VectorXd | alpha_space_ |
| Steplengths for backtracking line-search. More... | |
| Eigen::MatrixXd | cost_jacobian_ |
| Jacobian, used during optimisation. More... | |
| double | error_ |
| Error, used during optimisation. More... | |
| double | error_prev_ |
| Error at previous iteration, used during optimisation. More... | |
| Eigen::LLT< Eigen::MatrixXd > | J_decomposition_ |
| Cholesky decomposition for the weighted pseudo-inverse. More... | |
| Eigen::MatrixXd | J_pseudo_inverse_ |
| Jacobian pseudo-inverse, used during optimisation. More... | |
| Eigen::MatrixXd | J_tmp_ |
| Temporary variable for inverse computation. More... | |
| double | lambda_ = 0 |
| Damping factor. More... | |
| UnconstrainedEndPoseProblemPtr | prob_ |
| Eigen::VectorXd | q_ |
| Joint configuration vector, used during optimisation. More... | |
| Eigen::VectorXd | qd_ |
| Change in joint configuration, used during optimisation. More... | |
| double | regfactor_ = 10. |
| Factor by which the regularization gets increased/decreased. More... | |
| double | regmax_ = 1e9 |
| Maximum regularization (to exit by divergence) More... | |
| double | regmin_ = 1e-9 |
| Minimum regularization (will not decrease lower) More... | |
| double | step_ |
| Size of step: Sum of squared norm of qd_. More... | |
| double | steplength_ |
| Accepted steplength. More... | |
| double | stop_ |
| Stop criterion: Norm of cost Jacobian. More... | |
| double | th_stepdec_ = 0.5 |
| Step-length threshold used to decrease regularization. More... | |
| double | th_stepinc_ = 0.1 |
| Step-length threshold used to increase regularization. More... | |
| double | th_stop_ |
| Gradient convergence threshold. More... | |
| Eigen::MatrixXd | W_inv_ |
| Joint-space weighting (inverse) More... | |
| Eigen::VectorXd | yd_ |
| Task space difference/error, used during optimisation. More... | |
Additional Inherited Members | |
Public Attributes inherited from exotica::Object | |
| bool | debug_ |
| std::string | ns_ |
| std::string | object_name_ |
Protected Attributes inherited from exotica::MotionSolver | |
| int | max_iterations_ |
| double | planning_time_ |
| PlanningProblemPtr | problem_ |
Protected Attributes inherited from exotica::Instantiable< IKSolverInitializer > | |
| C | parameters_ |
Weighted and Regularized Pseudo-Inverse Inverse Kinematics Solver The solver solves a weighted and regularised pseudo-inverse problem. It uses backtracking line-search and adaptive regularization.
Definition at line 44 of file ik_solver.h.
|
inlineprivate |
Definition at line 90 of file ik_solver.h.
|
inlineprivate |
Definition at line 81 of file ik_solver.h.
|
inlineprivate |
Definition at line 99 of file ik_solver.h.
|
private |
To scale to maximum step size.
Definition at line 238 of file ik_solver.cpp.
|
overridevirtual |
Implements exotica::MotionSolver.
Definition at line 74 of file ik_solver.cpp.
|
overridevirtual |
Reimplemented from exotica::MotionSolver.
Definition at line 36 of file ik_solver.cpp.
|
private |
Steplengths for backtracking line-search.
Definition at line 54 of file ik_solver.h.
|
private |
Jacobian, used during optimisation.
Definition at line 64 of file ik_solver.h.
|
private |
Error, used during optimisation.
Definition at line 66 of file ik_solver.h.
|
private |
Error at previous iteration, used during optimisation.
Definition at line 67 of file ik_solver.h.
|
private |
Cholesky decomposition for the weighted pseudo-inverse.
Definition at line 68 of file ik_solver.h.
|
private |
Jacobian pseudo-inverse, used during optimisation.
Definition at line 65 of file ik_solver.h.
|
private |
Temporary variable for inverse computation.
Definition at line 69 of file ik_solver.h.
|
private |
Damping factor.
Definition at line 59 of file ik_solver.h.
|
private |
Definition at line 51 of file ik_solver.h.
|
private |
Joint configuration vector, used during optimisation.
Definition at line 61 of file ik_solver.h.
|
private |
Change in joint configuration, used during optimisation.
Definition at line 62 of file ik_solver.h.
|
private |
Factor by which the regularization gets increased/decreased.
Definition at line 77 of file ik_solver.h.
|
private |
Maximum regularization (to exit by divergence)
Definition at line 76 of file ik_solver.h.
|
private |
Minimum regularization (will not decrease lower)
Definition at line 75 of file ik_solver.h.
|
private |
Size of step: Sum of squared norm of qd_.
Definition at line 58 of file ik_solver.h.
|
private |
Accepted steplength.
Definition at line 60 of file ik_solver.h.
|
private |
Stop criterion: Norm of cost Jacobian.
Definition at line 57 of file ik_solver.h.
|
private |
Step-length threshold used to decrease regularization.
Definition at line 78 of file ik_solver.h.
|
private |
Step-length threshold used to increase regularization.
Definition at line 79 of file ik_solver.h.
|
private |
Gradient convergence threshold.
Definition at line 72 of file ik_solver.h.
|
private |
Joint-space weighting (inverse)
Definition at line 53 of file ik_solver.h.
|
private |
Task space difference/error, used during optimisation.
Definition at line 63 of file ik_solver.h.