7 #include <kdl/chaindynparam.hpp> 8 #include <kdl/chainfksolver.hpp> 9 #include <kdl/chainjnttojacsolver.hpp> 35 const std::string& root,
36 const std::string& tip,
37 double singularity_threshold = -1);
51 std::array<double, 16>
pose(
53 const std::array<double, 7>& q,
54 const std::array<double, 16>& F_T_EE,
55 const std::array<double, 16>& EE_T_K)
74 const std::array<double, 7>& q,
75 const std::array<double, 16>& F_T_EE,
76 const std::array<double, 16>& EE_T_K)
93 const std::array<double, 7>& q,
94 const std::array<double, 16>& F_T_EE,
95 const std::array<double, 16>& EE_T_K)
111 std::array<double, 49>
mass(
112 const std::array<double, 7>& q,
113 const std::array<double, 9>& I_total,
115 const std::array<double, 3>& F_x_Ctotal)
134 const std::array<double, 7>& q,
135 const std::array<double, 7>& dq,
136 const std::array<double, 9>& I_total,
138 const std::array<double, 3>& F_x_Ctotal)
154 const std::array<double, 7>& q,
156 const std::array<double, 3>& F_x_Ctotal,
157 const std::array<double, 3>& gravity_earth)
const override;
169 const std::array<double, 16>& transform,
185 const std::array<double, 3>& center_of_mass,
187 const std::array<double, 9>& inertia,
Calculates poses of links and dynamic properties of the robot.
static int segment(franka::Frame frame)
std::array< double, 42 > bodyJacobian(franka::Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const override
Gets the 6x7 Jacobian for the given frame, relative to that frame.
std::array< double, 7 > gravity(const std::array< double, 7 > &q, double m_total, const std::array< double, 3 > &F_x_Ctotal, const std::array< double, 3 > &gravity_earth) const override
Calculates the gravity vector.
static std::string strError(const int error)
double singularity_threshold_
std::array< double, 7 > coriolis(const std::array< double, 7 > &q, const std::array< double, 7 > &dq, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const override
Calculates the Coriolis force vector (state-space equation): , in .
ModelKDL(const urdf::Model &model, const std::string &root, const std::string &tip, double singularity_threshold=-1)
Create a new implementation for the ModelBase with KDL as backend.
std::array< double, 49 > mass(const std::array< double, 7 > &q, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const override
Calculates the 7x7 mass matrix.
static void augmentFrame(const std::string &name, const std::array< double, 16 > &transform, KDL::Chain &chain)
Augment a kinematic chain by adding a virtual frame to it.
bool isCloseToSingularity(const KDL::Jacobian &jacobian) const
std::array< double, 42 > zeroJacobian(franka::Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const override
Gets the 6x7 Jacobian for the given joint relative to the base frame.
std::array< double, 16 > pose(franka::Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const override
Gets the 4x4 pose matrix for the given frame in base frame.