|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_ros repofranka_control franka_description franka_example_controllers franka_gripper franka_hw franka_msgs franka_ros franka_visualization panda_moveit_config |
ROS Distro
|
Package Summary
| Version | 0.6.0 |
| License | Apache 2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros.git |
| VCS Type | git |
| VCS Version | lunar-devel |
| Last Updated | 2018-08-08 |
| Dev Status | UNMAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Emika GmbH
Authors
- Franka Emika GmbH
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_description repofranka_description |
ROS Distro
|
Package Summary
| Version | 2.9.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_description.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
franka_description
Overview
The Franka Description repository offers all Franka Robotics models. It includes detailed 3D models and essential robot parameters, crucial for simulating these robots in various environments. Additionally, the repository provides a feature to create URDFs (Unified Robot Description Format) for the selected Franka robot model.
Robot model support
The fer model (Franka Emika Robot, formerly Panda) is not
supported. It is still shipped and can still be generated, but issues
reported against it will not be fixed. Use fr3 or fp3 instead.
Features
- Comprehensive 3D Models: Detailed 3D models of all Franka Robotics models for accurate simulation and visualization.
- Robot Parameters: All necessary robot parameters for realistic and reliable simulations.
- URDF Creation: Ability to create URDF files for any selected Franka robot model, essential for robot simulations in ROS and other robotic middleware.
Prerequisites
- Docker
URDF Creation
To start the generation, execute the start.sh script. The arguments
passed to the sh script will be used from the create_urdf.py.
# Start the generation of the urdf model
./scripts/create_urdf.sh <robot_type>
The urdf generation is performed by the create_urdf.py script which
offers several parameters to customize the output urdf model:
usage: create_urdf.py [-h] [--robot-ee] [--no-ee] [--with-sc] [--abs-path] [--host-dir HOST_DIR] [--only-ee] [--no-prefix] robot_model
Generate franka robots urdf models. Script to be executed from franka_description root folder!
positional arguments:
robot_model id of the robot model (accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2, none)
optional arguments:
-h, --help show this help message and exit
--robot-ee id of the robot end effector (accepted values are: franka_hand, cobot_pump)
--no-ee Disable loading of end-effector (robot-ee would be ingnored if set) [WARNING: this argument will be removed in future releases, introducing "none" as ee id].
--with-sc Include self-collision volumes in the urdf model.
--abs-path Use absolute paths.
--host-dir HOST_DIR Provide a host directory for the absolute path.
--only-ee Get URDF with solely end-effector data
--no-prefix Override the robot prefix of links, joints and visuals in the urdf file.
Visualize via ROS2
franka_description is offered as a ROS2 package. The urdf file can be
visualized via RViz with the following command:
# visualize_franka.sh launches the visualize_franka.launch.py in a ros2 instance running in the docker container
# The arguments given to the .sh script are forwarded as launch arguments
# Accepted launch arguments are:
# robot_type - accepted values are: fr3v2_1, fr3v2, fr3, fp3, fer, fr3_duo, tmrv0_2, mobile_fr3_duo_v0_2
# load_gripper - accepted values are: true (default ee_id is franka_hand), false (ee_id will be ignored) [WARNING: this argument will be removed in future releases, introducing "none" as ee id]
# ee_id - accepted values are: franka_hand, cobot_pump
./scripts/visualize_franka.sh robot_type:=<robot_type>
If you want to visualize the fr3 duo designed for multiple controller managers, the following command must be used:
./scripts/visualize_franka_duo.sh robot_type:=<robot_type>
Troubleshooting
Figuring out your arm type
Identifying which arm type you have purchased is not always obvious, especially for fr3, fr3v2 and fr3v2_1, as the differences are subtle. The easiest way is to check the arm type in Desk->Settings->Dashboard:
franka_description Desk ———————————– ———————————– fp3 Arm3P
File truncated at 100 lines see the full file
Changelog for package franka_description
2.9.0 (2026-08-17)
- fix: the MoveIt planning chain of an arm carrying a cobot pump now
ends at
<prefix>cobot_pump_tcpinstead of<prefix>link8, so a pose goal names the pump's suction point rather than the flange, the same way the franka hand already tips at<prefix>hand_tcp. MIGRATION: pose goals sent withee_id:=cobot_pumpshift by 105 mm along the flange z axis; setups that applied that offset themselves must drop it, or every goal will overshoot by that much. Descriptions using the franka hand or no end effector are unchanged. - fix: the tcp offset now defaults to the mounted end effector's own
value instead of being silently zeroed by the
franka_robotmacro or hardcoded to the franka hand's value by the robot entry points. MIGRATION: a robot generated withee_id:=cobot_pumpnow places<prefix>cobot_pump_tcpat0 0 0.105(the pump's documented offset) rather than at the franka hand's0 0 0.1034, a change of 1.6 mm along z; passtcp_xyzexplicitly to keep the previous value. Descriptions using the franka hand or no end effector are unchanged. - fix:
no_prefix:=truenow also strips the prefix from the end effector and attaches it to the unprefixed arm link. Previously everyno_prefix:=truedescription that carried an end effector named a parent link (<robot_type>_link8) that the URDF itself did not define, so all of them were rejected by the URDF parser, and the SRDF named end effector links the URDF did not have. MIGRATION: end effector links inno_prefixdescriptions are now calledhand,hand_tcp,cobot_pumpand so on instead of<robot_type>_hand; descriptions generated withoutno_prefixare unchanged. - fix: emit
disable_collisionsrules for the cobot pump in the arm SRDF so MoveIt no longer reports the pump in permanent collision withlink7/link8 - fix: the development container now builds when the host UID/GID is
already taken inside the base image (
osrf/ros:jazzy-desktopships anubuntuuser at 1000:1000), which previously brokecreate_urdf.sh/visualize_franka.shfor most Linux users - chore: use
#!/usr/bin/env bashin the helper scripts so they run on systems without/bin/bash(NixOS, FreeBSD) - docu: state in the README that the
fermodel is not supported; it is still shipped and generatable, but issues reported against it will not be fixed - refactor: removed all Gazebo tags, macros, and arguments from
franka_description (now simulator-agnostic); the Gazebo
SDF/transmission machinery, world anchor, and self-collision
suppression moved to franka_gazebo. MIGRATION: the public
gazeboxacro argument was removed — consumers that passedgazebo:=trueto franka_description URDFs must instead use the franka_gazebo bringup entry points; passing the old arg now has no effect.
2.8.1 (2026-07-07)
- fix: define modified_prefix in tmrv0_2 description so mobile_teleop (robot_type tmrv0_2) renders
2.8.0 (2026-06-23)
- refactor: move ros2_control xacro content out of franka_description into franka_hardware (description is now distro-agnostic, free of ros2_control coupling)
- fix: corrected FR3 Duo mount angles in kinematics.yaml to match CAD values [51.18507533 deg, -10.00159382 deg, 26.54771649 deg]
2.7.1 (2026-05-04)
- fix: trigger workflow on X.Y.Z tags instead of v* prefix
2.7.0 (2026-05-04)
- feat: add GitHub Actions workflow to generate and release URDFs for fr3_duo, mobile_fr3_duo_v0_2, and fr3v2_1
- docu: Added the docu to FCI docs
- chore: Split the franka head, spine and mount out of fr3_duo/mobile_fr3_duo and adapted srdf
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- chore: refactored franka_arm.xacro configs
- fix: arm_prefixes index fixed for mfr3duo
- fix: corrected fr3_duo base mount for gazebo
- fix: tmr inertials updated
- feat: ros2 control file added for fr3 duo
- fix: mobile_fr3_duo.urdf.xacro forwards is_async and thead_priority to ros2_control parts
- feat: added mobile_fr3_duo_v0_2.srdf.xacro for moveit support and collision checking
2.6.0 (2026-03-02)
- feat: adaptations for gazebo
- fix: corrected accelerometer frames for fr3v1, fr3v2, fr3v2.1
- fix: properly handle arm_prefixes in srdf
2.5.0 (2026-02-17)
- chore: tmrv0_2 replace lidar with mounting point and add imu mounting point
- fix: mounting point typo in tmrv0_2.xacro
- feat: add the motor inertia and gear ratio to the urdfs of arms
- fix: adaptations for async control
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| xacro | |
| rviz2 | |
| joint_state_publisher_gui | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_pytest |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_ros repofranka_control franka_description franka_example_controllers franka_gazebo franka_gripper franka_hw franka_msgs franka_ros franka_visualization |
ROS Distro
|
Package Summary
| Version | 0.8.0 |
| License | Apache 2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros.git |
| VCS Type | git |
| VCS Version | kinetic-devel |
| Last Updated | 2021-08-06 |
| Dev Status | UNMAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Emika GmbH
Authors
- Franka Emika GmbH
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_ros repofranka_control franka_description franka_example_controllers franka_gazebo franka_gripper franka_hw franka_msgs franka_ros franka_visualization |
ROS Distro
|
Package Summary
| Version | 0.10.1 |
| License | Apache 2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros.git |
| VCS Type | git |
| VCS Version | melodic-devel |
| Last Updated | 2022-09-16 |
| Dev Status | UNMAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Emika GmbH
Authors
- Franka Emika GmbH
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged franka_description at Robotics Stack Exchange
|
franka_description package from franka_ros repofranka_control franka_description franka_example_controllers franka_gazebo franka_gripper franka_hw franka_msgs franka_ros franka_visualization |
ROS Distro
|
Package Summary
| Version | 0.10.1 |
| License | Apache 2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/frankaemika/franka_ros.git |
| VCS Type | git |
| VCS Version | noetic-devel |
| Last Updated | 2022-09-16 |
| Dev Status | UNMAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Emika GmbH
Authors
- Franka Emika GmbH