3 #include <franka/model.h>
4 #include <franka/robot_state.h>
34 std::array<double, 16>
pose(franka::Frame frame,
const franka::RobotState& robot_state)
const {
35 return pose(frame, robot_state.q, robot_state.F_T_EE, robot_state.EE_T_K);
50 virtual std::array<double, 16>
pose(
52 const std::array<double, 7>& q,
53 const std::array<double, 16>& F_T_EE,
54 const std::array<double, 16>& EE_T_K)
68 const franka::RobotState& robot_state)
const {
69 return bodyJacobian(frame, robot_state.q, robot_state.F_T_EE, robot_state.EE_T_K);
86 const std::array<double, 7>& q,
87 const std::array<double, 16>& F_T_EE,
88 const std::array<double, 16>& EE_T_K)
102 const franka::RobotState& robot_state)
const {
103 return zeroJacobian(frame, robot_state.q, robot_state.F_T_EE, robot_state.EE_T_K);
120 const std::array<double, 7>& q,
121 const std::array<double, 16>& F_T_EE,
122 const std::array<double, 16>& EE_T_K)
132 std::array<double, 49>
mass(
const franka::RobotState& robot_state)
const {
133 return mass(robot_state.q, robot_state.I_total, robot_state.m_total, robot_state.F_x_Ctotal);
149 virtual std::array<double, 49>
mass(
150 const std::array<double, 7>& q,
151 const std::array<double, 9>& I_total,
153 const std::array<double, 3>& F_x_Ctotal)
164 std::array<double, 7>
coriolis(
const franka::RobotState& robot_state)
const {
165 return coriolis(robot_state.q, robot_state.dq, robot_state.I_total, robot_state.m_total,
166 robot_state.F_x_Ctotal);
184 virtual std::array<double, 7>
coriolis(
185 const std::array<double, 7>& q,
186 const std::array<double, 7>& dq,
187 const std::array<double, 9>& I_total,
189 const std::array<double, 3>& F_x_Ctotal)
204 const std::array<double, 7>& q,
206 const std::array<double, 3>& F_x_Ctotal
208 return gravity(q, m_total, F_x_Ctotal, {0, 0, -9.81});
223 virtual std::array<double, 7>
gravity(
224 const std::array<double, 7>& q,
226 const std::array<double, 3>& F_x_Ctotal,
227 const std::array<double, 3>& gravity_earth)
const = 0;
236 std::array<double, 7>
gravity(
const franka::RobotState& robot_state)
const {
237 #ifdef ENABLE_BASE_ACCELERATION
238 return gravity(robot_state.q, robot_state.m_total, robot_state.F_x_Ctotal, robot_state.O_ddP_O);
240 return gravity(robot_state.q, robot_state.m_total, robot_state.F_x_Ctotal, {0, 0, -9.81});
252 std::array<double, 7>
gravity(
const franka::RobotState& robot_state,
253 const std::array<double, 3>& gravity_earth)
const {
254 return gravity(robot_state.q, robot_state.m_total, robot_state.F_x_Ctotal, gravity_earth);