.. _program_listing_file_include_franka_model.h: Program Listing for File model.h ================================ |exhale_lsh| :ref:`Return to documentation for file ` (``include/franka/model.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright (c) 2023 Franka Robotics GmbH // Use of this source code is governed by the Apache-2.0 license, see LICENSE #pragma once #include #include #include #include #include namespace franka { enum class Frame { kJoint1, kJoint2, kJoint3, kJoint4, kJoint5, kJoint6, kJoint7, kFlange, kEndEffector, kStiffness }; Frame operator++(Frame& frame, int /* dummy */) noexcept; class ModelLibrary; class Network; class Model { public: explicit Model(franka::Network& network, const std::string& urdf_model); explicit Model(franka::Network& network, std::unique_ptr robot_model); Model(Model&& model) noexcept; Model& operator=(Model&& model) noexcept; ~Model() noexcept; std::array pose(Frame frame, const franka::RobotState& robot_state) const; std::array pose( Frame frame, const std::array& q, const std::array& F_T_EE, // NOLINT(readability-identifier-naming) const std::array& EE_T_K) // NOLINT(readability-identifier-naming) const; std::array bodyJacobian(Frame frame, const franka::RobotState& robot_state) const; std::array bodyJacobian( Frame frame, const std::array& q, const std::array& F_T_EE, // NOLINT(readability-identifier-naming) const std::array& EE_T_K) // NOLINT(readability-identifier-naming) const; std::array zeroJacobian(Frame frame, const franka::RobotState& robot_state) const; std::array zeroJacobian( Frame frame, const std::array& q, const std::array& F_T_EE, // NOLINT(readability-identifier-naming) const std::array& EE_T_K) // NOLINT(readability-identifier-naming) const; std::array mass(const franka::RobotState& robot_state) const noexcept; std::array mass( const std::array& q, const std::array& I_total, // NOLINT(readability-identifier-naming) double m_total, const std::array& F_x_Ctotal) // NOLINT(readability-identifier-naming) const noexcept; std::array coriolis(const franka::RobotState& robot_state) const noexcept; std::array coriolis( const std::array& q, const std::array& dq, const std::array& I_total, // NOLINT(readability-identifier-naming) double m_total, const std::array& F_x_Ctotal) // NOLINT(readability-identifier-naming) const noexcept; std::array gravity( const std::array& q, double m_total, const std::array& F_x_Ctotal, // NOLINT(readability-identifier-naming) const std::array& gravity_earth = {{0., 0., -9.81}}) const noexcept; std::array gravity(const franka::RobotState& robot_state, const std::array& gravity_earth) const noexcept; std::array gravity(const franka::RobotState& robot_state) const noexcept; Model(const Model&) = delete; Model& operator=(const Model&) = delete; private: std::unique_ptr library_; std::unique_ptr robot_model_; }; } // namespace franka