Implementation of ConstraintSolver to solve inverse kinematics by using a weighted least norm. More...
#include <weighted_least_norm_solver.h>
Public Member Functions | |
virtual Eigen::MatrixXd | solve (const Vector6d_t &in_cart_velocities, const JointStates &joint_states) |
WeightedLeastNormSolver (const TwistControllerParams ¶ms, const LimiterParams &limiter_params, TaskStackController_t &task_stack_controller) | |
virtual | ~WeightedLeastNormSolver () |
Public Member Functions inherited from ConstraintSolver<> | |
void | clearConstraints () |
ConstraintSolver (const TwistControllerParams ¶ms, const LimiterParams &limiter_params, TaskStackController_t &task_stack_controller) | |
void | setConstraints (std::set< ConstraintBase_t > &constraints) |
void | setDamping (boost::shared_ptr< DampingBase > &damping) |
virtual void | setJacobianData (const Matrix6Xd_t &jacobian_data) |
virtual | ~ConstraintSolver () |
Private Member Functions | |
virtual Eigen::MatrixXd | calculateWeighting (const JointStates &joint_states) const |
Additional Inherited Members | |
Protected Attributes inherited from ConstraintSolver<> | |
std::set< ConstraintBase_t > | constraints_ |
set inserts sorted (default less operator); if element has already been added it returns an iterator on it. More... | |
boost::shared_ptr< DampingBase > | damping_ |
References the current Jacobian (matrix data only). More... | |
Matrix6Xd_t | jacobian_data_ |
References the limiter parameters (up-to-date according to KinematicExtension). More... | |
const LimiterParams & | limiter_params_ |
References the inv. diff. kin. solver parameters. More... | |
const TwistControllerParams & | params_ |
Set of constraints. More... | |
PInvBySVD | pinv_calc_ |
The currently set damping method. More... | |
TaskStackController_t & | task_stack_controller_ |
An instance that helps solving the inverse of the Jacobian. More... | |
Implementation of ConstraintSolver to solve inverse kinematics by using a weighted least norm.
Definition at line 25 of file weighted_least_norm_solver.h.
|
inline |
Definition at line 28 of file weighted_least_norm_solver.h.
|
inlinevirtual |
Definition at line 34 of file weighted_least_norm_solver.h.
|
privatevirtual |
Virtual helper method that calculates a weighting for the Jacobian to adapt joint velocity calculation for given constraints.
q | The current joint positions. |
q_dot | The current joint velocities. |
This function returns the identity as weighting matrix for base functionality.
Reimplemented in WLN_JointLimitAvoidanceSolver.
Definition at line 45 of file weighted_least_norm_solver.cpp.
|
virtual |
Specific implementation of solve-method to solve IK problem with joint limit avoidance. See base class ConstraintSolver for more details on params and returns.
Specific implementation of the solve method using a weighted least norm. This is done by calculation of a weighting which is dependent on inherited classes for the Jacobian. Uses the base implementation of calculatePinvJacobianBySVD to calculate the pseudo-inverse (weighted) Jacobian.
Implements ConstraintSolver<>.
Definition at line 25 of file weighted_least_norm_solver.cpp.