libfranka 0.15.0
FCI C++ API
|
Calculates poses of joints and dynamic properties of the robot. More...
#include <model.h>
Public Member Functions | |
Model (franka::Network &network, const std::string &urdf_model) | |
Creates a new Model instance. | |
Model (franka::Network &network, std::unique_ptr< RobotModelBase > robot_model) | |
Creates a new Model instance only for the tests. | |
Model (Model &&model) noexcept | |
Move-constructs a new Model instance. | |
Model & | operator= (Model &&model) noexcept |
Move-assigns this Model from another Model instance. | |
~Model () noexcept | |
Unloads the model library. | |
std::array< double, 16 > | pose (Frame frame, const franka::RobotState &robot_state) const |
Gets the 4x4 pose matrix for the given frame in base frame. | |
std::array< double, 16 > | pose (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. | |
std::array< double, 42 > | bodyJacobian (Frame frame, const franka::RobotState &robot_state) const |
Gets the 6x7 Jacobian for the given frame, relative to that frame. | |
std::array< double, 42 > | bodyJacobian (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. | |
std::array< double, 42 > | zeroJacobian (Frame frame, const franka::RobotState &robot_state) const |
Gets the 6x7 Jacobian for the given joint relative to the base frame. | |
std::array< double, 42 > | zeroJacobian (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, 49 > | mass (const franka::RobotState &robot_state) const noexcept |
Calculates the 7x7 mass matrix. | |
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. | |
std::array< double, 7 > | coriolis (const franka::RobotState &robot_state) const noexcept |
Calculates the Coriolis force vector (state-space equation): \( c= C \times
dq\), in \([Nm]\). | |
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): \( c= C \times
dq\), in \([Nm]\). | |
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 |
Calculates the gravity vector. | |
std::array< double, 7 > | gravity (const franka::RobotState &robot_state, const std::array< double, 3 > &gravity_earth) const noexcept |
Calculates the gravity vector. | |
std::array< double, 7 > | gravity (const franka::RobotState &robot_state) const noexcept |
Calculates the gravity vector using the robot state. | |
Calculates poses of joints and dynamic properties of the robot.
|
explicit |
Creates a new Model instance.
This constructor is for internal use only.
[in] | network | For internal use. |
ModelException | if the model library cannot be loaded. |
|
explicit |
Creates a new Model instance only for the tests.
This constructor is for the unittests for enabling mocks.
[in] | network | For internal use. |
[in] | robot_model | unique pointer to the mocked robot_model |
|
noexcept |
std::array< double, 42 > franka::Model::bodyJacobian | ( | 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.
[in] | frame | The desired frame. |
[in] | robot_state | State from which the pose should be calculated. |
std::array< double, 42 > franka::Model::bodyJacobian | ( | 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.
[in] | frame | The desired frame. |
[in] | q | Joint position. |
[in] | F_T_EE | End effector in flange frame. |
[in] | EE_T_K | Stiffness frame K in the end effector frame. |
|
noexcept |
Calculates the Coriolis force vector (state-space equation): \( c= C \times dq\), in \([Nm]\).
[in] | robot_state | State from which the Coriolis force vector should be calculated. |
|
noexcept |
Calculates the Coriolis force vector (state-space equation): \( c= C \times dq\), in \([Nm]\).
[in] | q | Joint position. |
[in] | dq | Joint velocity. |
[in] | I_total | Inertia of the attached total load including end effector, relative to center of mass, given as vectorized 3x3 column-major matrix. Unit: \([kg \times m^2]\). |
[in] | m_total | Weight of the attached total load including end effector. Unit: \([kg]\). |
[in] | F_x_Ctotal | Translation from flange to center of mass of the attached total load. Unit: \([m]\). |
|
noexcept |
Calculates the gravity vector using the robot state.
Unit: \([Nm]\).
[in] | robot_state | State from which the gravity vector should be calculated. |
|
noexcept |
Calculates the gravity vector.
Unit: \([Nm]\).
[in] | robot_state | State from which the gravity vector should be calculated. |
[in] | gravity_earth | Earth's gravity vector. Unit: \(\frac{m}{s^2}\). |
|
noexcept |
Calculates the gravity vector.
Unit: \([Nm]\).
[in] | q | Joint position. |
[in] | m_total | Weight of the attached total load including end effector. Unit: \([kg]\). |
[in] | F_x_Ctotal | Translation from flange to center of mass of the attached total load. Unit: \([m]\). |
[in] | gravity_earth | Earth's gravity vector. Unit: \(\frac{m}{s^2}\). Default to {0.0, 0.0, -9.81}. |
|
noexcept |
Calculates the 7x7 mass matrix.
Unit: \([kg \times m^2]\).
[in] | robot_state | State from which the mass matrix should be calculated. |
|
noexcept |
Calculates the 7x7 mass matrix.
Unit: \([kg \times m^2]\).
[in] | q | Joint position. |
[in] | I_total | Inertia of the attached total load including end effector, relative to center of mass, given as vectorized 3x3 column-major matrix. Unit: \([kg \times m^2]\). |
[in] | m_total | Weight of the attached total load including end effector. Unit: \([kg]\). |
[in] | F_x_Ctotal | Translation from flange to center of mass of the attached total load. Unit: \([m]\). |
std::array< double, 16 > franka::Model::pose | ( | 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.
[in] | frame | The desired frame. |
[in] | robot_state | State from which the pose should be calculated. |
std::array< double, 16 > franka::Model::pose | ( | 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.
[in] | frame | The desired frame. |
[in] | q | Joint position. |
[in] | F_T_EE | End effector in flange frame. |
[in] | EE_T_K | Stiffness frame K in the end effector frame. |
std::array< double, 42 > franka::Model::zeroJacobian | ( | 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.
[in] | frame | The desired frame. |
[in] | robot_state | State from which the pose should be calculated. |
std::array< double, 42 > franka::Model::zeroJacobian | ( | 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.
[in] | frame | The desired frame. |
[in] | q | Joint position. |
[in] | F_T_EE | End effector in flange frame. |
[in] | EE_T_K | Stiffness frame K in the end effector frame. |