Go to the documentation of this file.
30 #ifndef EXOTICA_IK_SOLVER_IK_SOLVER_H_
31 #define EXOTICA_IK_SOLVER_IK_SOLVER_H_
36 #include <exotica_ik_solver/ik_solver_initializer.h>
47 void Solve(Eigen::MatrixXd& solution)
override;
101 if (i % 10 == 0 || i == 0)
103 std::cout <<
"iter \t cost \t stop \t grad \t reg \t step\n";
106 std::cout << std::setw(4) << i <<
" ";
107 std::cout << std::scientific << std::setprecision(5) <<
error_ <<
" ";
110 std::cout << std::fixed << std::setprecision(4) <<
steplength_ <<
'\n';
117 #endif // EXOTICA_IK_SOLVER_IK_SOLVER_H_
double regmin_
Minimum regularization (will not decrease lower)
Definition: ik_solver.h:75
Eigen::MatrixXd J_pseudo_inverse_
Jacobian pseudo-inverse, used during optimisation.
Definition: ik_solver.h:65
double th_stop_
Gradient convergence threshold.
Definition: ik_solver.h:72
Eigen::VectorXd yd_
Task space difference/error, used during optimisation.
Definition: ik_solver.h:63
void SpecifyProblem(PlanningProblemPtr pointer) override
void ScaleToStepSize(Eigen::VectorXdRef xd)
To scale to maximum step size.
Eigen::MatrixXd J_tmp_
Temporary variable for inverse computation.
Definition: ik_solver.h:69
double step_
Size of step: Sum of squared norm of qd_.
Definition: ik_solver.h:58
double error_
Error, used during optimisation.
Definition: ik_solver.h:66
Eigen::MatrixXd cost_jacobian_
Jacobian, used during optimisation.
Definition: ik_solver.h:64
Eigen::VectorXd alpha_space_
Steplengths for backtracking line-search.
Definition: ik_solver.h:54
double lambda_
Damping factor.
Definition: ik_solver.h:59
Definition: property.h:110
Definition: cartpole_dynamics_solver.h:38
double th_stepinc_
Step-length threshold used to increase regularization.
Definition: ik_solver.h:79
Eigen::VectorXd q_
Joint configuration vector, used during optimisation.
Definition: ik_solver.h:61
Eigen::Ref< Eigen::VectorXd > VectorXdRef
Definition: conversions.h:54
std::shared_ptr< exotica::UnconstrainedEndPoseProblem > UnconstrainedEndPoseProblemPtr
Definition: unconstrained_end_pose_problem.h:81
double error_prev_
Error at previous iteration, used during optimisation.
Definition: ik_solver.h:67
void PrintDebug(const int i)
Definition: ik_solver.h:99
Eigen::VectorXd qd_
Change in joint configuration, used during optimisation.
Definition: ik_solver.h:62
void Solve(Eigen::MatrixXd &solution) override
UnconstrainedEndPoseProblemPtr prob_
Definition: ik_solver.h:51
double steplength_
Accepted steplength.
Definition: ik_solver.h:60
Definition: motion_solver.h:42
std::shared_ptr< PlanningProblem > PlanningProblemPtr
Definition: planning_problem.h:116
void DecreaseRegularization()
Definition: ik_solver.h:90
double regmax_
Maximum regularization (to exit by divergence)
Definition: ik_solver.h:76
double stop_
Stop criterion: Norm of cost Jacobian.
Definition: ik_solver.h:57
double th_stepdec_
Step-length threshold used to decrease regularization.
Definition: ik_solver.h:78
Eigen::MatrixXd W_inv_
Joint-space weighting (inverse)
Definition: ik_solver.h:53
Weighted and Regularized Pseudo-Inverse Inverse Kinematics Solver The solver solves a weighted and re...
Definition: ik_solver.h:44
Eigen::LLT< Eigen::MatrixXd > J_decomposition_
Cholesky decomposition for the weighted pseudo-inverse.
Definition: ik_solver.h:68
void IncreaseRegularization()
Definition: ik_solver.h:81
double regfactor_
Factor by which the regularization gets increased/decreased.
Definition: ik_solver.h:77