Package Summary
| Version | 2.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
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.6.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-08-10 |
| 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.6.0 (2026-08-10)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.1 requires ROS 2 Humble
- fix: tune mobile teleop velocity/acceleration limits to stay within
the RCU 2-norm bounds. Raise swerve translational limits to 0.35 m/s
/ 0.4 m/s\^2 and rotational to 0.5 rad/s / 0.3 rad/s\^2 in
controllers.yaml, rescale the xbox normal/turbo axes inxbox.config.yamlto matchmax_velocity, and reduce the joystick deadzone (0.1) with a higher autorepeat rate (50 Hz) inmobile_teleop.launch.pyfor smoother teleop. - test: add a no-hardware integration test suite: a fake-hardware FR3
controller-lifecycle test, a Joy→cmd_vel teleop test, a launch-file
parsing test, a MoveIt planning smoke test with a gripper
name-consistency check, and a single GTest that loads every example
controller.
moveit.launch.pygains ause_rvizargument so the smoke test can run headless. The CI test stage now selectsfranka_bringup, which the package filter had excluded, so its tests are executed rather than only built. - fix: align MoveIt gripper controller name with actual gripper node
name.
fr3_controllers.yamlandmoveit.launch.pyreferencedfr3_gripperbut the node is launched asfranka_gripper, breaking gripper action commands and joint state aggregation in MoveIt. (GitHub PR #206) - fix: add missing dependencies in package.xml for isolated builds
(
rclcpp_componentsin franka_hardware;rclcpp_lifecycle,urdf,eigenin franka_semantic_components). Fixes rosdep-based fresh-environment builds. (community contribution: GitHub PRs #96, #169) - refactor: BREAKING CHANGE decouple the simulation backend
(real/mock/gazebo) from the franka_hardware ros2_control macros
(
franka_armandtmrv0_2). The hardware<plugin>block and the gz_ros2_control<gazebo>system element are now injected by the owning package (franka_bringupfor real/mock,franka_gazebo_bringupfor gazebo) instead of being selected byxacro:ifinside franka_hardware. Mode/interface selection moved to the entry-point URDFs as capability flags (include_effort_command,include_finger_joint,include_passive_base), replacing the formergazebo/gazebo_effortflags. URDF expansions remain behavior-equivalent. - fix: collapse five duplicate top-level
/**:keys in franka_gazebo_bringup'sfranka_gazebo_controllers.yamlinto one. YAML last-key-wins was silently dropping the controller_manager type declarations, blocking the tmr gazebo launch.
v2.5.1 (2026-07-07)
Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
* feat: add tmr launch file in franka bringup and use it for the mobile teleop launch file Requires libfranka >= 0.20.4 and franka_description >= 2.8.0 requires ROS 2 Humble
- feat: franka_gazebo: add robot model, full
franka::RobotStateand estimated external-wrench (tcp force/torque) state interfaces to the gz_ros2_control system plugin, so model-based and force/torque controllers activate in simulation like on hardware. The plugin is renamedfranka_gazebo_hardware/FrankaGazeboHardwareInterface. - fix: franka_hardware: set the gz_ros2_control plugin
<ros><namespace>for the mobile robot (tmrv0_2) so the controller_manager comes up in the/mobile_basenamespace and controllers load in simulation instead of the launch hanging onrobot_state_publisher service not available. - feat: franka_gazebo: the simulated external wrench is expressed in
the stiffness frame K (
K_F_ext_hat_Kand the_tcpforce/torque interfaces), whileO_F_ext_hat_Kstays in the base frame; the wrench sign follows the reaction convention (a push in +x reads a measured external force of -x). - feat: franka_gazebo: export the 16
<i>/cartesian_pose_statestate interfaces from the gz_ros2_control system plugin, so Cartesian-pose controllers activate in simulation like on hardware.
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
File truncated at 100 lines see the full file