@@ -95,6 +95,17 @@ class KinematicsInterface
95
95
const Eigen::VectorXd & joint_pos, const std::string & link_name,
96
96
Eigen::Matrix<double , 6 , Eigen::Dynamic> & jacobian) = 0;
97
97
98
+ /* *
99
+ * \brief Calculates the jacobian inverse for a specified link using provided joint positions.
100
+ * \param[in] joint_pos joint positions of the robot in radians
101
+ * \param[in] link_name the name of the link to find the transform for
102
+ * \param[out] jacobian_inverse Jacobian inverse matrix of the specified link in row major format.
103
+ * \return true if successful
104
+ */
105
+ virtual bool calculate_jacobian_inverse (
106
+ const Eigen::VectorXd & joint_pos, const std::string & link_name,
107
+ Eigen::Matrix<double , Eigen::Dynamic, 6 > & jacobian_inverse) = 0;
108
+
98
109
bool convert_cartesian_deltas_to_joint_deltas (
99
110
std::vector<double > & joint_pos_vec, const std::vector<double > & delta_x_vec,
100
111
const std::string & link_name, std::vector<double > & delta_theta_vec);
@@ -110,6 +121,10 @@ class KinematicsInterface
110
121
bool calculate_jacobian (
111
122
const std::vector<double > & joint_pos_vec, const std::string & link_name,
112
123
Eigen::Matrix<double , 6 , Eigen::Dynamic> & jacobian);
124
+
125
+ bool calculate_jacobian_inverse (
126
+ const std::vector<double > & joint_pos_vec, const std::string & link_name,
127
+ Eigen::Matrix<double , Eigen::Dynamic, 6 > & jacobian_inverse);
113
128
};
114
129
115
130
} // namespace kinematics_interface
0 commit comments