Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |
Launch files
Messages
Services
Plugins
Recent questions tagged libfranka at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.18.0 |
| License | Apache 2.0 |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | C++ client library to control Franka robots in real-time |
| Checkout URI | https://github.com/frankaemika/libfranka.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-10 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Franka Robotics GmbH
Authors
- Franka Robotics GmbH
libfranka: C++ Library for Franka Robotics Research Robots
[![codecov][codecov-status]][codecov]
libfranka is a C++ library that provides low-level control of Franka Robotics research robots. The [generated API documentation][api-docs] offers an overview of its capabilities, while the [Franka Control Interface (FCI) documentation][fci-docs] provides more information on setting up the robot and utilizing its features and functionalities.
To find the appropriate version to use, please refer to the [Compatibility Matrix][compatibility-matrix].
Key Features
- Low-level control: Access precise motion control for research robots.
- Real-time communication: Interact with the robot in real-time.
Getting Started
1. System Requirements
Before using libfranka, ensure your system meets the following requirements:
- Operating System: [Linux with PREEMPT_RT patched kernel][real-time-kernel] (Ubuntu 16.04 or later, Ubuntu 22.04 recommended)
- Compiler: GCC 7 or later
- CMake: Version 3.10 or later
- Robot: Franka Robotics robot with FCI feature installed
2. Installing dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git libpoco-dev libeigen3-dev libfmt-dev
To use libfranka version 0.14.0 or later, you will need to install [pinocchio][stack-of-tasks] and some more dependencies:
sudo apt-get install -y lsb-release curl
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | sudo tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | sudo tee /etc/apt/sources.list.d/robotpkg.list
sudo apt-get update
sudo apt-get install -y robotpkg-pinocchio
3. Building and Installation from Source
Before building and installing from source, please uninstall existing installations of libfranka to avoid conflicts:
sudo apt-get remove "*libfranka*"
Clone the Repository
You can clone the repository and choose the version you need by selecting a specific tag:
git clone --recurse-submodules https://github.com/frankarobotics/libfranka.git
cd libfranka
List available tags
git tag -l
Checkout a specific tag (e.g., 0.15.0)
git checkout 0.15.0
Update submodules
git submodule update
Create a build directory and navigate to it
mkdir build
cd build
Configure the project and build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/openrobots/lib/cmake -DBUILD_TESTS=OFF ..
make
Installing libfranka as a Debian Package (Optional but recommended)
Building a Debian package is optional but recommended for easier installation and management. In the build folder, execute:
File truncated at 100 lines see the full file
CHANGELOG
All notable changes to libfranka and pylibfranka will be documented in this file.
[0.18.0]
Requires Franka Research 3 System Version >= 5.9.0
libfranka - C++
Added
- Forward kinematics computation using Pinocchio library
- Jacobian computation using Pinocchio library
- Accelerometer data exposed in robot state
- Joint position-based velocity limits parsed from URDF to compute upper and lower velocity bounds
- Documentation under libfranka repository
- Feat: Async Position Control Handler added to libfranka to support asynchronous position control (Experimental and subject to change)
Changed
- Updated libfranka-common (common-libfranka) to use float-based RobotState struct
- Upgraded Pinocchio dependency to version 3.4.0
- Upgraded minimum Clang version from 6 to 14
- Removed dynamic library loading from Model constructor
Fixed
- Corrected elbow limit rating which was using incorrect values
Deprecated
- Marked
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)as deprecated. It will be removed in future versions. UseRobot::getUpperJointVelocityLimits(const std::array<double, 7UL> &joint_positions)andRobot::getLowerJointVelocityLimits(const std::array<double, 7UL> &joint_positions)instead. - With system image >= 5.9.0, the joint position limits of the system with libfranka are increased to match the datasheet. The methods
franka::computeUpperLimitsJointVelocity(const std::array<double, 7UL> &q)andfranka::computeLowerLimitsJointVelocity(const std::array<double, 7UL> &q)now impose stricter constraints compared to the new parametrized limits.
pylibfranka - Python
- Deployment of the pylibfranka to the github hosted web-page
- Pylibfranka and libfranka versions are synchronized
[0.17.0] - 2025-10-15
pylibfranka - Python
Added
- Cartesian pose control interface
0.16.1 - 2025-10-10
- Fix: fix cmake and package versioning
0.16.0 - 2025-09-15
- Feat: Added pylibfranka - a python binding for libfranka
0.15.3 - 2025-07-31
- Fix outdated Emika links
0.15.2 - 2025-07-24
- Optimize robot model computation
0.15.1 - 2025-06-23
- docs starts a new docs build
0.15.0 - 2025-01-16
Requires Franka Research 3 System Version >= 5.7.2
- Improved error minimization for joint/cartesian pose velocities and accelerations.
- Updated joint position and cartesian pose examples to start from the initial
qorO_T_EE. - Fixed joint position and cartesian pose low-pass filters to use the same command in the first package.
- Added a general logger, allowing users to implement custom loggers for receiving log messages.
- Fixed the bug that prevented exit in case of network connection interruption.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flagandfci_cartesian_motion_generator_joint_position_limits_violation_flagare now always set tofalseand will be deprecated in future releases. They will be replaced byjoint_position_limits_violation.
BREAKING
- The previous CSV robot state logger has been renamed to
robot_state_loggerand relocated.
0.14.1 - 2024-09-06
- Added doxygen generation
0.14.0 - 2024-03-26
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
0.13.5 - 2024-09-06
- Updated doxygen generation
0.13.4 - 2024-09-05
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
0.13.3 - 2024-01-18
Requires Franka Research 3 system version >= 5.5.0
- Bump libfranka-common version compatible with 5.5.0
File truncated at 100 lines see the full file
Dependant Packages
| Name | Deps |
|---|---|
| franka_gripper | |
| franka_hardware | |
| franka_ros2 |