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
q
orO_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.
Important
- The flags
fci_joint_motion_generator_position_limits_violation_flag
andfci_cartesian_motion_generator_joint_position_limits_violation_flag
are now always set tofalse
and 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_logger
and relocated.
- Added doxygen generation
Requires Franka Research 3 system version >= 5.7.0
- Compute dynamic robot parameters with Pinocchio library.
- Updated doxygen generation
Requires Franka Research 3 system version >= 5.5.0
- Added package.xml for ros humble release
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.
- Hotfix: (temporary-workaround) for max-path-pose-deviation in ExternalMode for active control.
- Hotfix: (temporary-workaround) for max-path-pose-deviation in ExternalMode for callback based control.
- Add abstract ActiveControlBase class for the ActiveControllers to implement.
- BREAKING Fix function naming errors in robot class.
- BREAKING ActiveController initializer functions return ActiveControlBase
- Fix install common/include typo
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
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
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.h
for FR3 robot
Requires Panda system version >= 4.2.1
- Revert usage of
set_version_from_git
in CMakeLists.txt, using hardcoded values instead
Requires Panda system version >= 4.2.1
- Use orthonormalized rotations in
cartesianLowpassFilter
,limitRate
andcartesian_impedance_control
example - Support 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.cpp
- Make column names in
logToCSV
unique, separated them by state & cmd - Improve error messages including current
RobotMode
information
Requires Panda system version >= 4.2.1
- BREAKING Add
O_ddP_O
base acceleration to robot state, hardcoded to{0, 0, -9.81}
. - BREAKING New
base_acceleration_initialization_timeout
,base_acceleration_invalid_reading
cartesian_spline_motion_generator_violation
andjoint_via_motion_generator_planning_joint_limit_violation
reflexes. - 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::gravity
to useO_ddP_O
in the robot state.
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 inlibfranka
withsetEE
and defaults to the identity transformation. - Add
F_T_NE
andNE_T_EE
tofranka::RobotState
. - Add support for the cobot pump with
franka::VacuumGripper
. - CPack: Add conflict with
ros-melodic-libfranka
. - Fix missing include for Windows (#55).
Requires Panda system version >= 3.0.0
- Fix compilation error on ARM.
Requires Panda system version >= 3.0.0
- Add support for using
franka::Model
on Linux ARM and ARM64 (requires Panda system version >= 3.1.0). - Add Cartesian low-pass filter in
lowpass_filter.h
. - Add
control_tools.h
with helper functions for writing control loops.
- BREAKING Rename
franka::CartesianPose::hasValidElbow()
tofranka::CartesianPose::hasElbow()
. - BREAKING Throw
std::invalid_argument
infranka::Robot::control
if NaN or infinity values are returned from a control callback. - BREAKING Throw
std::invalid_argument
in 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.
Requires Panda system version >= 3.0.0
- Added support for Ubuntu 18.04 (Bionic).
- EXPERIMENTAL Added support for Windows.
- Added support for using
franka::Model
on Linux and Windows x86 and x64. - Bugfix for aborting gripper commands with
franka::Gripper::stop()
. - Improved documentation for
franka::Robot::setCollisionBehavior
.
Requires Panda system version >= 1.3.0
- BREAKING Added low-pass filter for all realtime interfaces with default cutoff frequency of 100 Hz
- DEPRECATED
franka::Robot::setFilters
in favor offranka::lowpassFilter
- Fixed description of log record entries
- Added
lowpass_filter.h
to public interface
- Added
communication_test.cpp
to evaluate network performance.
Requires Panda system version >= 1.3.0
- 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_direction
error tofranka::RobotState
- Added first and second derivatives of last commanded signals to
franka::RobotState
- Added
rate_limiting.h
to public interface - Removed unnecessary CMake script from installation
Requires Panda system version >= 1.2.0
- Added optional
epsilon
parameters tofranka::Gripper::grasp
- Set default collision behavior, impedances, and filter frequencies
- Removed command line parameters to simplify usage
- Fixed locking bug in
joint_impedance_control
- BREAKING Changed signatures and added overloads in
franka::Model
- Added additional variables to installed CMake config
- Updated
SOVERSION
to include minor version number - Added conflict with
ros-kinetic-libfranka
to Debian packaging - Minor fixes and improvements for API documentation
- Fixed build errors on Clang 5.0
- Fixed test errors for Poco >= 1.8.0
Requires Panda system version >= 1.1.0
- 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_detected
errors tofranka::RobotState
- Added
tau_J_d
,m_ee
,F_x_Cee
,I_ee
,m_total
,F_x_Ctotal
,I_total
,theta
anddtheta
tofranka::RobotState
- Added
setFilter
command tofranka::Robot
- Added support for commanding elbow positions for Cartesian motions.
- Added stiffness frame
K
tofranka::Model
- BREAKING Replaced
p_min
andp_max
offranka::VirtualWallCuboid
withobject_world_size
- 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
ControlException
and improved exception messages. - Fail earlier (by throwing exception) if any of the commanded values are
NaN
orinfinity
.
- 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_object
example
- 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.
- Initial release