28 #include <kdl/config.h>
29 #include <kdl/chainiksolver.hpp>
30 #include <kdl/chainjnttojacsolver.hpp>
62 const std::vector<kdl_kinematics_plugin::JointMimic>& mimic_joints,
63 bool position_ik =
false,
double threshold = 0.001);
69 int CartToJnt(
const JntArray& q_in,
const Twist& v_in, JntArray& qdot_out)
override
71 return CartToJnt(q_in, v_in, qdot_out, Eigen::VectorXd::Constant(svd_.cols(), 1.0),
72 Eigen::Matrix<double, 6, 1>::Constant(1.0));
80 int CartToJnt(
const JntArray& q_in,
const Twist& v_in, JntArray& qdot_out,
const Eigen::VectorXd& joint_weights,
81 const Eigen::Matrix<double, 6, 1>& cartesian_weights);
84 int CartToJnt(
const JntArray& ,
const FrameVel& , JntArrayVel& )
override
92 return svd_.rows() == 3;
96 bool jacToJacReduced(
const Jacobian& jac, Jacobian& jac_reduced);
99 const std::vector<kdl_kinematics_plugin::JointMimic>& mimic_joints_;
100 int num_mimic_joints_;
103 ChainJntToJacSolver jnt2jac_;
105 Eigen::JacobiSVD<Eigen::MatrixXd> svd_;
106 Eigen::VectorXd qdot_out_reduced_;
109 Jacobian jac_reduced_;
int CartToJnt(const JntArray &q_in, const Twist &v_in, JntArray &qdot_out) override
int CartToJnt(const JntArray &, const FrameVel &, JntArrayVel &) override
not implemented.
~ChainIkSolverVelMimicSVD() override
ChainIkSolverVelMimicSVD(const Chain &chain_, const std::vector< kdl_kinematics_plugin::JointMimic > &mimic_joints, bool position_ik=false, double threshold=0.001)
bool isPositionOnly() const
Return true iff we ignore orientation but only consider position for inverse kinematics.
void updateInternalDataStructures() override