franka_robot_state_broadcaster

This package contains read-only franka_robot_state_broadcaster controller.

Functionality

The broadcaster publishes franka_robot_state topic to the topic named /franka_robot_state_broadcaster/robot_state. This controller node is spawned by franka_launch.py in the franka_bringup. Therefore, all the examples that include the franka_launch.py publishes the robot_state topic.

Usage

The robot state broadcaster is automatically started when you launch the robot using:

ros2 launch franka_bringup franka.launch.py robot_ip:=<fci-ip>

Parameters

  • convenience_publish_rate (int, default: 1000, range: [1, 1000]): Publish rate in Hz for convenience topics. The full robot state always publishes at the controller update rate (1 kHz). Set this to a lower value (e.g. 100) to reduce bandwidth for convenience topics while keeping the full state at 1 kHz.

    Example in controllers.yaml:

    franka_robot_state_broadcaster:
      ros__parameters:
        convenience_publish_rate: 100
    

Published Topics

Full robot state (reliable QoS):

  • ~/robot_state (franka_msgs/FrankaRobotState): Complete robot state at 1 kHz. Published with reliable QoS (rclcpp::SystemDefaultsQoS()).

Convenience topics (best_effort QoS):

The following topics are published at the rate configured by convenience_publish_rate. They use best_effort QoS to avoid blocking the real-time publish thread.

Important

Subscribers must use best_effort reliability to receive these topics. The default QoS (reliable) is not compatible and will result in no messages being received. This applies to custom nodes, ros2 topic echo (use --qos-reliability best_effort), and rviz2 (set Reliability Policy to “Best Effort” in display properties).

  • ~/current_pose (geometry_msgs/PoseStamped): Measured end-effector pose in base frame.

  • ~/last_desired_pose (geometry_msgs/PoseStamped): Last desired end-effector pose.

  • ~/desired_end_effector_twist (geometry_msgs/TwistStamped): Desired end-effector twist.

  • ~/measured_joint_states (sensor_msgs/JointState): Measured joint positions, velocities, and torques.

  • ~/desired_joint_states (sensor_msgs/JointState): Desired joint positions, velocities, and torques.

  • ~/external_joint_torques (sensor_msgs/JointState): Estimated external joint torques.

  • ~/external_wrench_in_base_frame (geometry_msgs/WrenchStamped): Estimated external wrench in base frame.

  • ~/external_wrench_in_stiffness_frame (geometry_msgs/WrenchStamped): Estimated external wrench in stiffness frame.

Integration

This broadcaster integrates with the franka_semantic_components package to provide safe access to robot state information for controllers and other nodes.