64 const std::array<double, 7>& q,
65 const std::array<double, 9>& total_inertia,
67 const std::array<double, 3>& F_x_Ctotal)
const {
68 return model_->
mass(q, total_inertia, total_mass, F_x_Ctotal);
100 const std::array<double, 7>& q,
101 const std::array<double, 7>& dq,
102 const std::array<double, 9>& total_inertia,
104 const std::array<double, 3>& F_x_Ctotal)
const {
105 return model_->
coriolis(q, dq, total_inertia, total_mass, F_x_Ctotal);
118 std::array<double, 7>
getGravity(
const std::array<double, 3>& gravity_earth = {
119 {0., 0., -9.81}})
const {
140 const std::array<double, 7>& q,
142 const std::array<double, 3>& F_x_Ctotal,
143 const std::array<double, 3>& gravity_earth = {{0., 0., -9.81}})
const {
144 return model_->
gravity(q, total_mass, F_x_Ctotal, gravity_earth);
180 const std::array<double, 7>& q,
181 const std::array<double, 16>& F_T_EE,
182 const std::array<double, 16>& EE_T_K)
184 return model_->
pose(frame, q, F_T_EE, EE_T_K);
220 const std::array<double, 7>& q,
221 const std::array<double, 16>& F_T_EE,
222 const std::array<double, 16>& EE_T_K)
260 const std::array<double, 7>& q,
261 const std::array<double, 16>& F_T_EE,
262 const std::array<double, 16>& EE_T_K)
std::array< double, 7 > getGravity(const std::array< double, 3 > &gravity_earth={{0., 0.,-9.81}}) const
Calculates the gravity vector from the current robot state.
std::array< double, 7 > getGravity(const std::array< double, 7 > &q, double total_mass, const std::array< double, 3 > &F_x_Ctotal, const std::array< double, 3 > &gravity_earth={{0., 0.,-9.81}}) const
Calculates the gravity vector from the given robot state.
const franka::RobotState * robot_state_
std::array< double, 16 > pose(Frame frame, const franka::RobotState &robot_state) const
std::array< double, 42 > zeroJacobian(Frame frame, const franka::RobotState &robot_state) const
std::array< double, 16 > getPose(const 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
Gets the 4x4 pose matrix for the given frame in base frame, calculated from the given robot state...
FrankaModelHandle()=delete
std::array< double, 16 > getPose(const franka::Frame &frame) const
Gets the 4x4 pose matrix for the given frame in base frame, calculated from the current robot state...
std::array< double, 42 > getBodyJacobian(const 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
Gets the 6x7 Jacobian for the given frame, relative to that frame.
const franka::Model * model_
std::array< double, 42 > bodyJacobian(Frame frame, const franka::RobotState &robot_state) const
FrankaModelHandle(const std::string &name, franka::Model &model, franka::RobotState &robot_state)
Creates an instance of a FrankaModelHandle.
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={{0., 0.,-9.81}}) const noexcept
std::array< double, 7 > getCoriolis(const std::array< double, 7 > &q, const std::array< double, 7 > &dq, const std::array< double, 9 > &total_inertia, double total_mass, const std::array< double, 3 > &F_x_Ctotal) const
Calculates the Coriolis force vector (state-space equation) from the given robot state: ...
std::array< double, 49 > mass(const franka::RobotState &robot_state) const noexcept
std::array< double, 42 > getZeroJacobian(const 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
Gets the 6x7 Jacobian for the given joint relative to the base frame.
std::array< double, 42 > getZeroJacobian(const franka::Frame &frame) const
Gets the 6x7 Jacobian for the given joint relative to the base frame.
std::array< double, 49 > getMass(const std::array< double, 7 > &q, const std::array< double, 9 > &total_inertia, double total_mass, const std::array< double, 3 > &F_x_Ctotal) const
Calculates the 7x7 mass matrix from a given robot state.
std::array< double, 7 > coriolis(const franka::RobotState &robot_state) const noexcept
Hardware interface to perform calculations using the dynamic model of a robot.
Handle to perform calculations using the dynamic model of a robot.
std::string getName() const noexcept
Gets the name of the model handle.
std::array< double, 49 > getMass() const
Calculates the 7x7 mass matrix from the current robot state.
std::array< double, 7 > getCoriolis() const
Calculates the Coriolis force vector (state-space equation) from the current robot state: ...
std::array< double, 42 > getBodyJacobian(const franka::Frame &frame) const
Gets the 6x7 Jacobian for the given frame, relative to that frame.