From ed1cccef6e6833cfbc438b90f5ab5b15ca397cf2 Mon Sep 17 00:00:00 2001 From: Juancho Date: Fri, 18 Nov 2022 17:12:09 +0900 Subject: [PATCH 1/2] [DQ_SerialManipulatorDenso.h, .cpp] Added the pose_jacobian_derivative method only for compilation purposes. --- .../DQ_SerialManipulatorDenso.h | 2 ++ .../DQ_SerialManipulatorDenso.cpp | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h b/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h index a671c3e..d0ba06d 100644 --- a/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h +++ b/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h @@ -46,9 +46,11 @@ class DQ_SerialManipulatorDenso: public DQ_SerialManipulator DQ_SerialManipulatorDenso(const MatrixXd& denso_matrix); using DQ_SerialManipulator::raw_pose_jacobian; + using DQ_SerialManipulator::raw_pose_jacobian_derivative; using DQ_SerialManipulator::raw_fkm; MatrixXd raw_pose_jacobian(const VectorXd& q_vec, const int& to_ith_link) const override; + MatrixXd raw_pose_jacobian_derivative(const VectorXd& q, const VectorXd& q_dot, const int& to_ith_link) const override; DQ raw_fkm(const VectorXd &q_vec, const int &to_ith_link) const override; }; diff --git a/src/robot_modeling/DQ_SerialManipulatorDenso.cpp b/src/robot_modeling/DQ_SerialManipulatorDenso.cpp index 846748b..d711b4f 100644 --- a/src/robot_modeling/DQ_SerialManipulatorDenso.cpp +++ b/src/robot_modeling/DQ_SerialManipulatorDenso.cpp @@ -93,5 +93,26 @@ MatrixXd DQ_SerialManipulatorDenso::raw_pose_jacobian(const VectorXd &q_vec, con return J; } +/** + * @brief This method returns the first to_ith_link columns of the time derivative of the pose Jacobian. + * The base displacement and the effector are not taken into account. + * @param q. VectorXd representing the robot joint configuration. + * @param q_dot. VectorXd representing the robot joint velocities. + * @param to_ith_link. The index to a link. This defines until which link the pose_jacobian_derivative + * will be calculated. + * @returns a MatrixXd representing the first to_ith_link columns of the desired Jacobian derivative. + * + */ +MatrixXd DQ_SerialManipulatorDenso::raw_pose_jacobian_derivative(const VectorXd &q, const VectorXd &q_dot, const int &to_ith_link) const +{ + _check_q_vec(q); + _check_q_vec(q_dot); + _check_to_ith_link(to_ith_link); + + throw std::runtime_error(std::string("pose_jacobian_derivative is not implemented yet.")); + return MatrixXd::Zero(1,1); +} + + } From b35461eda76bcdcfd1fd38dd8b1e09cc44a5180b Mon Sep 17 00:00:00 2001 From: Juancho Date: Fri, 18 Nov 2022 17:13:23 +0900 Subject: [PATCH 2/2] [DQ_SerialManipulatorDenso.h, .cpp] Added the pose_jacobian_derivative method only for compilation purposes. --- include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h b/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h index d0ba06d..cf4207f 100644 --- a/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h +++ b/include/dqrobotics/robot_modeling/DQ_SerialManipulatorDenso.h @@ -46,7 +46,7 @@ class DQ_SerialManipulatorDenso: public DQ_SerialManipulator DQ_SerialManipulatorDenso(const MatrixXd& denso_matrix); using DQ_SerialManipulator::raw_pose_jacobian; - using DQ_SerialManipulator::raw_pose_jacobian_derivative; + using DQ_SerialManipulator::raw_pose_jacobian_derivative; using DQ_SerialManipulator::raw_fkm; MatrixXd raw_pose_jacobian(const VectorXd& q_vec, const int& to_ith_link) const override;