Constraint that increases dexterity when manipulator is close to singularity Joint velocity is determined by gradient of smallest singular value Constraint is only active when smallest SV is below theshold. More...
#include <avoid_singularities.h>
Public Member Functions | |
AvoidSingularities () | |
virtual Eigen::VectorXd | calcError () |
Velocity is gradient of smallest singular value del(sv) = uT * del(J) * v. | |
virtual Eigen::MatrixXd | calcJacobian () |
Jacobian for this constraint is identity (all joints may contribute) | |
virtual bool | checkStatus () const |
Termination criteria for singularity constraint. | |
double | getWeight () |
void | setWeight (double weight) |
Setter for weight_. | |
virtual void | update (const SolverState &state) |
Updates internal state of constraint (overrides constraint::update) Sets jacobian and performs SVD decomposition. | |
virtual | ~AvoidSingularities () |
Protected Member Functions | |
Eigen::MatrixXd | jacobianPartialDerivative (size_t jntIdx, double eps=1e-6) |
Protected Attributes | |
bool | avoidance_enabled_ |
double | enable_threshold_ |
double | ignore_threshold_ |
Eigen::MatrixXd | jacobian_orig_ |
double | smallest_sv_ |
Eigen::VectorXd | Ui_ |
Eigen::VectorXd | Vi_ |
double | weight_ |
Constraint that increases dexterity when manipulator is close to singularity Joint velocity is determined by gradient of smallest singular value Constraint is only active when smallest SV is below theshold.
Definition at line 34 of file avoid_singularities.h.
Definition at line 31 of file avoid_singularities.cpp.
virtual constrained_ik::constraints::AvoidSingularities::~AvoidSingularities | ( | ) | [inline, virtual] |
Definition at line 38 of file avoid_singularities.h.
Eigen::VectorXd constrained_ik::constraints::AvoidSingularities::calcError | ( | ) | [virtual] |
Velocity is gradient of smallest singular value del(sv) = uT * del(J) * v.
Implements constrained_ik::Constraint.
Definition at line 40 of file avoid_singularities.cpp.
Eigen::MatrixXd constrained_ik::constraints::AvoidSingularities::calcJacobian | ( | ) | [virtual] |
Jacobian for this constraint is identity (all joints may contribute)
Implements constrained_ik::Constraint.
Definition at line 56 of file avoid_singularities.cpp.
virtual bool constrained_ik::constraints::AvoidSingularities::checkStatus | ( | ) | const [inline, virtual] |
Termination criteria for singularity constraint.
Reimplemented from constrained_ik::Constraint.
Definition at line 54 of file avoid_singularities.h.
double constrained_ik::constraints::AvoidSingularities::getWeight | ( | ) | [inline] |
Eigen::MatrixXd constrained_ik::constraints::AvoidSingularities::jacobianPartialDerivative | ( | size_t | jntIdx, |
double | eps = 1e-6 |
||
) | [protected] |
Definition at line 64 of file avoid_singularities.cpp.
void constrained_ik::constraints::AvoidSingularities::setWeight | ( | double | weight | ) | [inline] |
Setter for weight_.
weight | Value to assign to weight_ |
Definition at line 64 of file avoid_singularities.h.
void constrained_ik::constraints::AvoidSingularities::update | ( | const SolverState & | state | ) | [virtual] |
Updates internal state of constraint (overrides constraint::update) Sets jacobian and performs SVD decomposition.
state | SolverState holding current state of IK solver |
Reimplemented from constrained_ik::Constraint.
Definition at line 80 of file avoid_singularities.cpp.
bool constrained_ik::constraints::AvoidSingularities::avoidance_enabled_ [protected] |
Definition at line 75 of file avoid_singularities.h.
double constrained_ik::constraints::AvoidSingularities::enable_threshold_ [protected] |
Definition at line 74 of file avoid_singularities.h.
double constrained_ik::constraints::AvoidSingularities::ignore_threshold_ [protected] |
Definition at line 74 of file avoid_singularities.h.
Eigen::MatrixXd constrained_ik::constraints::AvoidSingularities::jacobian_orig_ [protected] |
Definition at line 78 of file avoid_singularities.h.
double constrained_ik::constraints::AvoidSingularities::smallest_sv_ [protected] |
Definition at line 76 of file avoid_singularities.h.
Eigen::VectorXd constrained_ik::constraints::AvoidSingularities::Ui_ [protected] |
Definition at line 77 of file avoid_singularities.h.
Eigen::VectorXd constrained_ik::constraints::AvoidSingularities::Vi_ [protected] |
Definition at line 77 of file avoid_singularities.h.
double constrained_ik::constraints::AvoidSingularities::weight_ [protected] |
Definition at line 73 of file avoid_singularities.h.