Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Jazzy
-
feat: Added the spline action server and examples for the Franka Spine
-
chore: refactored gazebo launch files, added integration tests
-
chore: refactored mFR3duo example controller to be gazebo independent by chaining
swerve_ik_controller -
chore: removed vendored controller_manager
-
feat: Added
franka_mobilepackage withswerve_drive_controller(tf and odom support) andswerve_ik_controllerfor gazebo sim. -
docu: Maintenance work on documentation
-
feat: add franka_vision_and_manipulation_kit package with urdf descriptions and launch files for the Franka Vision and Manipulation Kit
-
refactor: replace blocking mutex in franka_robot_state_broadcaster with lock-free AsyncBuffer
-
BREAKING CHANGE: franka_robot_state_broadcaster convenience topics are published with best_effort QoS
-
chore: Added a CI job to try backporting jazzy to humble
-
BREAKING CHANGE: franka_robot_state_broadcaster convenience topics are published with best_effort QoS.
Topics affected:current_pose,stiffness_frame_wrench, and all other convenience topics
from the broadcaster. Subscribers using the defaultreliableQoS will no longer receive
messages. To migrate, set the subscriber QoS tobest_effort:C++ (rclcpp)
.. code-block:: cpp
// Before (default reliable QoS — no longer receives messages):
auto sub = node->create_subscription<geometry_msgs::msg::PoseStamped>(
"current_pose", 10, callback);// After (best_effort QoS):
rclcpp::QoS qos(10);
qos.best_effort();
auto sub = node->create_subscription<geometry_msgs::msg::PoseStamped>(
"current_pose", qos, callback);Python (rclpy)
.. code-block:: python
Before (default reliable QoS — no longer receives messages):
self.create_subscription(PoseStamped, 'current_pose', callback, 10)
After (best_effort QoS):
from rclpy.qos import QoSProfile, ReliabilityPolicy
qos = QoSProfile(depth=10, reliability=ReliabilityPolicy.BEST_EFFORT)
self.create_subscription(PoseStamped, 'current_pose', callback, qos) -
feat: franka_vision_and_manipulation_kit package used in Gazebo to display the sensors of the kit
-
fix: clang-tidy test duration reduced by applying a filter
-
feat: added a gazebo example for fr3 duo using the franka vision and manipulation kit
-
fix: teleop node is publishing correctly if there is no namespace
-
feat: Added moveit support for mobile fr3 duo
-
feat: Updated franka_selfcollision package to support mobile_fr3_duo in addition to fr3_duo
-
fix: resolve segfault caused by ABI mismatch between hardware_interface and controller_manager C++ (rclcpp)
-
chore: Unify ros2_control (Jazzy) sources to avoid ABI mismatches (add ros2_control to dependency.repos so hardware_interface/controller_manager build from the same ABI;
remove the standalone hardware_interface fork; keep manage_overruns for async hardware components via a small patch auto-applied in franka_entrypoint.sh).
BREAKING: existing workspaces must be cleaned before rebuilding:rm -rf build/ install/ && colcon build -
fix: Removed the
franka_robot_state_broadcasterwhile using the TMR -
fix: With async control, it could happen that the robot_state is teared while publishing. This fix provides a
lock-free intermediate buffer to allow mutual exclusive robot_state buffer data access. -
fix: improved integration test reliability
-
chore: Removed the explicit self collision example and added it by default to the fr3 duo and mobile fr3 duo examples
-
fix: make FrankaHardwareInterface error recoverable
-
refactor: FrankaHardwareInterface to use enums for the control mode
-
fix: ActionServers crashing when exception is not caught
-
fix: re-enable franka_gazebo_bringup launch tests with robust gz sim cleanup between tests