CHANGELOG
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
Delete the temporary-workaround max-path-pose deviation. Fixed in the system image.
0.13.2 - 2023-12-04
Hotfix: (temporary-workaround) for max-path-pose-deviation in ExternalMode for active control.
0.13.1 - 2023-11-30
Hotfix: (temporary-workaround) for max-path-pose-deviation in ExternalMode for callback based control.
0.13.0 - 2023-11-16
Add abstract ActiveControlBase class for the ActiveControllers to implement.
BREAKING Fix function naming errors in robot class.
BREAKING ActiveController initializer functions return ActiveControlBase
0.12.1 - 2023-09-20
Fix install common/include typo
0.12.0 - 2023-09-14
Requires Franka Research 3 system version >= 5.2.0
BREAKING ActiveControl serves now as base class for ActiveTorqueControl, that implements the torque control functionality
ActiveMotionGenerator class introduced to support external control loops for JointPositions, JointVelocities, CartesianPose and CartesianVelocities
0.11.0 - 2023-08-16
Requires Franka Research 3 system version >= 5.2.0
BREAKING Instead of using constants, velocity limits in rate-limiter are computed based on the current desired joint position.
Allow external control loops by the introduction of the ActiveControl read-write-interface for torque-control
0.10.0 - 2022-09-02
Requires Franka Research 3 system version >= 5.2.0
BREAKING Remove getVirtualWall and setFilters commands
BREAKING Disable rate-limiter by default
BREAKING Adapt rate limiting values in
rate_limiting.hfor FR3 robot
0.9.2 - 2022-08-31
Requires Panda system version >= 4.2.1
Revert usage of
set_version_from_gitin CMakeLists.txt, using hardcoded values instead
0.9.1 - 2022-08-26
Requires Panda system version >= 4.2.1
Use orthonormalized rotations in
cartesianLowpassFilter,limitRateandcartesian_impedance_controlexampleSupport building libfranka from outside the library, so the debian package name can be set externally.
Check if GitHub remote is always in sync
Bug fixes in
rate_limiting_tests.cppMake column names in
logToCSVunique, separated them by state & cmdImprove error messages including current
RobotModeinformation
0.9.0 - 2022-03-25
Requires Panda system version >= 4.2.1
BREAKING Add
O_ddP_Obase acceleration to robot state, hardcoded to{0, 0, -9.81}.BREAKING New
base_acceleration_initialization_timeout,base_acceleration_invalid_readingcartesian_spline_motion_generator_violationandjoint_via_motion_generator_planning_joint_limit_violationreflexes.Adjust network error messages. Distinguish between problems resulting from:
a wrong network configuration. A message is shown after a timeout of 60 seconds.
a missing FCI feature or a blocked port due to Single Point of Control. An immediate error response is shown.
Changed signature of
franka::Model::gravityto useO_ddP_Oin the robot state.
0.8.0 - 2020-04-29
Requires Panda system version >= 4.0.0
BREAKING Change behavior of
franka::Robot::setEE. Previously, this method would set the flange-to-end-effector transformationF_T_EE. This has been split up into two transformations:F_T_NE, only settable in Desk, andNE_T_EE, which can be set inlibfrankawithsetEEand defaults to the identity transformation.Add
F_T_NEandNE_T_EEtofranka::RobotState.Add support for the cobot pump with
franka::VacuumGripper.CPack: Add conflict with
ros-melodic-libfranka.Fix missing include for Windows (#55).
0.7.1 - 2019-07-08
Requires Panda system version >= 3.0.0
Changed
Fix compilation error on ARM.
0.7.0 - 2019-07-05
Requires Panda system version >= 3.0.0
Added
Add support for using
franka::Modelon Linux ARM and ARM64 (requires Panda system version >= 3.1.0).Add Cartesian low-pass filter in
lowpass_filter.h.Add
control_tools.hwith helper functions for writing control loops.
Changed
BREAKING Rename
franka::CartesianPose::hasValidElbow()tofranka::CartesianPose::hasElbow().BREAKING Throw
std::invalid_argumentinfranka::Robot::controlif NaN or infinity values are returned from a control callback.BREAKING Throw
std::invalid_argumentin low-pass filter and rate limiting functions if invalid values are given as function parameters.BREAKING Do not throw exceptions in constructors of control types anymore.
Take arguments by value in
franka::MotionFinished.Bug fixes in
communication_test.cpp.Export requirements for C++ features as CMake target compile features.
0.6.0 - 2019-02-06
Requires Panda system version >= 3.0.0
Added support for Ubuntu 18.04 (Bionic).
EXPERIMENTAL Added support for Windows.
Added support for using
franka::Modelon Linux and Windows x86 and x64.Bugfix for aborting gripper commands with
franka::Gripper::stop().Improved documentation for
franka::Robot::setCollisionBehavior.
0.5.0 - 2018-08-08
Requires Panda system version >= 1.3.0
Motion and control interfaces
BREAKING Added low-pass filter for all realtime interfaces with default cutoff frequency of 100 Hz
DEPRECATED
franka::Robot::setFiltersin favor offranka::lowpassFilterFixed description of log record entries
Library
Added
lowpass_filter.hto public interface
Examples
Added
communication_test.cppto evaluate network performance.
0.4.0 - 2018-06-21
Requires Panda system version >= 1.3.0
Motion and control interfaces
BREAKING Added rate limiting of commanded values as an option in the control loop and as a helper function. Rate limiting is activated by default, this could change the behavior of existing programs. Only works when filters (
franka::Robot::setFilters) are deactivated.Added
joint_move_in_wrong_directionerror tofranka::RobotStateAdded first and second derivatives of last commanded signals to
franka::RobotState
Library
Added
rate_limiting.hto public interfaceRemoved unnecessary CMake script from installation
0.3.0 - 2018-02-22
Requires Panda system version >= 1.2.0
Motion and control interfaces
Added optional
epsilonparameters tofranka::Gripper::grasp
Examples
Set default collision behavior, impedances, and filter frequencies
Removed command line parameters to simplify usage
Fixed locking bug in
joint_impedance_control
Library
BREAKING Changed signatures and added overloads in
franka::ModelAdded additional variables to installed CMake config
Updated
SOVERSIONto include minor version numberAdded conflict with
ros-kinetic-libfrankato Debian packagingMinor fixes and improvements for API documentation
Fixed build errors on Clang 5.0
Fixed test errors for Poco >= 1.8.0
0.2.0 - 2018-01-29
Requires Panda system version >= 1.1.0
Motion and control interfaces
Improved external torque tracking behavior.
Fixed discontinuities in commanding orientation changes via the cartesian pose interface.
Added
joint_p2p_insufficient_torque_for_planning,tau_j_range_violation, andinstability_detectederrors tofranka::RobotStateAdded
tau_J_d,m_ee,F_x_Cee,I_ee,m_total,F_x_Ctotal,I_total,thetaanddthetatofranka::RobotStateAdded
setFiltercommand tofranka::RobotAdded support for commanding elbow positions for Cartesian motions.
Added stiffness frame
Ktofranka::ModelBREAKING Replaced
p_minandp_maxoffranka::VirtualWallCuboidwithobject_world_size
Error handling
WARNING Not all robot errors can be recovered using the guiding button on the robot anymore. To manually recover from such errors, please use the Franka DESK web interface.
Added logs to
ControlExceptionand improved exception messages.Fail earlier (by throwing exception) if any of the commanded values are
NaNorinfinity.
Examples
Added saturation to joint velocity, joint position, and joint impedance examples.
Changed examples to read initial states inside control loops (after controller switching).
Examples first move to an initial joint position.
Added new cartesian impedance and force control examples.
Lowered grasping force in
grasp_objectexample
Library
BREAKING New build-time dependency on Eigen3.
Changed thread priority to the maximum allowed value.
Prepare for the removal of the socket-init in the default constructor in POCO releases >= 1.8.0.
Removed unnecessary public dependencies for libfranka.
CI: Run linter on examples
Docu: Use SVG instead of MathML for math rendering in API documentation to support Chrome.
0.1.0 - 2017-09-15
Initial release