|
| bool | checkForConflict (const std::list< hardware_interface::ControllerInfo > &info) const override |
| | Checks whether a requested controller can be run, based on the resources and interfaces it claims. More...
|
| |
| void | control (const std::function< bool(const ros::Time &, const ros::Duration &)> &ros_callback=[](const ros::Time &, const ros::Duration &){return true;}) const override |
| | Runs the currently active controller in a realtime loop. More...
|
| |
| bool | controllerNeedsReset () const noexcept |
| | Returns whether the controller needs to be reset e.g. More...
|
| |
| | FrankaCombinableHW () |
| | Creates an instance of FrankaCombinableHW. More...
|
| |
| std::string | getArmID () const noexcept |
| | Getter method for the arm_id which is used to distinguish between multiple instances of FrankaCombinableHW. More...
|
| |
| bool | hasError () const noexcept |
| | Getter for the error flag of the class. More...
|
| |
| void | initROSInterfaces (ros::NodeHandle &robot_hw_nh) override |
| | Initializes the class in terms of ros_control interfaces. More...
|
| |
| void | read (const ros::Time &, const ros::Duration &) override |
| | Reads data from the franka robot. More...
|
| |
| void | resetError () |
| | Recovers the libfranka robot, resets the error flag and publishes the error state. More...
|
| |
| void | triggerError () |
| | Triggers a stop of the controlLoop. More...
|
| |
| void | write (const ros::Time &, const ros::Duration &period) override |
| | Writes data to the franka robot. More...
|
| |
| virtual void | checkJointLimits () |
| | Checks the proximity of each joint to its joint position limits and prints a warning whenever a joint is close to a limit. More...
|
| |
| virtual bool | controllerActive () const noexcept |
| | Indicates whether there is an active controller. More...
|
| |
| virtual void | doSwitch (const std::list< hardware_interface::ControllerInfo > &, const std::list< hardware_interface::ControllerInfo > &) override |
| | Performs controller switching (real-time capable). More...
|
| |
| virtual void | enforceLimits (const ros::Duration &period) |
| | Enforces limits on position, velocity, and torque level. More...
|
| |
| | FrankaHW () |
| | Default constructor. More...
|
| |
| virtual std::array< double, 7 > | getJointEffortCommand () const noexcept |
| | Gets the current joint torque command. More...
|
| |
| virtual std::array< double, 7 > | getJointPositionCommand () const noexcept |
| | Gets the current joint position command. More...
|
| |
| virtual std::array< double, 7 > | getJointVelocityCommand () const noexcept |
| | Gets the current joint velocity command. More...
|
| |
| virtual bool | init (ros::NodeHandle &root_nh, ros::NodeHandle &robot_hw_nh) override |
| | Initializes the FrankaHW class to be fully operational. More...
|
| |
| virtual bool | initParameters (ros::NodeHandle &root_nh, ros::NodeHandle &robot_hw_nh) |
| | Reads the parameterization of the hardware class from the ROS parameter server (e.g. More...
|
| |
| virtual bool | prepareSwitch (const std::list< hardware_interface::ControllerInfo > &start_list, const std::list< hardware_interface::ControllerInfo > &stop_list) override |
| | Prepares switching between controllers (not real-time capable). More...
|
| |
| virtual void | reset () |
| | Resets the limit interfaces. More...
|
| |
| virtual franka::Robot & | robot () const |
| | Getter for the libfranka robot instance. More...
|
| |
| virtual void | setupParameterCallbacks (ros::NodeHandle &robot_hw_nh) |
| | Initializes the callbacks for on-the-fly reading the parameters for rate limiting, internal controllers and cutoff frequency. More...
|
| |
| virtual void | update (const franka::RobotState &robot_state) |
| | Updates the controller interfaces from the given robot state. More...
|
| |
| virtual | ~FrankaHW () override=default |
| |
| | RobotHW () |
| |
| virtual | ~RobotHW () |
| |
| T * | get () |
| |
| std::vector< std::string > | getInterfaceResources (std::string iface_type) const |
| |
| std::vector< std::string > | getNames () const |
| |
| void | registerInterface (T *iface) |
| |
| void | registerInterfaceManager (InterfaceManager *iface_man) |
| |
|
| static bool | commandHasNaN (const franka::Torques &command) |
| | Checks a command for NaN values. More...
|
| |
| static bool | commandHasNaN (const franka::JointPositions &command) |
| | Checks a command for NaN values. More...
|
| |
| static bool | commandHasNaN (const franka::JointVelocities &command) |
| | Checks a command for NaN values. More...
|
| |
| static bool | commandHasNaN (const franka::CartesianPose &command) |
| | Checks a command for NaN values. More...
|
| |
| static bool | commandHasNaN (const franka::CartesianVelocities &command) |
| | Checks a command for NaN values. More...
|
| |
| using | Callback = std::function< bool(const franka::RobotState &, franka::Duration)> |
| |
| typedef std::vector< InterfaceManager * > | InterfaceManagerVector |
| |
| typedef std::map< std::string, void * > | InterfaceMap |
| |
| typedef std::map< std::string, std::vector< std::string > > | ResourceMap |
| |
| typedef std::map< std::string, size_t > | SizeMap |
| |
| template<typename T > |
| T | controlCallback (const T &command, Callback ros_callback, const franka::RobotState &robot_state, franka::Duration time_step) |
| | Callback for the libfranka control loop. More...
|
| |
| virtual void | setupFrankaCartesianPoseInterface (franka::CartesianPose &pose_cartesian_command) |
| | Configures and registers the command interface for Cartesian poses in ros_control. More...
|
| |
| virtual void | setupFrankaCartesianVelocityInterface (franka::CartesianVelocities &velocity_cartesian_command) |
| | Configures and registers the command interface for Cartesian velocities in ros_control. More...
|
| |
| virtual void | setupFrankaModelInterface (franka::RobotState &robot_state) |
| | Configures and registers the model interface offering kinematics and dynamics in ros_control. More...
|
| |
| virtual void | setupFrankaStateInterface (franka::RobotState &robot_state) |
| | Configures and registers the state interface offering the full franka::RobotState in ros_control. More...
|
| |
| template<typename T > |
| void | setupJointCommandInterface (std::array< double, 7 > &command, franka::RobotState &state, bool use_q_d, T &interface) |
| | Configures and registers a joint command interface for positions velocities or efforts in ros_control. More...
|
| |
| virtual void | setupJointStateInterface (franka::RobotState &robot_state) |
| | Configures and registers the joint state interface in ros_control. More...
|
| |
| template<typename T > |
| void | setupLimitInterface (joint_limits_interface::JointLimitsInterface< T > &limit_interface, hardware_interface::JointCommandInterface &command_interface) |
| | Configures a limit interface to enforce limits on effort, velocity or position level on joint commands. More...
|
| |
| template<size_t size> |
| static bool | arrayHasNaN (const std::array< double, size > &array) |
| | Checks whether an array of doubles contains NaN values. More...
|
| |
| static std::vector< double > | getCollisionThresholds (const std::string &name, ros::NodeHandle &robot_hw_nh, const std::vector< double > &defaults) |
| | Parses a set of collision thresholds from the parameter server. More...
|
| |
| std::string | arm_id_ |
| |
| CollisionConfig | collision_config_ |
| |
| std::atomic_bool | controller_active_ {false} |
| |
| ControlMode | current_control_mode_ = ControlMode::None |
| |
| franka::Torques | effort_joint_command_libfranka_ |
| |
| franka::Torques | effort_joint_command_ros_ |
| |
| hardware_interface::EffortJointInterface | effort_joint_interface_ {} |
| |
| joint_limits_interface::EffortJointSoftLimitsInterface | effort_joint_limit_interface_ {} |
| |
| FrankaModelInterface | franka_model_interface_ {} |
| |
| FrankaPoseCartesianInterface | franka_pose_cartesian_interface_ {} |
| |
| FrankaStateInterface | franka_state_interface_ {} |
| |
| FrankaVelocityCartesianInterface | franka_velocity_cartesian_interface_ {} |
| |
| std::function< double()> | get_cutoff_frequency_ |
| |
| std::function< franka::ControllerMode()> | get_internal_controller_ |
| |
| std::function< bool()> | get_limit_rate_ |
| |
| bool | initialized_ {false} |
| |
| double | joint_limit_warning_threshold_ {0.1} |
| |
| std::array< std::string, 7 > | joint_names_ |
| |
| hardware_interface::JointStateInterface | joint_state_interface_ {} |
| |
| std::mutex | libfranka_cmd_mutex_ |
| |
| std::mutex | libfranka_state_mutex_ |
| |
| std::unique_ptr< franka::Model > | model_ |
| |
| franka::CartesianPose | pose_cartesian_command_libfranka_ |
| |
| franka::CartesianPose | pose_cartesian_command_ros_ |
| |
| franka::JointPositions | position_joint_command_libfranka_ |
| |
| franka::JointPositions | position_joint_command_ros_ |
| |
| hardware_interface::PositionJointInterface | position_joint_interface_ {} |
| |
| joint_limits_interface::PositionJointSoftLimitsInterface | position_joint_limit_interface_ {} |
| |
| franka::RealtimeConfig | realtime_config_ |
| |
| std::unique_ptr< franka::Robot > | robot_ |
| |
| std::string | robot_ip_ |
| |
| franka::RobotState | robot_state_libfranka_ {} |
| |
| franka::RobotState | robot_state_ros_ {} |
| |
| std::mutex | ros_cmd_mutex_ |
| |
| std::mutex | ros_state_mutex_ |
| |
| std::function< void(franka::Robot &, Callback)> | run_function_ |
| |
| urdf::Model | urdf_model_ |
| |
| franka::CartesianVelocities | velocity_cartesian_command_libfranka_ |
| |
| franka::CartesianVelocities | velocity_cartesian_command_ros_ |
| |
| franka::JointVelocities | velocity_joint_command_libfranka_ |
| |
| franka::JointVelocities | velocity_joint_command_ros_ |
| |
| hardware_interface::VelocityJointInterface | velocity_joint_interface_ {} |
| |
| joint_limits_interface::VelocityJointSoftLimitsInterface | velocity_joint_limit_interface_ {} |
| |
| boost::ptr_vector< ResourceManagerBase > | interface_destruction_list_ |
| |
| InterfaceManagerVector | interface_managers_ |
| |
| InterfaceMap | interfaces_ |
| |
| InterfaceMap | interfaces_combo_ |
| |
| SizeMap | num_ifaces_registered_ |
| |
| ResourceMap | resources_ |
| |
A hardware class for a Panda robot based on the ros_control framework.
This class is ready to be combined with other hardware classes e.g. to control multiple robots from a single controller. Note: This class allows for torque (effort) control only due to the lack of synchronization between master controllers of different robots. For more information see the documentation at https://frankaemika.github.io/docs/franka_ros.html .
Definition at line 30 of file franka_combinable_hw.h.