43 const std::string & robot_description,
44 std::shared_ptr<rclcpp::node_interfaces::NodeParametersInterface> parameters_interface,
45 const std::string & param_namespace)
override;
48 const Eigen::VectorXd & joint_pos,
const Eigen::Matrix<double, 6, 1> & delta_x,
49 const std::string & link_name, Eigen::VectorXd & delta_theta)
override;
52 const Eigen::VectorXd & joint_pos,
const Eigen::VectorXd & delta_theta,
53 const std::string & link_name, Eigen::Matrix<double, 6, 1> & delta_x)
override;
56 const Eigen::VectorXd & joint_pos,
const std::string & link_name,
57 Eigen::Isometry3d & transform)
override;
60 const Eigen::VectorXd & joint_pos,
const std::string & link_name,
61 Eigen::Matrix<double, 6, Eigen::Dynamic> & jacobian)
override;
64 const Eigen::VectorXd & joint_pos,
const std::string & link_name,
65 Eigen::Matrix<double, Eigen::Dynamic, 6> & jacobian_inverse)
override;
69 bool verify_initialized();
70 bool verify_link_name(
const std::string & link_name);
71 bool verify_joint_vector(
const Eigen::VectorXd & joint_vector);
72 bool verify_jacobian(
const Eigen::Matrix<double, 6, Eigen::Dynamic> & jacobian);
73 bool verify_jacobian_inverse(
const Eigen::Matrix<double, Eigen::Dynamic, 6> & jacobian);
75 bool initialized =
false;
76 std::string root_name_;
79 std::shared_ptr<KDL::ChainFkSolverPos_recursive> fk_pos_solver_;
82 std::shared_ptr<KDL::Jacobian> jacobian_;
83 std::shared_ptr<Eigen::Matrix<double, Eigen::Dynamic, 6>> jacobian_inverse_;
84 std::shared_ptr<KDL::ChainJntToJacSolver> jac_solver_;
85 std::shared_ptr<rclcpp::node_interfaces::NodeParametersInterface> parameters_interface_;
86 std::unordered_map<std::string, int> link_name_map_;