github frankarobotics/franka_ros2 v3.4.0
franka_ros2 v3.4.0

latest release: v2.5.0
3 hours ago

Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Jazzy

  • feat: expose K_F_ext_hat_K as ForceTorqueSensor state interfaces (force.x/y/z,
    torque.x/y/z) on the <arm_prefix><robot_type>_tcp sensor, enabling direct wrench
    consumption at control frequency without a topic bridge.

  • fix(franka_mobile): enable jerk limiting on the swerve_drive_controller velocity
    limiter (linear x/y, angular z) so the commanded base velocity ramps with a bounded
    acceleration onset, preventing the firmware cartesian_motion_generator_velocity_discontinuity
    reflex from aborting base motion when switching between whole-body and base-only control.
    The rate-limiter timestep is fixed at the nominal 1 kHz control period.

  • BREAKING CHANGE: collision_detected topic now uses best_effort QoS (SensorDataQoS);
    thread-safe atomics for collision state in example controllers.
    Subscribers using the default reliable QoS will no longer receive messages.
    To migrate, set the subscriber QoS to best_effort (SensorDataQoS):

    .. code-block:: cpp

    // Before (default reliable QoS — no longer receives messages):
    auto sub = node->create_subscription<std_msgs::msg::Bool>(
    "collision_detected", 1, callback);

    // After (best_effort QoS):
    auto sub = node->create_subscription<std_msgs::msg::Bool>(
    "collision_detected", rclcpp::SensorDataQoS(), callback);

  • refactor: Removed the robot_description from launch files - controller_manager gets it natively via topic

  • docu: Added documentation for error recovery after an FCI error.

  • fix: Pinocchios collision detection component dropped the 'fcl/hpp' namespace and only supports now the coal namespace

  • feat: added a model-based gravity-compensation system plugin
    (franka_gazebo_hardware::GazeboGravityCompensationSystem) for gz_ros2_control that
    injects pinocchio-computed gravity torque on the effort-controlled arm joints, so the
    zero-torque example controllers behave in Gazebo as on the real robot (where the master
    controller performs gravity compensation) instead of collapsing under gravity.

  • chore: restructured the Gazebo support into two packages under the franka_gazebo/
    grouping folder: franka_gazebo_bringup (launch/world/urdf/config assets) and
    franka_gazebo_hardware (the gz system plugin). The public launch command
    ros2 launch franka_gazebo_bringup <file> is unchanged; the plugin is now referenced as
    franka_gazebo_hardware/GazeboGravityCompensationSystem.

  • chore: removed the per-link <gravity>false</gravity> xacro overrides; gravity is now
    enabled globally in the Gazebo world. This is engine-independent (the previous approach
    relied on a gz-fortress gravity-disable behavior that is not forwarded by some physics
    engines). Simulation-only behavior change; no impact on real-robot users.

  • feat: hold the mobile platform (mobile_fr3_duo_v0_2) prismatic
    franka_spine_vertical_joint against gravity with a spine_joint_trajectory_controller
    (JointTrajectoryController on a position command interface) that holds the column at its
    initial height.

Don't miss a new franka_ros2 release

NewReleases is sending notifications on new releases.