|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]
Messages
Services
Plugins
Recent questions tagged linear_feedback_controller at Robotics Stack Exchange
|
linear_feedback_controller package from linear_feedback_controller repolinear_feedback_controller |
ROS Distro
|
Package Summary
| Version | 3.0.1 |
| License | BSD-2-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 control linear feedback controller. It connects Ricatti gains based controllers with the hardware through ROS2 topics. |
| Checkout URI | https://github.com/loco-3d/linear-feedback-controller.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-24 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Guilhem Saurel
Authors
- Maximilien Naveau
linear feedback controller
This repository is aimed to be used with its public API the linear_feedback_controller_msgs.
These two packages are under the license BSD-2 license.
The current versions of these two packages can be found in their respective
package.xml file. There must be an associated git tag in a shape of vX.Y.Z.
Follows a quick description of these package.
The linear_feedback_controller
In this package we implement a ros2_control controller. It is implementing a chainable controller pluggable with any kind of state estimator.
We implement a ROS 2 topic publisher sending:
- base configuration (only if the robot has a free-flyer, identity otherwise)
- base velocity (only if the robot has a free-flyer, identity otherwise)
- joint positions
- joint velocities
- joint efforts (torques applied to the joints)
We send receive the response via a topic in the shape:
- A feedback gain matrix
- A feedforward term in torque
- The state which was sent before used to linearize the control.
This allows us, for example, to use it on the Talos (1 and 3) robots with a remote controller using a whole body model predictive control based on croccodyl
For the interfacing of a fixed robot we add a joint_state_estimator which aims at providing a layer of filtering from the joint sensors.
In addition we provide a passthrough controller which aims at renaming some output interfaces downstream in case this is needed. Typically you may want the same configuration file for simulation and for the robot but the interfaces ffrom one to the other may not match. You can use the passthrough controller for this.
The linear_feedback_controller_msgs
This package contains the external user interface to the linear_feedback_controller package. It describes the sensor data exchanged in the previously cited ROS2 topics.
And in particular it offers a very simple ROS/Eigen conversion tooling. And a ROS/numpy conversion tooling. These are made to facilitate further computations with the Sensor data, and ease to fill in the Control message.
Please check the README.md of the package for more details.
Example of usage
This a ROS2 controller so on can simply look at the ROS2 control documentation. An example of configuration can be found in this repository here.
The example is extracted from the agimus-demos pacakges: https://github.com/agimus-project/agimus-demos
And in particular the setup of the LFC is in the agimus_demos_common package.
Build the package.
This package is base on ament_cmake hence one can simply use the standard:
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
make _build
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/install/folder
make
make install
Or one can use the ROS2 super build system colcon:
mkdir -p workspace/src
git -C workspace/src clone https://github.com/loco-3d/linear-feedback-controller.git
colcon build
One can also use nix to:
- Check the package (builds and run tests):
git clone https://github.com/loco-3d/linear-feedback-controller.git
cd linear-feedback-controller
nix flake check -L
- Build the package:
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Releases are available on the github repository.
Unreleased
3.0.1 - 2025-11-04
- add jrl_cmakemodules to package.xml
3.0.0 - 2025-10-23
added
- A passthrough_controller to simulate controllers on partial interface sets. Example in a certain robot there is one controller per joint on the robot but not in simulation. This passthrough controller helps the user to create a seemless interface for both the real robot and the simulation.
changed
- Breaking API! The in and out interfaces can now be twicked interface by interface.
2.0.0 - 2025-04-14
Changed
- Breaking change: migration ROS2
- Splitting the ROS vs none ROS part of the code.
Added
- Added unit-test for the math.
1.0.2 - 2023-04-03
Added
- pal_statistics introspection.
- computation of the ZMP in the controller for debugging
- computation of the position of the pendulum base fro debugging.
- computation of the CoM acceleration from the measured forces.
1.0.1 - 2023-03-21
Fixed
- Fix the averaging filter implementation.
Changed
- Update the usage of the Eigen API to save some code lines.
1.0.0 - 2023-03-17
Changed
Remove the msgs package and mv the lfc at the root of the git repository. msgs are now here: https://github.com/loco-3d/linear-feedback-controller-msgs
0.1.0 - 2023-03-17
Implementation of linear-feedback-controller in ROS1 for Talos PAL-Robotics robot.
Git changelogs
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/talos_linear_feedback_controller.launch
-
- spawn [default: true]
- simulation [default: false]
- ns [default: linear_feedback_controller]
- debug_log [default: false]
- default_params [default: false]
- launch/talos_params.launch
-
- simulation [default: false]
- ns [default: linear_feedback_controller]
- arm_left_control_type [default: no_control]
- arm_right_control_type [default: no_control]
- legs_control_type [default: inertia_shaping_effort_analytic_dob_control]
- torso_control_type [default: inertia_shaping_effort_analytic_dob_control]
- head_control_type [default: no_control]
- head_local_joint_control_pkg [default: pal_local_joint_control]
- wrists_control_type [default: no_control]
- wrists_local_joint_control_pkg [default: pal_local_joint_control]
- arm_left_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_left_local_joint_control_pkg [default: pal_local_joint_control]
- arm_right_local_joint_control_pkg [default: inertia_shaping_effort_control]
- arm_right_local_joint_control_pkg [default: pal_local_joint_control]
- legs_local_joint_control_pkg [default: inertia_shaping_effort_control]
- legs_local_joint_control_pkg [default: pal_local_joint_control]
- torso_local_joint_control_pkg [default: inertia_shaping_effort_control]
- torso_local_joint_control_pkg [default: pal_local_joint_control]