.. _program_listing_file_include_franka_robot_model.h: Program Listing for File robot_model.h ====================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/franka/robot_model.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright (c) 2024 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 #include #include "franka/robot_model_base.h" namespace franka { class RobotModel : public RobotModelBase { public: RobotModel(const std::string& urdf); void coriolis(const std::array& q, const std::array& dq, const std::array& i_total, double m_total, const std::array& f_x_ctotal, std::array& c_ne) override; void gravity(const std::array& q, const std::array& g_earth, double m_total, const std::array& f_x_ctotal, std::array& g_ne) override; void mass(const std::array& q, const std::array& i_total, double m_total, const std::array& f_x_ctotal, std::array& m_ne) override; private: void addInertiaToLastLink(const std::array& i_total, double m_total, const std::array& f_x_ctotal); void computeDynamics( const std::array& i_total, double m_total, const std::array& f_x_ctotal, pinocchio::Data& data, const std::function& compute_func); pinocchio::Model pinocchio_model_; pinocchio::Inertia initial_last_link_inertia_; pinocchio::FrameIndex last_link_frame_index_; pinocchio::JointIndex last_joint_index_; }; } // namespace franka