Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_ros2 at Robotics Stack Exchange
Package Summary
| Version | 2.5.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2026-06-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
Changelog for package franka_ros2
v2.5.0 (2026-06-23)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- chore: split the gazebo sources into two packages,
franka_gazebo_bringup(launch files, worlds, robot descriptions, controller configs) andfranka_gazebo_hardware(the gz_ros2_control gravity-compensation system plugin,franka_gazebo_hardware/GazeboGravityCompensationSystem). The publicros2 launch franka_gazebo_bringup ...command is unchanged.
* fix: franka_gazebo_bringup: fix launch file for gazebo (use world without gravity by default for example controllers) Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble Requires libfranka >= 0.20.4 and franka_description >= 2.8.0(?) requires ROS 2 Jazzy
- feat: expose
K_F_ext_hat_KasForceTorqueSensorstate interfaces (force.x/y/z, torque.x/y/z) on the<arm_prefix><robot_type>_tcpsensor, enabling direct wrench consumption at control frequency without a topic bridge. - BREAKING CHANGE: collision_detected topic now uses best_effort QoS
(SensorDataQoS); thread-safe atomics for collision state in example
controllers. Subscribers using the default
reliableQoS will no longer receive messages. To migrate, set the subscriber QoS tobest_effort(SensorDataQoS): - feat: Added franka_spine packages (franka_spine_msgs, franka_spine_server, franka_spine_examples) — ROS 2 action/service server for controlling the Franka Spine module
- docu: Added documentation for error recovery after an FCI error.
- refactor: Removed the dead
auto_declare<std::string>("robot_description", "")parameter from the joint position/velocity example controllers - the URDF is obtained from robot_state_publisher via the parameters client, so the declaration was unused. - chore: devcontainer container name now derives from the workspace
folder basename (
<folder>_humble) so variant clones no longer collide on a fixed container name.
v2.4.0 (2026-05-04)
Requires libfranka >= 0.20.4 and franka_description >= 2.7.0 requires ROS 2 Humble
-
breaking change: Switching franka_description common package both for humble and jazzy -> 2.7.0
-
chore: refactored cartesian velocity example controller to be gazebo independent by chaining [swerve_ik_controller]{.title-ref}
-
feat: added a model-based gravity-compensation system plugin (
franka_gazebo_bringup::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: 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. -
docu: Maintenance work on documentation
-
feat: Added [franka_mobile]{.title-ref} package with [swerve_drive_controller]{.title-ref} (tf and odom support) and [swerve_ik_controller]{.title-ref} for gazebo sim.
-
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. 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)
// 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)**
File truncated at 100 lines see the full file