Class Model
Defined in File model.hpp
Class Documentation
-
class Model
This class is a thin wrapper around a franka::Model and delegates all calls to that
Public Functions
-
inline explicit Model(franka::Model *model)
Create a new Model instance wrapped around a franka::Model
-
virtual ~Model() = default
-
inline 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
Gets the 4x4 pose matrix for the given frame in base frame.
The pose is represented as a 4x4 matrix in column-major format.
- Parameters:
frame – [in] The desired frame.
q – [in] Joint position.
F_T_EE – [in] End effector in flange frame.
EE_T_K – [in] Stiffness frame K in the end effector frame.
- Returns:
Vectorized 4x4 pose matrix, column-major.
-
inline 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
Gets the 6x7 Jacobian for the given frame, relative to that frame.
The Jacobian is represented as a 6x7 matrix in column-major format.
- Parameters:
frame – [in] The desired frame.
q – [in] Joint position.
F_T_EE – [in] End effector in flange frame.
EE_T_K – [in] Stiffness frame K in the end effector frame.
- Returns:
Vectorized 6x7 Jacobian, column-major.
-
inline 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
Gets the 6x7 Jacobian for the given joint relative to the base frame.
The Jacobian is represented as a 6x7 matrix in column-major format.
- Parameters:
frame – [in] The desired frame.
robot_state – [in] State from which the pose should be calculated.
- Returns:
Vectorized 6x7 Jacobian, column-major.
-
inline 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 noexcept
Calculates the 7x7 mass matrix. Unit:
.- Parameters:
q – [in] Joint position.
I_total – [in] Inertia of the attached total load including end effector, relative to center of mass, given as vectorized 3x3 column-major matrix. Unit:
.m_total – [in] Weight of the attached total load including end effector. Unit:
.F_x_Ctotal – [in] Translation from flange to center of mass of the attached total load. Unit:
.
- Returns:
Vectorized 7x7 mass matrix, column-major.
-
inline 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 noexcept
Calculates the Coriolis force vector (state-space equation):
, in .- Parameters:
q – [in] Joint position.
dq – [in] Joint velocity.
I_total – [in] Inertia of the attached total load including end effector, relative to center of mass, given as vectorized 3x3 column-major matrix. Unit:
.m_total – [in] Weight of the attached total load including end effector. Unit:
.F_x_Ctotal – [in] Translation from flange to center of mass of the attached total load. Unit:
.
- Returns:
Coriolis force vector.
-
inline 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 noexcept
Calculates the gravity vector. Unit:
.- Parameters:
q – [in] Joint position.
m_total – [in] Weight of the attached total load including end effector. Unit:
.F_x_Ctotal – [in] Translation from flange to center of mass of the attached total load. Unit:
.gravity_earth – [in] Earth’s gravity vector. Unit:
.
- Returns:
Gravity vector.
-
inline virtual std::array<double, 16> pose(franka::Frame frame, const franka::RobotState &robot_state) const
Gets the 4x4 pose matrix for the given frame in base frame.
The pose is represented as a 4x4 matrix in column-major format.
- Parameters:
frame – [in] The desired frame.
robot_state – [in] State from which the pose should be calculated.
- Returns:
Vectorized 4x4 pose matrix, column-major.
-
inline virtual std::array<double, 42> bodyJacobian(franka::Frame frame, const franka::RobotState &robot_state) const
Gets the 6x7 Jacobian for the given frame, relative to that frame.
The Jacobian is represented as a 6x7 matrix in column-major format.
- Parameters:
frame – [in] The desired frame.
robot_state – [in] State from which the pose should be calculated.
- Returns:
Vectorized 6x7 Jacobian, column-major.
-
inline virtual std::array<double, 42> zeroJacobian(franka::Frame frame, const franka::RobotState &robot_state) const
Gets the 6x7 Jacobian for the given joint relative to the base frame.
The Jacobian is represented as a 6x7 matrix in column-major format.
- Parameters:
frame – [in] The desired frame.
robot_state – [in] State from which the pose should be calculated.
- Returns:
Vectorized 6x7 Jacobian, column-major.
-
inline virtual std::array<double, 49> mass(const franka::RobotState &robot_state) const
Calculates the 7x7 mass matrix. Unit:
.- Parameters:
robot_state – [in] State from which the pose should be calculated.
- Returns:
Vectorized 7x7 mass matrix, column-major.
-
inline virtual std::array<double, 7> coriolis(const franka::RobotState &robot_state) const
Calculates the Coriolis force vector (state-space equation):
, in .- Parameters:
robot_state – [in] State from which the Coriolis force vector should be calculated.
- Returns:
Coriolis force vector.
-
inline std::array<double, 7> gravity(const std::array<double, 7> &q, double m_total, const std::array<double, 3> &F_x_Ctotal) const
Calculates the gravity vector. Unit:
. Assumes default gravity vector of -9.81 m/s^2- Parameters:
q – [in] Joint position.
m_total – [in] Weight of the attached total load including end effector. Unit:
.F_x_Ctotal – [in] Translation from flange to center of mass of the attached total load. Unit:
.
- Returns:
Gravity vector.
-
inline virtual std::array<double, 7> gravity(const franka::RobotState &robot_state, const std::array<double, 3> &gravity_earth) const
Calculates the gravity vector. Unit:
.- Parameters:
robot_state – [in] State from which the gravity vector should be calculated.
gravity_earth – [in] Earth’s gravity vector. Unit:
.
- Returns:
Gravity vector.
-
inline virtual std::array<double, 7> gravity(const franka::RobotState &robot_state) const
Calculates the gravity vector. Unit:
. Assumes default gravity vector of -9.81 m/s^2- Parameters:
robot_state – [in] State from which the gravity vector should be calculated.
- Returns:
Gravity vector.
Protected Functions
-
Model() = default
-
inline explicit Model(franka::Model *model)