![]()  | 
  
    libfranka 0.16.1
    
   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 > | 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 std::array< double, 3 > &gravity_earth) const noexcept | 
| Calculates the Coriolis force vector with gravity (faster implementation).   | |
| 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 Coriolis force vector with gravity (faster implementation).
Unit: \([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]\). | 
| [in] | gravity_earth | Earth's gravity vector. Unit: \(\frac{m}{s^2}\). | 
      
  | 
  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. |