Releases: lbr-stack/lbr_fri_ros2_stack
Jazzy-v2.4.3
Summary
Uses declarative launch files, as explained in ROSCon livestream at 6 hours, 10 minutes.
Changes
lbr_bringup: Switched to declarative launch files and removed mixins from launch files: #338
Related pull requests
Jazzy-v2.4.2
Summary
Gives user the option to add to configure a joint_limits_path for configurable joint limits.
Changes
lbr_description: Addedjoint_limits_pathargument toxacrofiles (defaults to KUKA values and user will currently need a custom launch file to configure): #333. See e.g. here: https://github.com/lbr-stack/lbr_fri_ros2_stack/blob/22b2b61f7458faaab2026cfeea862bd14758e124/lbr_description/urdf/iiwa7/iiwa7.xacro#L14
Related pull requests
Jazzy-v2.4.1
Jazzy-v2.4.0
Summary
This release removes the asynchronous force-torque estimation from the system interface (introduced in https://github.com/lbr-stack/lbr_fri_ros2_stack/releases/tag/humble-v2.2.0) and instead provides a synchronous estimation in the form of a chainable ROS 2 controller. It further adds some controller updates, API fixes, and safety improvements.
Changes
lbr_bringup: Added new chainable wrench interface controller tohardware.launch.pyand added launch event handler for preceeding controllerslbr_demos: Updated topics/lbr/state->/lbr/lbr_statelbr_description:- Removed now redundant
estimated_ft_sensorfromlbr_system_config.yamland removed thus unusedhardwareprefix - Removed all
hardwarespecifiers fromlbr_system_interface.xacro
- Removed now redundant
lbr_fri_ros2:- Removed now redundant asynchronous
lbr_fri_ros2::FTEstimatorworker (also removed fromlbr_ros2_control::SystemInterface) - Renamed
lbr_fri_ros::FTEstimatorImpl->lbr_fri_ros2::WrenchEstimator - Fixed twist clamping bug: #313
- Removed now redundant asynchronous
lbr_ros2_control:- Changes to
lbr_ros2_control::SystemInterface:- Removed force-torque estimation from
lbr_ros2_control::SystemInterface - Exit
on_activateinlbr_ros2_control::SystemInterfacewith error onIDLE: #321
- Removed force-torque estimation from
- Changes to controllers:
lbr_ros2_control::EstimatedWrenchInterface: Added new chainable controller for synchronous force-torque estimation and state interfacelbr_ros2_control::TwistController: Stop twist controller on any joint limits: #314lbr_ros2_control::LBRStateBroadcaster:/lbr/state->/lbr/lbr_stateconsistent with #271- Removed deprecated
trylock()fromlbr_ros2_control::LBRStateBroadcaster: ros-controls/realtime_tools#323
lbr_ros2_control::AdmittanceController:
- Changes to
Related pull requests
- Twist clamping and
lbr_ros2_control::TwistControllercontroller updates: #315 lbr_ros2_control::AdmittanceControllerintegration step andlbr_ros2_control::SystemInterface::on_activateexit: #322lbr_ros2_control::SystemInterfaceforce-torque estimation removal (including new chainable controller): #324
Humble-v2.2.2
lbr_fri_ros2: Fixes the twist clipping bug #313
Jazzy-v2.3.0
lbr_fri_ros2:- Interfaces now default to return by value for simplicity.
- Added a new
StateGuardthat tests for load data calibration on activation in compliant control modes and shuts the connection otherwise (prevents #235). - Instead of disconnecting on
CommandGuardlimits,CommandInterfacesnow execute a neutral command.
lbr_description:- Updated joint limits (upper / lower) to be 1 degree stricter to avoid hardware limits, see joint_limits.yaml.
- Added <safety_controller/> tag to URDF files. Note, in
Jazzythis is only utilised whenenforce_command_limits:=truefor the controller manager (here, default configured in lbr_controllers.yaml).
lbr_ros2_control:- Migrated to
Jazzyfollowing guidelines at https://control.ros.org/jazzy/doc/ros2_control/doc/migration.html#migration-of-command-stateinterfaces. - Removed the default error from
AdmittanceControllerwith the introduction of load data checks (refer any_external_force_torques_on_horizon_, prevents #235). Also now supports the default lbr_system_config.yaml. ⚠️ WARN: KUKA's Cartesian impedance controller seems quite prone to singularities, and should thus be used with caution and only inT1mode.LBRWrenchCommandController(⚠️ uses Cartesian impedance) is now aChainableControllerInterfaceto support separate wrench and joint position commands: #250- Future releases will chain the
LBRTorqueCommandController, which uses KUKA's joint impedance controller without singularity issues. - Topics were updated to reflect the chained controller structure:
/lbr/wrench->/lbr/lbr_wrench_command/lbr/torque->/lbr/lbr_torque_command/lbr/joint_position->/lbr/lbr_joint_position_command(for consitency)
- Migrated to
Humble-v2.2.1
lbr_bringup: Removed static broadcasters from launch files: #264 @Khouloud-Hamrounilbr_description:- Decimate collision meshes for faster Gazebo simulation: #262 @mhubii
- Added world link to
xacrofiles (fixes robot to Gazebo world): #264 @Hydran00, @Khouloud-Hamrouni
lbr_demos_cpp: Added missing robot name prefix to joint names: #258 @Khouloud-Hamrounilbr_demos_py: Added missing robot name prefix to joint names: #259 @Khouloud-Hamrounilbr_ros2_control: Update deprecated headers #267, #269 @mhubiilbr_fri_ros2: Fixes for compliant control modes.- Fixed a bug that wouldn't forward torques / wrenches: #233 @Hydran00, @matteodv99tn
- Enforce
open_loop=false(position) for compliant controllers: #237 @mhubii, @anselmo-parnada, @Hydran00
lbr_fri_ros2_stack: Repositories file for FRI 2.6: #248 @matija9
Humble-v2.2.0
This release backports new rolling features to humble. Following has changed:
- Related PRs:
- #213 and #214
- Joints and links are now prefixed with
lbr_(i.e. the robot name) - Robot state publisher has no
lbr/prefix anymore - Asynchronous + deactivateable force-torque estimation from external torques (previously synchronous):
https://github.com/lbr-stack/lbr_fri_ros2_stack/blob/32d8c78f3644576cf1d98e2c2598aa11d3ba1077/lbr_description/ros2_control/lbr_system_config.yaml#L26 - Issue with setting real-time priority fixed
- Modifiable source for
lbr_system_config.yamlin launch files
- Joints and links are now prefixed with
- #220
- PID on joint position commands replaced by simpler exponential filter (
⚠️ please test your own controls in T1 mode, as they might be affected) - Introduction of twist and admittance controllers, run e.g. with (also see documentation https://lbr-stack.readthedocs.io/en/latest/lbr_fri_ros2_stack/lbr_demos/lbr_demos_advanced_cpp/doc/lbr_demos_advanced_cpp.html#twist-controller):
ros2 launch lbr_bringup hardware.launch.py ctrl:=twist_controller
- Configurations from
lbr_ros2_controlnow inlbr_description(for stand alone URDF use): https://github.com/lbr-stack/lbr_fri_ros2_stack/tree/humble/lbr_description/ros2_control
- PID on joint position commands replaced by simpler exponential filter (
- #213 and #214
Humble-v2.1.2
Adds MoveIt Servo launch and demo usage:
- Documentation: https://lbr-stack.readthedocs.io/en/latest/lbr_fri_ros2_stack/lbr_demos/lbr_moveit/doc/lbr_moveit.html#moveit-servo
lbr_bringup: New launch mixin and launch file for MoveIt Servolbr_moveit: New keyboard driver to interface with MoveIt Servo
Humble-v2.1.1
Adds support for the the new Gazebo, removes support for Gazebo Classic (End-of-Life January 2025, see https://community.gazebosim.org/t/gazebo-classic-end-of-life/2563)