1 #ifndef __KDL_MANAGER__ 2 #define __KDL_MANAGER__ 6 #include <generic_control_toolbox/ArmInfo.h> 7 #include <geometry_msgs/WrenchStamped.h> 10 #include <sensor_msgs/JointState.h> 15 #include <kdl/chaindynparam.hpp> 16 #include <kdl/chainfksolverpos_recursive.hpp> 17 #include <kdl/chainfksolvervel_recursive.hpp> 18 #include <kdl/chainiksolverpos_lma.hpp> 19 #include <kdl/chainiksolvervel_pinv_nso.hpp> 20 #include <kdl/chainiksolvervel_wdls.hpp> 21 #include <kdl/chainjnttojacsolver.hpp> 22 #include <kdl/frames.hpp> 23 #include <kdl/kdl.hpp> 59 bool isInitialized(
const std::string &end_effector_link)
const;
72 const sensor_msgs::JointState &state)
const;
83 const std::string &gripping_point_frame);
95 const std::string &sensor_point_frame);
107 const Eigen::VectorXd &q,
const Eigen::VectorXd &qdot,
108 sensor_msgs::JointState &state)
const;
119 const Eigen::VectorXd &qdot,
120 sensor_msgs::JointState &state)
const;
133 const Eigen::VectorXd &q,
const Eigen::VectorXd &qdot,
134 sensor_msgs::JointState &state)
const;
149 const Eigen::VectorXd &q,
const Eigen::VectorXd &qdot,
150 const Eigen::VectorXd &effort,
151 sensor_msgs::JointState &state)
const;
163 const sensor_msgs::JointState &state,
176 const sensor_msgs::JointState &state,
189 const sensor_msgs::JointState &state,
199 bool verifyPose(
const std::string &end_effector_link,
213 bool getPoseIK(
const std::string &end_effector_link,
214 const sensor_msgs::JointState &state,
const KDL::Frame &in,
229 const sensor_msgs::JointState &state,
242 bool getPoseFK(
const std::string &end_effector_link,
243 const sensor_msgs::JointState &state,
const KDL::JntArray &in,
257 const sensor_msgs::JointState &state,
272 const sensor_msgs::JointState &state,
285 bool getVelIK(
const std::string &end_effector_link,
286 const sensor_msgs::JointState &state,
const KDL::Twist &in,
297 bool getJacobian(
const std::string &end_effector_link,
298 const sensor_msgs::JointState &state,
309 bool getEefPose(
const std::string &end_effector_link,
310 const sensor_msgs::JointState &state,
KDL::Frame &out)
const;
320 bool getEefTwist(
const std::string &end_effector_link,
321 const sensor_msgs::JointState &state,
347 const sensor_msgs::JointState &state,
350 const sensor_msgs::JointState &state,
351 Eigen::VectorXd &q)
const;
362 const sensor_msgs::JointState &state,
373 bool getInertia(
const std::string &end_effector_link,
374 const sensor_msgs::JointState &state, Eigen::MatrixXd &H);
384 bool getGravity(
const std::string &end_effector_link,
385 const sensor_msgs::JointState &state, Eigen::MatrixXd &g);
395 bool getCoriolis(
const std::string &end_effector_link,
396 const sensor_msgs::JointState &state,
397 Eigen::MatrixXd &coriolis);
407 unsigned int &num_joints)
const;
419 bool addSegment(
const std::string &end_effector_link,
436 std::map<std::string, IkSolverVelPtr>
ikvel_;
437 std::map<std::string, IkSolverPosPtr>
ikpos_;
438 std::map<std::string, FkSolverPosPtr>
fkpos_;
439 std::map<std::string, FkSolverVelPtr>
fkvel_;
443 std::map<std::string, KDL::Chain>
chain_;
450 std::map<std::string, std::vector<std::string> >
480 const std::string &target_frame,
496 const std::string &end_effector_link,
524 std::shared_ptr<KDLManager> manager);
535 std::shared_ptr<KDLManager> manager);
const std::string WDLS_SOLVER("wdls")
const std::string NSO_SOLVER("nso")