-
 

control_toolbox package from control_toolbox repo

control_toolbox

Package Summary

Tags No category tags.
Version 3.3.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-controls/control_toolbox.git
VCS Type git
VCS Version ros2-master
Last Updated 2024-11-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The control toolbox contains modules that are useful across all controllers.

Additional Links

Maintainers

  • Bence Magyar
  • Denis Štogl
  • Christoph Froehlich
  • Sai Kishor Kothakota

Authors

  • Melonee Wise
  • Sachin Chitta
  • John Hsu

control_toolbox

License Licence codecov

This package contains several C++ classes useful in writing controllers.

See the documentation of ros2_control and release infos on index.ros.org.

Build status

ROS2 Distro | Branch | Build status | Documentation | Released packages :———: | :—-: | :———-: | :———–: | :—————: Rolling | ros2-master | Binary Build
Rolling Source Build | API | control_toolbox Jazzy | ros2-master | see above | API | control_toolbox Iron | ros2-master | see above | API | control_toolbox Humble | ros2-master | see above | API | control_toolbox

Publication

If you find this work useful please give credits to the authors by citing:

  • S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo “ros_control: A generic and simple control framework for ROS”, The Journal of Open Source Software, 2017. (PDF)
@article{ros_control,
author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo  and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
title = {ros\_control: A generic and simple control framework for ROS},
journal = {The Journal of Open Source Software},
year = {2017},
doi = {10.21105/joss.00456},
URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
}

CHANGELOG

Changelog for package control_toolbox

3.3.0 (2024-10-28)

  • PID: Improve the API docs and change default value of antiwindup (#202)
  • [CI] Specify runner/container images and add Jazzy jobs (#200)
  • Add custom rosdoc2 config (#199)
  • [CI] Update pre-commit and remove ros-lint (#187)
  • Use Eigen CMake target (#190)
  • [CI] Use wf from ros2_control_ci for coverage build (#188)
  • Contributors: Christoph Fröhlich, dependabot[bot], github-actions[bot]

3.2.0 (2023-12-12)

  • [CI] fix source build (#168)
  • Bump actions/setup-python from 4 to 5 (#167)
  • [CI] Touchups (#166)
  • [PID] Update documentation to reflect ROS 2 usage of time (#165)
  • Bump actions/checkout from 3 to 4 (#163)
  • Bump ros-tooling/setup-ros from 0.6 to 0.7 (#161)
  • Add filters structure and lowpass filter (#152)
  • Bump codecov/codecov-action from 3.1.2 to 3.1.4 (#160)
  • Contributors: Christoph Fröhlich, GuiHome, Patrick Roncagliolo

3.1.0 (2023-04-29)

  • Check for i_min <= i_max at initialization (#139)
  • Contributors: Christoph Fröhlich

3.0.0 (2023-04-05)

  • [PidROS] Enable interpreting prefix as param prefix. (#129)
  • Use std::clamp (#140)
  • [CI] Fixes and update for branch out (#155)
  • Enable subclassing of PID implementation. (#148)
  • [CI] Add Humble job (#147)
  • Finally update formatting to other repositories convention. (#131)
  • [CI] 🔧 Update pre-commit hooks and sync actions to other repositories. (#130)
  • Contributors: Bence Magyar, Christoph Fröhlich, Dr. Denis, dependabot[bot]

2.2.0 (2023-02-20)

  • Fix overriding of package (#145)
  • Various dependabot version bumps
  • [CI] Add dependabot configuration to automatically update actions.
  • Contributors: Christoph Fröhlich, Dr. Denis, Tyler Weaver, dependabot[bot]

2.1.2 (2022-11-15)

  • export missing dependency (#128)
  • Contributors: Noel Jiménez García

2.1.1 (2022-11-05)

  • Add declaration of parameters in ROSPid.
  • Fix namespace collision and parameter_callback problems in PidROS
  • Contributors: Aris Synodinos, Denis Štogl

2.1.0 (2022-06-30)

  • Fix parameter loading log levels
  • Support pass in a precomputed derivative error
  • Add getParametersCallbackHandle function
  • Add topic_prefix_ to declareParam & setParameter
  • Update include/control_toolbox/dither.hpp
  • Correct contributing and license files for ament_copyright.
  • Added license text file and contributing guidelines, corrected license short identifier.
  • Remove build of downstream workspace.
  • Update CI config and add pre-commit-config.
  • Contributors: Bence Magyar, ChenJun, Denis Štogl, Timon Engelke

2.0.2 (2021-05-25)

  • remove unused variables
  • Update visibility_control.hpp
  • Windows bringup.
  • Contributors: Karsten Knese, Sean Yen, Bence Magyar

2.0.1 (2020-08-01)

  • Fix dependencies
  • Export ament_cmake build type
  • Contributors: ahcorde

2.0.0 (2020-07-28)

  • Refactor the Pid class to be completely ROS agnostic and added a ROS 2 wrapper
  • Avoid crash when the type of the parameter doesn't match
  • Added topic_prefix to publisher topic name (#95)
  • Created a shared library (#93)
  • Aliases not part of the public API are now private
  • Removing pid_gains_setter
  • Removed unnecessary dependencies
  • Cleared empty non virtual destructors
  • Removed unused limited proxy variables
  • Added pid state real-time publisher
  • Removed all references to tinyxml
  • Removed tune_pid.py
  • Adding missing copyright licenses
  • Adapted dither, sine_sweep and sinusoid to ROS2
  • Removed dynamic reconfigure completely
  • Removed deprecated functions
  • Contributors: Alejandro Hernández Cordero, Bence Magyar, James Xu, Jordan Palacios, Shane Loretz, ahcorde

1.17.0 (2019-01-31)

  • update anti windup clamping
  • update negativeIntegrationAntiwindupTest
  • Address catkin_lint issues
  • Add executable flag
  • convert to package xml format 2
  • Remove doc header
  • Contributors: Bence Magyar, Cong, Gennaro Raiola

1.16.0 (2017-11-30)

  • switched to industrial_ci
  • Add control_msgs to CATKIN_DEPENDS.
  • Contributors: Bence Magyar, Mathias Luedtke, Mike Purvis

1.15.0 (2016-06-28)

  • avoid ABI breaks in PID class
  • fix add_dependencies call
  • rollback API changes in PID class
  • cfg: removed rosbuild support related error handling
  • Contributors: Bence Magyar, Igor Napolskikh, ipa-mig

1.14.0 (2016-05-03)

  • Fix negative gains issue and add tests; update gains setting through DynamicReconfig
  • Add antiwindup and tests to PID controller; rename old behaviour 'clamping'
  • Move message to control_toolbox
  • Add optional state publishing to PID controller, for logging/debugging/etc
  • Fix some typos in comments
  • changed the range of dynamic reconfigure to allow negative ones
  • Address -Wunused-parameter warnings
  • Factor out updatePid as negative calls to computeCommand
  • Increasing covergae of PID class test suite.
  • Chain calls of computeCommand and updatePid for code reuse
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Bence Magyar, Carlos Rosales, Guillaume Walck, Paul Bovbel, VahidAminZ

1.13.2 (2015-05-22)

  • CRITICAL BUGFIX: Fix broken PID command computation.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Paul Bovbel

1.13.1 (2015-04-30)

  • Improvement in integral contribution implementation. Resolve #32.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Carlos Rosales

1.13.0 (2014-10-31)

  • Harmonize pid gain names between rosparam and dynamic_reconfigure
  • Read i_clamp_min and i_clamp_max form parameter server - if available
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, ipa-fxm

1.12.1 (2014-06-12)

  • Remove broken test code. Hotfix for #18.
  • Contributors: Adolfo Rodriguez Tsouroukdissian

1.12.0 (2014-06-12)

  • pid: Adding quiet flag to suppress error message
  • Contributors: Jonathan Bohren

1.11.0 (2014-05-12)

  • Remove rosbuild artifacts
  • Cleaned up CMake and removed unnecessary dependencies
  • Made default value negative to match valid range
  • Fix for i_clamp_min to be negative in dynamic reconfigure
  • Fix abs/fabs problem with Clang and libc++
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, Marco Esposito

1.10.4 (2014-02-05)

  • Added Travis support
  • Renamed manifest.xml so it doesn't break rosdep
  • Expanded range of PID and windup gains for certain applications.
  • Expanded range of PID and windup gains for certain applications. Lowered default integral and derivative gain
  • check for CATKIN_ENABLE_TESTING
  • Add some comments to Parameters.cfg
  • Add support for dynamic_reconfigure for rosbuild
  • Contributors: Austin Hendrix, Dave Coleman, Lukas Bulwahn, Paul Dinh

1.10.3 (2013-08-02)

  • Fix bug in copy constructor.
  • Contributors: Austin Hendrix

1.10.2 (2013-07-29)

  • Fix copy constructor.
  • Merge pull request #1 from davetcoleman/hydro-devel Added dynamic reconfigure for PID gains
  • Removed const getGains function
  • Small fixes
  • Compatibility changes for realtime_tools, tweaked getests
  • Made realtime_buffer copiable
  • Added test for getting/settings gains, copying/assigning pid class
  • Removed const read, added copy constructor and print values function
  • Added new function getGainsConst that allows one to get the PID gains from a const PID class
  • Added realtime_tools as a dependency in package.xml and CMakeLists
  • Added realtime buffer to PID, re-ordered functions to more logical order and to match header file
  • Fixes per Austin review
  • Updated CMakeLists.txt and made fixes per Adolfo
  • Merged hydro-devel
  • Added dynamic reconfigure for PID gains
  • Tests build.
  • Contributors: Austin Hendrix, Dave Coleman

1.10.1 (2013-06-26)

  • Add dependency on tinyxml.
  • Contributors: Austin Hendrix

1.10.0 (2013-06-25)

  • Version 1.10.0
  • comment format consistentcy
  • Fixing comment in pid source code
  • Install tune_pid.py under catkin.
  • adding install targets
  • adding missing manifests
  • merging CMakeLists.txt files from rosbuild and catkin
  • adding hybrid-buildsystem makefiles
  • Merging from master, re-adding manifest.xml files
  • using more standard way of depending on gencpp
  • Add .gitignore file.
  • Fixing library export
  • catkinizing, could still be cleaned up
  • Fixing doc errors in PID
  • Changing @ commands to commands
  • Enforcing i_min <= 0 and i_max >= 0 in integral bound parameters, reducing duplicated code
  • Merge pull request #14 from bobholmberg/fix-PID-unbounded-i_error Using zero i_gain to turn off integral control did unsavory things.
  • Adding alternative name for new pid command computation API
  • Fixing merge error
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • Removing lie from documentation
  • Adding Bob's fixes to the backwards-compatibility API
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • bringing back old updatePid function contents
  • adding documentation warning
  • This makes the internal computations of updatePid() keep the same sign that they did before the API change
  • Merge typo
  • Resolving conflict from new Pid API
  • Merge branch 'master' into test-bad-integral-bounds
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Specifying div-by-zero test, adding other integral term tests
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Adding test to expose Pid class zero-division vulnerability
  • If the user did not want integral control and set i_gain to zero, then dividing by i_gain would set i_error to NaN. This is not desired. Instead, replace the use of division to create i_term with direct integration of i_term. Replace private member i_error with i_term. In getCurrentPIDErrors() create & return i_error with the same old meaning and units. NOTE: i_error is not needed internally anywhere else.
  • Cleaning up documentation, making argument names in function declaration match those in the implementation
  • adding doxygen deprecation flags
  • Fixing documentation
  • Merging changes from other branch
  • Adding conventional PID computation
  • Fixing inconsistent formatting, and reducing some duplicated code
  • remove .svn folder
  • move control_toolbox into ros_control
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Austin Hendrix, Bob Holmberg, Jonathan Bohren, Wim Meeussen, wmeeusse

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged control_toolbox at Robotics Stack Exchange

control_toolbox package from control_toolbox repo

control_toolbox

Package Summary

Tags No category tags.
Version 3.3.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-controls/control_toolbox.git
VCS Type git
VCS Version ros2-master
Last Updated 2024-11-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The control toolbox contains modules that are useful across all controllers.

Additional Links

Maintainers

  • Bence Magyar
  • Denis Štogl
  • Christoph Froehlich
  • Sai Kishor Kothakota

Authors

  • Melonee Wise
  • Sachin Chitta
  • John Hsu

control_toolbox

License Licence codecov

This package contains several C++ classes useful in writing controllers.

See the documentation of ros2_control and release infos on index.ros.org.

Build status

ROS2 Distro | Branch | Build status | Documentation | Released packages :———: | :—-: | :———-: | :———–: | :—————: Rolling | ros2-master | Binary Build
Rolling Source Build | API | control_toolbox Jazzy | ros2-master | see above | API | control_toolbox Iron | ros2-master | see above | API | control_toolbox Humble | ros2-master | see above | API | control_toolbox

Publication

If you find this work useful please give credits to the authors by citing:

  • S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo “ros_control: A generic and simple control framework for ROS”, The Journal of Open Source Software, 2017. (PDF)
@article{ros_control,
author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo  and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
title = {ros\_control: A generic and simple control framework for ROS},
journal = {The Journal of Open Source Software},
year = {2017},
doi = {10.21105/joss.00456},
URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
}

CHANGELOG

Changelog for package control_toolbox

3.3.0 (2024-10-28)

  • PID: Improve the API docs and change default value of antiwindup (#202)
  • [CI] Specify runner/container images and add Jazzy jobs (#200)
  • Add custom rosdoc2 config (#199)
  • [CI] Update pre-commit and remove ros-lint (#187)
  • Use Eigen CMake target (#190)
  • [CI] Use wf from ros2_control_ci for coverage build (#188)
  • Contributors: Christoph Fröhlich, dependabot[bot], github-actions[bot]

3.2.0 (2023-12-12)

  • [CI] fix source build (#168)
  • Bump actions/setup-python from 4 to 5 (#167)
  • [CI] Touchups (#166)
  • [PID] Update documentation to reflect ROS 2 usage of time (#165)
  • Bump actions/checkout from 3 to 4 (#163)
  • Bump ros-tooling/setup-ros from 0.6 to 0.7 (#161)
  • Add filters structure and lowpass filter (#152)
  • Bump codecov/codecov-action from 3.1.2 to 3.1.4 (#160)
  • Contributors: Christoph Fröhlich, GuiHome, Patrick Roncagliolo

3.1.0 (2023-04-29)

  • Check for i_min <= i_max at initialization (#139)
  • Contributors: Christoph Fröhlich

3.0.0 (2023-04-05)

  • [PidROS] Enable interpreting prefix as param prefix. (#129)
  • Use std::clamp (#140)
  • [CI] Fixes and update for branch out (#155)
  • Enable subclassing of PID implementation. (#148)
  • [CI] Add Humble job (#147)
  • Finally update formatting to other repositories convention. (#131)
  • [CI] 🔧 Update pre-commit hooks and sync actions to other repositories. (#130)
  • Contributors: Bence Magyar, Christoph Fröhlich, Dr. Denis, dependabot[bot]

2.2.0 (2023-02-20)

  • Fix overriding of package (#145)
  • Various dependabot version bumps
  • [CI] Add dependabot configuration to automatically update actions.
  • Contributors: Christoph Fröhlich, Dr. Denis, Tyler Weaver, dependabot[bot]

2.1.2 (2022-11-15)

  • export missing dependency (#128)
  • Contributors: Noel Jiménez García

2.1.1 (2022-11-05)

  • Add declaration of parameters in ROSPid.
  • Fix namespace collision and parameter_callback problems in PidROS
  • Contributors: Aris Synodinos, Denis Štogl

2.1.0 (2022-06-30)

  • Fix parameter loading log levels
  • Support pass in a precomputed derivative error
  • Add getParametersCallbackHandle function
  • Add topic_prefix_ to declareParam & setParameter
  • Update include/control_toolbox/dither.hpp
  • Correct contributing and license files for ament_copyright.
  • Added license text file and contributing guidelines, corrected license short identifier.
  • Remove build of downstream workspace.
  • Update CI config and add pre-commit-config.
  • Contributors: Bence Magyar, ChenJun, Denis Štogl, Timon Engelke

2.0.2 (2021-05-25)

  • remove unused variables
  • Update visibility_control.hpp
  • Windows bringup.
  • Contributors: Karsten Knese, Sean Yen, Bence Magyar

2.0.1 (2020-08-01)

  • Fix dependencies
  • Export ament_cmake build type
  • Contributors: ahcorde

2.0.0 (2020-07-28)

  • Refactor the Pid class to be completely ROS agnostic and added a ROS 2 wrapper
  • Avoid crash when the type of the parameter doesn't match
  • Added topic_prefix to publisher topic name (#95)
  • Created a shared library (#93)
  • Aliases not part of the public API are now private
  • Removing pid_gains_setter
  • Removed unnecessary dependencies
  • Cleared empty non virtual destructors
  • Removed unused limited proxy variables
  • Added pid state real-time publisher
  • Removed all references to tinyxml
  • Removed tune_pid.py
  • Adding missing copyright licenses
  • Adapted dither, sine_sweep and sinusoid to ROS2
  • Removed dynamic reconfigure completely
  • Removed deprecated functions
  • Contributors: Alejandro Hernández Cordero, Bence Magyar, James Xu, Jordan Palacios, Shane Loretz, ahcorde

1.17.0 (2019-01-31)

  • update anti windup clamping
  • update negativeIntegrationAntiwindupTest
  • Address catkin_lint issues
  • Add executable flag
  • convert to package xml format 2
  • Remove doc header
  • Contributors: Bence Magyar, Cong, Gennaro Raiola

1.16.0 (2017-11-30)

  • switched to industrial_ci
  • Add control_msgs to CATKIN_DEPENDS.
  • Contributors: Bence Magyar, Mathias Luedtke, Mike Purvis

1.15.0 (2016-06-28)

  • avoid ABI breaks in PID class
  • fix add_dependencies call
  • rollback API changes in PID class
  • cfg: removed rosbuild support related error handling
  • Contributors: Bence Magyar, Igor Napolskikh, ipa-mig

1.14.0 (2016-05-03)

  • Fix negative gains issue and add tests; update gains setting through DynamicReconfig
  • Add antiwindup and tests to PID controller; rename old behaviour 'clamping'
  • Move message to control_toolbox
  • Add optional state publishing to PID controller, for logging/debugging/etc
  • Fix some typos in comments
  • changed the range of dynamic reconfigure to allow negative ones
  • Address -Wunused-parameter warnings
  • Factor out updatePid as negative calls to computeCommand
  • Increasing covergae of PID class test suite.
  • Chain calls of computeCommand and updatePid for code reuse
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Bence Magyar, Carlos Rosales, Guillaume Walck, Paul Bovbel, VahidAminZ

1.13.2 (2015-05-22)

  • CRITICAL BUGFIX: Fix broken PID command computation.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Paul Bovbel

1.13.1 (2015-04-30)

  • Improvement in integral contribution implementation. Resolve #32.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Carlos Rosales

1.13.0 (2014-10-31)

  • Harmonize pid gain names between rosparam and dynamic_reconfigure
  • Read i_clamp_min and i_clamp_max form parameter server - if available
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, ipa-fxm

1.12.1 (2014-06-12)

  • Remove broken test code. Hotfix for #18.
  • Contributors: Adolfo Rodriguez Tsouroukdissian

1.12.0 (2014-06-12)

  • pid: Adding quiet flag to suppress error message
  • Contributors: Jonathan Bohren

1.11.0 (2014-05-12)

  • Remove rosbuild artifacts
  • Cleaned up CMake and removed unnecessary dependencies
  • Made default value negative to match valid range
  • Fix for i_clamp_min to be negative in dynamic reconfigure
  • Fix abs/fabs problem with Clang and libc++
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, Marco Esposito

1.10.4 (2014-02-05)

  • Added Travis support
  • Renamed manifest.xml so it doesn't break rosdep
  • Expanded range of PID and windup gains for certain applications.
  • Expanded range of PID and windup gains for certain applications. Lowered default integral and derivative gain
  • check for CATKIN_ENABLE_TESTING
  • Add some comments to Parameters.cfg
  • Add support for dynamic_reconfigure for rosbuild
  • Contributors: Austin Hendrix, Dave Coleman, Lukas Bulwahn, Paul Dinh

1.10.3 (2013-08-02)

  • Fix bug in copy constructor.
  • Contributors: Austin Hendrix

1.10.2 (2013-07-29)

  • Fix copy constructor.
  • Merge pull request #1 from davetcoleman/hydro-devel Added dynamic reconfigure for PID gains
  • Removed const getGains function
  • Small fixes
  • Compatibility changes for realtime_tools, tweaked getests
  • Made realtime_buffer copiable
  • Added test for getting/settings gains, copying/assigning pid class
  • Removed const read, added copy constructor and print values function
  • Added new function getGainsConst that allows one to get the PID gains from a const PID class
  • Added realtime_tools as a dependency in package.xml and CMakeLists
  • Added realtime buffer to PID, re-ordered functions to more logical order and to match header file
  • Fixes per Austin review
  • Updated CMakeLists.txt and made fixes per Adolfo
  • Merged hydro-devel
  • Added dynamic reconfigure for PID gains
  • Tests build.
  • Contributors: Austin Hendrix, Dave Coleman

1.10.1 (2013-06-26)

  • Add dependency on tinyxml.
  • Contributors: Austin Hendrix

1.10.0 (2013-06-25)

  • Version 1.10.0
  • comment format consistentcy
  • Fixing comment in pid source code
  • Install tune_pid.py under catkin.
  • adding install targets
  • adding missing manifests
  • merging CMakeLists.txt files from rosbuild and catkin
  • adding hybrid-buildsystem makefiles
  • Merging from master, re-adding manifest.xml files
  • using more standard way of depending on gencpp
  • Add .gitignore file.
  • Fixing library export
  • catkinizing, could still be cleaned up
  • Fixing doc errors in PID
  • Changing @ commands to commands
  • Enforcing i_min <= 0 and i_max >= 0 in integral bound parameters, reducing duplicated code
  • Merge pull request #14 from bobholmberg/fix-PID-unbounded-i_error Using zero i_gain to turn off integral control did unsavory things.
  • Adding alternative name for new pid command computation API
  • Fixing merge error
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • Removing lie from documentation
  • Adding Bob's fixes to the backwards-compatibility API
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • bringing back old updatePid function contents
  • adding documentation warning
  • This makes the internal computations of updatePid() keep the same sign that they did before the API change
  • Merge typo
  • Resolving conflict from new Pid API
  • Merge branch 'master' into test-bad-integral-bounds
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Specifying div-by-zero test, adding other integral term tests
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Adding test to expose Pid class zero-division vulnerability
  • If the user did not want integral control and set i_gain to zero, then dividing by i_gain would set i_error to NaN. This is not desired. Instead, replace the use of division to create i_term with direct integration of i_term. Replace private member i_error with i_term. In getCurrentPIDErrors() create & return i_error with the same old meaning and units. NOTE: i_error is not needed internally anywhere else.
  • Cleaning up documentation, making argument names in function declaration match those in the implementation
  • adding doxygen deprecation flags
  • Fixing documentation
  • Merging changes from other branch
  • Adding conventional PID computation
  • Fixing inconsistent formatting, and reducing some duplicated code
  • remove .svn folder
  • move control_toolbox into ros_control
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Austin Hendrix, Bob Holmberg, Jonathan Bohren, Wim Meeussen, wmeeusse

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged control_toolbox at Robotics Stack Exchange

control_toolbox package from control_toolbox repo

control_toolbox

Package Summary

Tags No category tags.
Version 3.3.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-controls/control_toolbox.git
VCS Type git
VCS Version ros2-master
Last Updated 2024-11-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The control toolbox contains modules that are useful across all controllers.

Additional Links

Maintainers

  • Bence Magyar
  • Denis Štogl
  • Christoph Froehlich
  • Sai Kishor Kothakota

Authors

  • Melonee Wise
  • Sachin Chitta
  • John Hsu

control_toolbox

License Licence codecov

This package contains several C++ classes useful in writing controllers.

See the documentation of ros2_control and release infos on index.ros.org.

Build status

ROS2 Distro | Branch | Build status | Documentation | Released packages :———: | :—-: | :———-: | :———–: | :—————: Rolling | ros2-master | Binary Build
Rolling Source Build | API | control_toolbox Jazzy | ros2-master | see above | API | control_toolbox Iron | ros2-master | see above | API | control_toolbox Humble | ros2-master | see above | API | control_toolbox

Publication

If you find this work useful please give credits to the authors by citing:

  • S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo “ros_control: A generic and simple control framework for ROS”, The Journal of Open Source Software, 2017. (PDF)
@article{ros_control,
author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo  and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
title = {ros\_control: A generic and simple control framework for ROS},
journal = {The Journal of Open Source Software},
year = {2017},
doi = {10.21105/joss.00456},
URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
}

CHANGELOG

Changelog for package control_toolbox

3.3.0 (2024-10-28)

  • PID: Improve the API docs and change default value of antiwindup (#202)
  • [CI] Specify runner/container images and add Jazzy jobs (#200)
  • Add custom rosdoc2 config (#199)
  • [CI] Update pre-commit and remove ros-lint (#187)
  • Use Eigen CMake target (#190)
  • [CI] Use wf from ros2_control_ci for coverage build (#188)
  • Contributors: Christoph Fröhlich, dependabot[bot], github-actions[bot]

3.2.0 (2023-12-12)

  • [CI] fix source build (#168)
  • Bump actions/setup-python from 4 to 5 (#167)
  • [CI] Touchups (#166)
  • [PID] Update documentation to reflect ROS 2 usage of time (#165)
  • Bump actions/checkout from 3 to 4 (#163)
  • Bump ros-tooling/setup-ros from 0.6 to 0.7 (#161)
  • Add filters structure and lowpass filter (#152)
  • Bump codecov/codecov-action from 3.1.2 to 3.1.4 (#160)
  • Contributors: Christoph Fröhlich, GuiHome, Patrick Roncagliolo

3.1.0 (2023-04-29)

  • Check for i_min <= i_max at initialization (#139)
  • Contributors: Christoph Fröhlich

3.0.0 (2023-04-05)

  • [PidROS] Enable interpreting prefix as param prefix. (#129)
  • Use std::clamp (#140)
  • [CI] Fixes and update for branch out (#155)
  • Enable subclassing of PID implementation. (#148)
  • [CI] Add Humble job (#147)
  • Finally update formatting to other repositories convention. (#131)
  • [CI] 🔧 Update pre-commit hooks and sync actions to other repositories. (#130)
  • Contributors: Bence Magyar, Christoph Fröhlich, Dr. Denis, dependabot[bot]

2.2.0 (2023-02-20)

  • Fix overriding of package (#145)
  • Various dependabot version bumps
  • [CI] Add dependabot configuration to automatically update actions.
  • Contributors: Christoph Fröhlich, Dr. Denis, Tyler Weaver, dependabot[bot]

2.1.2 (2022-11-15)

  • export missing dependency (#128)
  • Contributors: Noel Jiménez García

2.1.1 (2022-11-05)

  • Add declaration of parameters in ROSPid.
  • Fix namespace collision and parameter_callback problems in PidROS
  • Contributors: Aris Synodinos, Denis Štogl

2.1.0 (2022-06-30)

  • Fix parameter loading log levels
  • Support pass in a precomputed derivative error
  • Add getParametersCallbackHandle function
  • Add topic_prefix_ to declareParam & setParameter
  • Update include/control_toolbox/dither.hpp
  • Correct contributing and license files for ament_copyright.
  • Added license text file and contributing guidelines, corrected license short identifier.
  • Remove build of downstream workspace.
  • Update CI config and add pre-commit-config.
  • Contributors: Bence Magyar, ChenJun, Denis Štogl, Timon Engelke

2.0.2 (2021-05-25)

  • remove unused variables
  • Update visibility_control.hpp
  • Windows bringup.
  • Contributors: Karsten Knese, Sean Yen, Bence Magyar

2.0.1 (2020-08-01)

  • Fix dependencies
  • Export ament_cmake build type
  • Contributors: ahcorde

2.0.0 (2020-07-28)

  • Refactor the Pid class to be completely ROS agnostic and added a ROS 2 wrapper
  • Avoid crash when the type of the parameter doesn't match
  • Added topic_prefix to publisher topic name (#95)
  • Created a shared library (#93)
  • Aliases not part of the public API are now private
  • Removing pid_gains_setter
  • Removed unnecessary dependencies
  • Cleared empty non virtual destructors
  • Removed unused limited proxy variables
  • Added pid state real-time publisher
  • Removed all references to tinyxml
  • Removed tune_pid.py
  • Adding missing copyright licenses
  • Adapted dither, sine_sweep and sinusoid to ROS2
  • Removed dynamic reconfigure completely
  • Removed deprecated functions
  • Contributors: Alejandro Hernández Cordero, Bence Magyar, James Xu, Jordan Palacios, Shane Loretz, ahcorde

1.17.0 (2019-01-31)

  • update anti windup clamping
  • update negativeIntegrationAntiwindupTest
  • Address catkin_lint issues
  • Add executable flag
  • convert to package xml format 2
  • Remove doc header
  • Contributors: Bence Magyar, Cong, Gennaro Raiola

1.16.0 (2017-11-30)

  • switched to industrial_ci
  • Add control_msgs to CATKIN_DEPENDS.
  • Contributors: Bence Magyar, Mathias Luedtke, Mike Purvis

1.15.0 (2016-06-28)

  • avoid ABI breaks in PID class
  • fix add_dependencies call
  • rollback API changes in PID class
  • cfg: removed rosbuild support related error handling
  • Contributors: Bence Magyar, Igor Napolskikh, ipa-mig

1.14.0 (2016-05-03)

  • Fix negative gains issue and add tests; update gains setting through DynamicReconfig
  • Add antiwindup and tests to PID controller; rename old behaviour 'clamping'
  • Move message to control_toolbox
  • Add optional state publishing to PID controller, for logging/debugging/etc
  • Fix some typos in comments
  • changed the range of dynamic reconfigure to allow negative ones
  • Address -Wunused-parameter warnings
  • Factor out updatePid as negative calls to computeCommand
  • Increasing covergae of PID class test suite.
  • Chain calls of computeCommand and updatePid for code reuse
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Bence Magyar, Carlos Rosales, Guillaume Walck, Paul Bovbel, VahidAminZ

1.13.2 (2015-05-22)

  • CRITICAL BUGFIX: Fix broken PID command computation.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Paul Bovbel

1.13.1 (2015-04-30)

  • Improvement in integral contribution implementation. Resolve #32.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Carlos Rosales

1.13.0 (2014-10-31)

  • Harmonize pid gain names between rosparam and dynamic_reconfigure
  • Read i_clamp_min and i_clamp_max form parameter server - if available
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, ipa-fxm

1.12.1 (2014-06-12)

  • Remove broken test code. Hotfix for #18.
  • Contributors: Adolfo Rodriguez Tsouroukdissian

1.12.0 (2014-06-12)

  • pid: Adding quiet flag to suppress error message
  • Contributors: Jonathan Bohren

1.11.0 (2014-05-12)

  • Remove rosbuild artifacts
  • Cleaned up CMake and removed unnecessary dependencies
  • Made default value negative to match valid range
  • Fix for i_clamp_min to be negative in dynamic reconfigure
  • Fix abs/fabs problem with Clang and libc++
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, Marco Esposito

1.10.4 (2014-02-05)

  • Added Travis support
  • Renamed manifest.xml so it doesn't break rosdep
  • Expanded range of PID and windup gains for certain applications.
  • Expanded range of PID and windup gains for certain applications. Lowered default integral and derivative gain
  • check for CATKIN_ENABLE_TESTING
  • Add some comments to Parameters.cfg
  • Add support for dynamic_reconfigure for rosbuild
  • Contributors: Austin Hendrix, Dave Coleman, Lukas Bulwahn, Paul Dinh

1.10.3 (2013-08-02)

  • Fix bug in copy constructor.
  • Contributors: Austin Hendrix

1.10.2 (2013-07-29)

  • Fix copy constructor.
  • Merge pull request #1 from davetcoleman/hydro-devel Added dynamic reconfigure for PID gains
  • Removed const getGains function
  • Small fixes
  • Compatibility changes for realtime_tools, tweaked getests
  • Made realtime_buffer copiable
  • Added test for getting/settings gains, copying/assigning pid class
  • Removed const read, added copy constructor and print values function
  • Added new function getGainsConst that allows one to get the PID gains from a const PID class
  • Added realtime_tools as a dependency in package.xml and CMakeLists
  • Added realtime buffer to PID, re-ordered functions to more logical order and to match header file
  • Fixes per Austin review
  • Updated CMakeLists.txt and made fixes per Adolfo
  • Merged hydro-devel
  • Added dynamic reconfigure for PID gains
  • Tests build.
  • Contributors: Austin Hendrix, Dave Coleman

1.10.1 (2013-06-26)

  • Add dependency on tinyxml.
  • Contributors: Austin Hendrix

1.10.0 (2013-06-25)

  • Version 1.10.0
  • comment format consistentcy
  • Fixing comment in pid source code
  • Install tune_pid.py under catkin.
  • adding install targets
  • adding missing manifests
  • merging CMakeLists.txt files from rosbuild and catkin
  • adding hybrid-buildsystem makefiles
  • Merging from master, re-adding manifest.xml files
  • using more standard way of depending on gencpp
  • Add .gitignore file.
  • Fixing library export
  • catkinizing, could still be cleaned up
  • Fixing doc errors in PID
  • Changing @ commands to commands
  • Enforcing i_min <= 0 and i_max >= 0 in integral bound parameters, reducing duplicated code
  • Merge pull request #14 from bobholmberg/fix-PID-unbounded-i_error Using zero i_gain to turn off integral control did unsavory things.
  • Adding alternative name for new pid command computation API
  • Fixing merge error
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • Removing lie from documentation
  • Adding Bob's fixes to the backwards-compatibility API
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • bringing back old updatePid function contents
  • adding documentation warning
  • This makes the internal computations of updatePid() keep the same sign that they did before the API change
  • Merge typo
  • Resolving conflict from new Pid API
  • Merge branch 'master' into test-bad-integral-bounds
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Specifying div-by-zero test, adding other integral term tests
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Adding test to expose Pid class zero-division vulnerability
  • If the user did not want integral control and set i_gain to zero, then dividing by i_gain would set i_error to NaN. This is not desired. Instead, replace the use of division to create i_term with direct integration of i_term. Replace private member i_error with i_term. In getCurrentPIDErrors() create & return i_error with the same old meaning and units. NOTE: i_error is not needed internally anywhere else.
  • Cleaning up documentation, making argument names in function declaration match those in the implementation
  • adding doxygen deprecation flags
  • Fixing documentation
  • Merging changes from other branch
  • Adding conventional PID computation
  • Fixing inconsistent formatting, and reducing some duplicated code
  • remove .svn folder
  • move control_toolbox into ros_control
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Austin Hendrix, Bob Holmberg, Jonathan Bohren, Wim Meeussen, wmeeusse

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged control_toolbox at Robotics Stack Exchange

control_toolbox package from control_toolbox repo

control_toolbox

Package Summary

Tags No category tags.
Version 3.3.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-controls/control_toolbox.git
VCS Type git
VCS Version ros2-master
Last Updated 2024-11-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The control toolbox contains modules that are useful across all controllers.

Additional Links

Maintainers

  • Bence Magyar
  • Denis Štogl
  • Christoph Froehlich
  • Sai Kishor Kothakota

Authors

  • Melonee Wise
  • Sachin Chitta
  • John Hsu

control_toolbox

License Licence codecov

This package contains several C++ classes useful in writing controllers.

See the documentation of ros2_control and release infos on index.ros.org.

Build status

ROS2 Distro | Branch | Build status | Documentation | Released packages :———: | :—-: | :———-: | :———–: | :—————: Rolling | ros2-master | Binary Build
Rolling Source Build | API | control_toolbox Jazzy | ros2-master | see above | API | control_toolbox Iron | ros2-master | see above | API | control_toolbox Humble | ros2-master | see above | API | control_toolbox

Publication

If you find this work useful please give credits to the authors by citing:

  • S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo “ros_control: A generic and simple control framework for ROS”, The Journal of Open Source Software, 2017. (PDF)
@article{ros_control,
author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo  and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
title = {ros\_control: A generic and simple control framework for ROS},
journal = {The Journal of Open Source Software},
year = {2017},
doi = {10.21105/joss.00456},
URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
}

CHANGELOG

Changelog for package control_toolbox

3.3.0 (2024-10-28)

  • PID: Improve the API docs and change default value of antiwindup (#202)
  • [CI] Specify runner/container images and add Jazzy jobs (#200)
  • Add custom rosdoc2 config (#199)
  • [CI] Update pre-commit and remove ros-lint (#187)
  • Use Eigen CMake target (#190)
  • [CI] Use wf from ros2_control_ci for coverage build (#188)
  • Contributors: Christoph Fröhlich, dependabot[bot], github-actions[bot]

3.2.0 (2023-12-12)

  • [CI] fix source build (#168)
  • Bump actions/setup-python from 4 to 5 (#167)
  • [CI] Touchups (#166)
  • [PID] Update documentation to reflect ROS 2 usage of time (#165)
  • Bump actions/checkout from 3 to 4 (#163)
  • Bump ros-tooling/setup-ros from 0.6 to 0.7 (#161)
  • Add filters structure and lowpass filter (#152)
  • Bump codecov/codecov-action from 3.1.2 to 3.1.4 (#160)
  • Contributors: Christoph Fröhlich, GuiHome, Patrick Roncagliolo

3.1.0 (2023-04-29)

  • Check for i_min <= i_max at initialization (#139)
  • Contributors: Christoph Fröhlich

3.0.0 (2023-04-05)

  • [PidROS] Enable interpreting prefix as param prefix. (#129)
  • Use std::clamp (#140)
  • [CI] Fixes and update for branch out (#155)
  • Enable subclassing of PID implementation. (#148)
  • [CI] Add Humble job (#147)
  • Finally update formatting to other repositories convention. (#131)
  • [CI] 🔧 Update pre-commit hooks and sync actions to other repositories. (#130)
  • Contributors: Bence Magyar, Christoph Fröhlich, Dr. Denis, dependabot[bot]

2.2.0 (2023-02-20)

  • Fix overriding of package (#145)
  • Various dependabot version bumps
  • [CI] Add dependabot configuration to automatically update actions.
  • Contributors: Christoph Fröhlich, Dr. Denis, Tyler Weaver, dependabot[bot]

2.1.2 (2022-11-15)

  • export missing dependency (#128)
  • Contributors: Noel Jiménez García

2.1.1 (2022-11-05)

  • Add declaration of parameters in ROSPid.
  • Fix namespace collision and parameter_callback problems in PidROS
  • Contributors: Aris Synodinos, Denis Štogl

2.1.0 (2022-06-30)

  • Fix parameter loading log levels
  • Support pass in a precomputed derivative error
  • Add getParametersCallbackHandle function
  • Add topic_prefix_ to declareParam & setParameter
  • Update include/control_toolbox/dither.hpp
  • Correct contributing and license files for ament_copyright.
  • Added license text file and contributing guidelines, corrected license short identifier.
  • Remove build of downstream workspace.
  • Update CI config and add pre-commit-config.
  • Contributors: Bence Magyar, ChenJun, Denis Štogl, Timon Engelke

2.0.2 (2021-05-25)

  • remove unused variables
  • Update visibility_control.hpp
  • Windows bringup.
  • Contributors: Karsten Knese, Sean Yen, Bence Magyar

2.0.1 (2020-08-01)

  • Fix dependencies
  • Export ament_cmake build type
  • Contributors: ahcorde

2.0.0 (2020-07-28)

  • Refactor the Pid class to be completely ROS agnostic and added a ROS 2 wrapper
  • Avoid crash when the type of the parameter doesn't match
  • Added topic_prefix to publisher topic name (#95)
  • Created a shared library (#93)
  • Aliases not part of the public API are now private
  • Removing pid_gains_setter
  • Removed unnecessary dependencies
  • Cleared empty non virtual destructors
  • Removed unused limited proxy variables
  • Added pid state real-time publisher
  • Removed all references to tinyxml
  • Removed tune_pid.py
  • Adding missing copyright licenses
  • Adapted dither, sine_sweep and sinusoid to ROS2
  • Removed dynamic reconfigure completely
  • Removed deprecated functions
  • Contributors: Alejandro Hernández Cordero, Bence Magyar, James Xu, Jordan Palacios, Shane Loretz, ahcorde

1.17.0 (2019-01-31)

  • update anti windup clamping
  • update negativeIntegrationAntiwindupTest
  • Address catkin_lint issues
  • Add executable flag
  • convert to package xml format 2
  • Remove doc header
  • Contributors: Bence Magyar, Cong, Gennaro Raiola

1.16.0 (2017-11-30)

  • switched to industrial_ci
  • Add control_msgs to CATKIN_DEPENDS.
  • Contributors: Bence Magyar, Mathias Luedtke, Mike Purvis

1.15.0 (2016-06-28)

  • avoid ABI breaks in PID class
  • fix add_dependencies call
  • rollback API changes in PID class
  • cfg: removed rosbuild support related error handling
  • Contributors: Bence Magyar, Igor Napolskikh, ipa-mig

1.14.0 (2016-05-03)

  • Fix negative gains issue and add tests; update gains setting through DynamicReconfig
  • Add antiwindup and tests to PID controller; rename old behaviour 'clamping'
  • Move message to control_toolbox
  • Add optional state publishing to PID controller, for logging/debugging/etc
  • Fix some typos in comments
  • changed the range of dynamic reconfigure to allow negative ones
  • Address -Wunused-parameter warnings
  • Factor out updatePid as negative calls to computeCommand
  • Increasing covergae of PID class test suite.
  • Chain calls of computeCommand and updatePid for code reuse
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Bence Magyar, Carlos Rosales, Guillaume Walck, Paul Bovbel, VahidAminZ

1.13.2 (2015-05-22)

  • CRITICAL BUGFIX: Fix broken PID command computation.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Paul Bovbel

1.13.1 (2015-04-30)

  • Improvement in integral contribution implementation. Resolve #32.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Carlos Rosales

1.13.0 (2014-10-31)

  • Harmonize pid gain names between rosparam and dynamic_reconfigure
  • Read i_clamp_min and i_clamp_max form parameter server - if available
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, ipa-fxm

1.12.1 (2014-06-12)

  • Remove broken test code. Hotfix for #18.
  • Contributors: Adolfo Rodriguez Tsouroukdissian

1.12.0 (2014-06-12)

  • pid: Adding quiet flag to suppress error message
  • Contributors: Jonathan Bohren

1.11.0 (2014-05-12)

  • Remove rosbuild artifacts
  • Cleaned up CMake and removed unnecessary dependencies
  • Made default value negative to match valid range
  • Fix for i_clamp_min to be negative in dynamic reconfigure
  • Fix abs/fabs problem with Clang and libc++
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, Marco Esposito

1.10.4 (2014-02-05)

  • Added Travis support
  • Renamed manifest.xml so it doesn't break rosdep
  • Expanded range of PID and windup gains for certain applications.
  • Expanded range of PID and windup gains for certain applications. Lowered default integral and derivative gain
  • check for CATKIN_ENABLE_TESTING
  • Add some comments to Parameters.cfg
  • Add support for dynamic_reconfigure for rosbuild
  • Contributors: Austin Hendrix, Dave Coleman, Lukas Bulwahn, Paul Dinh

1.10.3 (2013-08-02)

  • Fix bug in copy constructor.
  • Contributors: Austin Hendrix

1.10.2 (2013-07-29)

  • Fix copy constructor.
  • Merge pull request #1 from davetcoleman/hydro-devel Added dynamic reconfigure for PID gains
  • Removed const getGains function
  • Small fixes
  • Compatibility changes for realtime_tools, tweaked getests
  • Made realtime_buffer copiable
  • Added test for getting/settings gains, copying/assigning pid class
  • Removed const read, added copy constructor and print values function
  • Added new function getGainsConst that allows one to get the PID gains from a const PID class
  • Added realtime_tools as a dependency in package.xml and CMakeLists
  • Added realtime buffer to PID, re-ordered functions to more logical order and to match header file
  • Fixes per Austin review
  • Updated CMakeLists.txt and made fixes per Adolfo
  • Merged hydro-devel
  • Added dynamic reconfigure for PID gains
  • Tests build.
  • Contributors: Austin Hendrix, Dave Coleman

1.10.1 (2013-06-26)

  • Add dependency on tinyxml.
  • Contributors: Austin Hendrix

1.10.0 (2013-06-25)

  • Version 1.10.0
  • comment format consistentcy
  • Fixing comment in pid source code
  • Install tune_pid.py under catkin.
  • adding install targets
  • adding missing manifests
  • merging CMakeLists.txt files from rosbuild and catkin
  • adding hybrid-buildsystem makefiles
  • Merging from master, re-adding manifest.xml files
  • using more standard way of depending on gencpp
  • Add .gitignore file.
  • Fixing library export
  • catkinizing, could still be cleaned up
  • Fixing doc errors in PID
  • Changing @ commands to commands
  • Enforcing i_min <= 0 and i_max >= 0 in integral bound parameters, reducing duplicated code
  • Merge pull request #14 from bobholmberg/fix-PID-unbounded-i_error Using zero i_gain to turn off integral control did unsavory things.
  • Adding alternative name for new pid command computation API
  • Fixing merge error
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • Removing lie from documentation
  • Adding Bob's fixes to the backwards-compatibility API
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • bringing back old updatePid function contents
  • adding documentation warning
  • This makes the internal computations of updatePid() keep the same sign that they did before the API change
  • Merge typo
  • Resolving conflict from new Pid API
  • Merge branch 'master' into test-bad-integral-bounds
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Specifying div-by-zero test, adding other integral term tests
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Adding test to expose Pid class zero-division vulnerability
  • If the user did not want integral control and set i_gain to zero, then dividing by i_gain would set i_error to NaN. This is not desired. Instead, replace the use of division to create i_term with direct integration of i_term. Replace private member i_error with i_term. In getCurrentPIDErrors() create & return i_error with the same old meaning and units. NOTE: i_error is not needed internally anywhere else.
  • Cleaning up documentation, making argument names in function declaration match those in the implementation
  • adding doxygen deprecation flags
  • Fixing documentation
  • Merging changes from other branch
  • Adding conventional PID computation
  • Fixing inconsistent formatting, and reducing some duplicated code
  • remove .svn folder
  • move control_toolbox into ros_control
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Austin Hendrix, Bob Holmberg, Jonathan Bohren, Wim Meeussen, wmeeusse

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged control_toolbox at Robotics Stack Exchange

control_toolbox package from control_toolbox repo

control_toolbox

Package Summary

Tags No category tags.
Version 1.19.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-controls/control_toolbox.git
VCS Type git
VCS Version melodic-devel
Last Updated 2022-05-10
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The control toolbox contains modules that are useful across all controllers.

Additional Links

Maintainers

  • Bence Magyar

Authors

  • Melonee Wise
  • Sachin Chitta
  • John Hsu

control_toolbox

See ros_control and control_toolbox documentation on ros.org

Build Status (Melodic & Noetic)

Build Status

Publication

If you find this work useful please give credits to the authors by citing:

  • S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo “ros_control: A generic and simple control framework for ROS”, The Journal of Open Source Software, 2017. (PDF)
@article{ros_control,
author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo  and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
title = {ros\_control: A generic and simple control framework for ROS},
journal = {The Journal of Open Source Software},
year = {2017},
doi = {10.21105/joss.00456},
URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
}

CHANGELOG

Changelog for package control_toolbox

1.19.0 (2022-05-10)

  • Switch to std::bind
  • Increased integral gains & windup limits from +-1000 to +-100000
  • Update README build status badge
  • Remove Travis CI config
  • Add GH actions CI workflow
  • Update include/control_toolbox/pid.h
  • code review fixes
  • Allow smoother resets 1. Currently after a reset (or init), since p_error_last is_ set to 0, the first computeCommand is calculating a false large derivative error. Proposed fix: only calculate error_dot if p_error_last_ contains a real value. The PR leaves reset() behavior untouched, and provides an additional reset function that allows setting the initial values for d_error and i_error 2. Allow setting initial i_error. This allows PID to be used in a smoother manner in systems switching from manual to automatic modes. See: http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-initialization/
    1. Improve cases where dt==0 or invalid errors were given (return last cmd_ instead of 0)
  • Contributors: Jochen Sprickerhof, Koby Aizer, Matt Reynolds, Steve Golton, Bence Magyar

1.18.2 (2020-06-04)

  • Python 3 compat part II
  • Contributors: Tobias Fischer

1.18.1 (2020-06-01)

  • Python 3 compat
  • Migrate to new industrial_ci
  • Contributors: Matt Reynolds, Tobias Fischer

1.18.0 (2020-03-27)

  • Bump CMake version to avoid CMP0048 warning
  • add static method to generate non-deterministic seed
  • migrate to STL random library
  • Contributors: James Xu, Shane Loretz, ahcorde

1.17.0 (2019-01-31)

  • update anti windup clamping
  • update negativeIntegrationAntiwindupTest
  • Address catkin_lint issues
  • Add executable flag
  • convert to package xml format 2
  • Remove doc header
  • Contributors: Bence Magyar, Cong, Gennaro Raiola

1.16.0 (2017-11-30)

  • switched to industrial_ci
  • Add control_msgs to CATKIN_DEPENDS.
  • Contributors: Bence Magyar, Mathias Luedtke, Mike Purvis

1.15.0 (2016-06-28)

  • avoid ABI breaks in PID class
  • fix add_dependencies call
  • rollback API changes in PID class
  • cfg: removed rosbuild support related error handling
  • Contributors: Bence Magyar, Igor Napolskikh, ipa-mig

1.14.0 (2016-05-03)

  • Fix negative gains issue and add tests; update gains setting through DynamicReconfig
  • Add antiwindup and tests to PID controller; rename old behaviour 'clamping'
  • Move message to control_toolbox
  • Add optional state publishing to PID controller, for logging/debugging/etc
  • Fix some typos in comments
  • changed the range of dynamic reconfigure to allow negative ones
  • Address -Wunused-parameter warnings
  • Factor out updatePid as negative calls to computeCommand
  • Increasing covergae of PID class test suite.
  • Chain calls of computeCommand and updatePid for code reuse
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Bence Magyar, Carlos Rosales, Guillaume Walck, Paul Bovbel, VahidAminZ

1.13.2 (2015-05-22)

  • CRITICAL BUGFIX: Fix broken PID command computation.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Paul Bovbel

1.13.1 (2015-04-30)

  • Improvement in integral contribution implementation. Resolve #32.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Carlos Rosales

1.13.0 (2014-10-31)

  • Harmonize pid gain names between rosparam and dynamic_reconfigure
  • Read i_clamp_min and i_clamp_max form parameter server - if available
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, ipa-fxm

1.12.1 (2014-06-12)

  • Remove broken test code. Hotfix for #18.
  • Contributors: Adolfo Rodriguez Tsouroukdissian

1.12.0 (2014-06-12)

  • pid: Adding quiet flag to suppress error message
  • Contributors: Jonathan Bohren

1.11.0 (2014-05-12)

  • Remove rosbuild artifacts
  • Cleaned up CMake and removed unnecessary dependencies
  • Made default value negative to match valid range
  • Fix for i_clamp_min to be negative in dynamic reconfigure
  • Fix abs/fabs problem with Clang and libc++
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, Marco Esposito

1.10.4 (2014-02-05)

  • Added Travis support
  • Renamed manifest.xml so it doesn't break rosdep
  • Expanded range of PID and windup gains for certain applications.
  • Expanded range of PID and windup gains for certain applications. Lowered default integral and derivative gain
  • check for CATKIN_ENABLE_TESTING
  • Add some comments to Parameters.cfg
  • Add support for dynamic_reconfigure for rosbuild
  • Contributors: Austin Hendrix, Dave Coleman, Lukas Bulwahn, Paul Dinh

1.10.3 (2013-08-02)

  • Fix bug in copy constructor.
  • Contributors: Austin Hendrix

1.10.2 (2013-07-29)

  • Fix copy constructor.
  • Merge pull request #1 from davetcoleman/hydro-devel Added dynamic reconfigure for PID gains
  • Removed const getGains function
  • Small fixes
  • Compatibility changes for realtime_tools, tweaked getests
  • Made realtime_buffer copiable
  • Added test for getting/settings gains, copying/assigning pid class
  • Removed const read, added copy constructor and print values function
  • Added new function getGainsConst that allows one to get the PID gains from a const PID class
  • Added realtime_tools as a dependency in package.xml and CMakeLists
  • Added realtime buffer to PID, re-ordered functions to more logical order and to match header file
  • Fixes per Austin review
  • Updated CMakeLists.txt and made fixes per Adolfo
  • Merged hydro-devel
  • Added dynamic reconfigure for PID gains
  • Tests build.
  • Contributors: Austin Hendrix, Dave Coleman

1.10.1 (2013-06-26)

  • Add dependency on tinyxml.
  • Contributors: Austin Hendrix

1.10.0 (2013-06-25)

  • Version 1.10.0
  • comment format consistentcy
  • Fixing comment in pid source code
  • Install tune_pid.py under catkin.
  • adding install targets
  • adding missing manifests
  • merging CMakeLists.txt files from rosbuild and catkin
  • adding hybrid-buildsystem makefiles
  • Merging from master, re-adding manifest.xml files
  • using more standard way of depending on gencpp
  • Add .gitignore file.
  • Fixing library export
  • catkinizing, could still be cleaned up
  • Fixing doc errors in PID
  • Changing @ commands to commands
  • Enforcing i_min <= 0 and i_max >= 0 in integral bound parameters, reducing duplicated code
  • Merge pull request #14 from bobholmberg/fix-PID-unbounded-i_error Using zero i_gain to turn off integral control did unsavory things.
  • Adding alternative name for new pid command computation API
  • Fixing merge error
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • Removing lie from documentation
  • Adding Bob's fixes to the backwards-compatibility API
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • bringing back old updatePid function contents
  • adding documentation warning
  • This makes the internal computations of updatePid() keep the same sign that they did before the API change
  • Merge typo
  • Resolving conflict from new Pid API
  • Merge branch 'master' into test-bad-integral-bounds
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Specifying div-by-zero test, adding other integral term tests
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Adding test to expose Pid class zero-division vulnerability
  • If the user did not want integral control and set i_gain to zero, then dividing by i_gain would set i_error to NaN. This is not desired. Instead, replace the use of division to create i_term with direct integration of i_term. Replace private member i_error with i_term. In getCurrentPIDErrors() create & return i_error with the same old meaning and units. NOTE: i_error is not needed internally anywhere else.
  • Cleaning up documentation, making argument names in function declaration match those in the implementation
  • adding doxygen deprecation flags
  • Fixing documentation
  • Merging changes from other branch
  • Adding conventional PID computation
  • Fixing inconsistent formatting, and reducing some duplicated code
  • remove .svn folder
  • move control_toolbox into ros_control
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Austin Hendrix, Bob Holmberg, Jonathan Bohren, Wim Meeussen, wmeeusse

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged control_toolbox at Robotics Stack Exchange

control_toolbox package from control_toolbox repo

control_toolbox

Package Summary

Tags No category tags.
Version 3.3.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-controls/control_toolbox.git
VCS Type git
VCS Version ros2-master
Last Updated 2024-11-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The control toolbox contains modules that are useful across all controllers.

Additional Links

Maintainers

  • Bence Magyar
  • Denis Štogl
  • Christoph Froehlich
  • Sai Kishor Kothakota

Authors

  • Melonee Wise
  • Sachin Chitta
  • John Hsu

control_toolbox

License Licence codecov

This package contains several C++ classes useful in writing controllers.

See the documentation of ros2_control and release infos on index.ros.org.

Build status

ROS2 Distro | Branch | Build status | Documentation | Released packages :———: | :—-: | :———-: | :———–: | :—————: Rolling | ros2-master | Binary Build
Rolling Source Build | API | control_toolbox Jazzy | ros2-master | see above | API | control_toolbox Iron | ros2-master | see above | API | control_toolbox Humble | ros2-master | see above | API | control_toolbox

Publication

If you find this work useful please give credits to the authors by citing:

  • S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo “ros_control: A generic and simple control framework for ROS”, The Journal of Open Source Software, 2017. (PDF)
@article{ros_control,
author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo  and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
title = {ros\_control: A generic and simple control framework for ROS},
journal = {The Journal of Open Source Software},
year = {2017},
doi = {10.21105/joss.00456},
URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
}

CHANGELOG

Changelog for package control_toolbox

3.3.0 (2024-10-28)

  • PID: Improve the API docs and change default value of antiwindup (#202)
  • [CI] Specify runner/container images and add Jazzy jobs (#200)
  • Add custom rosdoc2 config (#199)
  • [CI] Update pre-commit and remove ros-lint (#187)
  • Use Eigen CMake target (#190)
  • [CI] Use wf from ros2_control_ci for coverage build (#188)
  • Contributors: Christoph Fröhlich, dependabot[bot], github-actions[bot]

3.2.0 (2023-12-12)

  • [CI] fix source build (#168)
  • Bump actions/setup-python from 4 to 5 (#167)
  • [CI] Touchups (#166)
  • [PID] Update documentation to reflect ROS 2 usage of time (#165)
  • Bump actions/checkout from 3 to 4 (#163)
  • Bump ros-tooling/setup-ros from 0.6 to 0.7 (#161)
  • Add filters structure and lowpass filter (#152)
  • Bump codecov/codecov-action from 3.1.2 to 3.1.4 (#160)
  • Contributors: Christoph Fröhlich, GuiHome, Patrick Roncagliolo

3.1.0 (2023-04-29)

  • Check for i_min <= i_max at initialization (#139)
  • Contributors: Christoph Fröhlich

3.0.0 (2023-04-05)

  • [PidROS] Enable interpreting prefix as param prefix. (#129)
  • Use std::clamp (#140)
  • [CI] Fixes and update for branch out (#155)
  • Enable subclassing of PID implementation. (#148)
  • [CI] Add Humble job (#147)
  • Finally update formatting to other repositories convention. (#131)
  • [CI] 🔧 Update pre-commit hooks and sync actions to other repositories. (#130)
  • Contributors: Bence Magyar, Christoph Fröhlich, Dr. Denis, dependabot[bot]

2.2.0 (2023-02-20)

  • Fix overriding of package (#145)
  • Various dependabot version bumps
  • [CI] Add dependabot configuration to automatically update actions.
  • Contributors: Christoph Fröhlich, Dr. Denis, Tyler Weaver, dependabot[bot]

2.1.2 (2022-11-15)

  • export missing dependency (#128)
  • Contributors: Noel Jiménez García

2.1.1 (2022-11-05)

  • Add declaration of parameters in ROSPid.
  • Fix namespace collision and parameter_callback problems in PidROS
  • Contributors: Aris Synodinos, Denis Štogl

2.1.0 (2022-06-30)

  • Fix parameter loading log levels
  • Support pass in a precomputed derivative error
  • Add getParametersCallbackHandle function
  • Add topic_prefix_ to declareParam & setParameter
  • Update include/control_toolbox/dither.hpp
  • Correct contributing and license files for ament_copyright.
  • Added license text file and contributing guidelines, corrected license short identifier.
  • Remove build of downstream workspace.
  • Update CI config and add pre-commit-config.
  • Contributors: Bence Magyar, ChenJun, Denis Štogl, Timon Engelke

2.0.2 (2021-05-25)

  • remove unused variables
  • Update visibility_control.hpp
  • Windows bringup.
  • Contributors: Karsten Knese, Sean Yen, Bence Magyar

2.0.1 (2020-08-01)

  • Fix dependencies
  • Export ament_cmake build type
  • Contributors: ahcorde

2.0.0 (2020-07-28)

  • Refactor the Pid class to be completely ROS agnostic and added a ROS 2 wrapper
  • Avoid crash when the type of the parameter doesn't match
  • Added topic_prefix to publisher topic name (#95)
  • Created a shared library (#93)
  • Aliases not part of the public API are now private
  • Removing pid_gains_setter
  • Removed unnecessary dependencies
  • Cleared empty non virtual destructors
  • Removed unused limited proxy variables
  • Added pid state real-time publisher
  • Removed all references to tinyxml
  • Removed tune_pid.py
  • Adding missing copyright licenses
  • Adapted dither, sine_sweep and sinusoid to ROS2
  • Removed dynamic reconfigure completely
  • Removed deprecated functions
  • Contributors: Alejandro Hernández Cordero, Bence Magyar, James Xu, Jordan Palacios, Shane Loretz, ahcorde

1.17.0 (2019-01-31)

  • update anti windup clamping
  • update negativeIntegrationAntiwindupTest
  • Address catkin_lint issues
  • Add executable flag
  • convert to package xml format 2
  • Remove doc header
  • Contributors: Bence Magyar, Cong, Gennaro Raiola

1.16.0 (2017-11-30)

  • switched to industrial_ci
  • Add control_msgs to CATKIN_DEPENDS.
  • Contributors: Bence Magyar, Mathias Luedtke, Mike Purvis

1.15.0 (2016-06-28)

  • avoid ABI breaks in PID class
  • fix add_dependencies call
  • rollback API changes in PID class
  • cfg: removed rosbuild support related error handling
  • Contributors: Bence Magyar, Igor Napolskikh, ipa-mig

1.14.0 (2016-05-03)

  • Fix negative gains issue and add tests; update gains setting through DynamicReconfig
  • Add antiwindup and tests to PID controller; rename old behaviour 'clamping'
  • Move message to control_toolbox
  • Add optional state publishing to PID controller, for logging/debugging/etc
  • Fix some typos in comments
  • changed the range of dynamic reconfigure to allow negative ones
  • Address -Wunused-parameter warnings
  • Factor out updatePid as negative calls to computeCommand
  • Increasing covergae of PID class test suite.
  • Chain calls of computeCommand and updatePid for code reuse
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Bence Magyar, Carlos Rosales, Guillaume Walck, Paul Bovbel, VahidAminZ

1.13.2 (2015-05-22)

  • CRITICAL BUGFIX: Fix broken PID command computation.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Paul Bovbel

1.13.1 (2015-04-30)

  • Improvement in integral contribution implementation. Resolve #32.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Carlos Rosales

1.13.0 (2014-10-31)

  • Harmonize pid gain names between rosparam and dynamic_reconfigure
  • Read i_clamp_min and i_clamp_max form parameter server - if available
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, ipa-fxm

1.12.1 (2014-06-12)

  • Remove broken test code. Hotfix for #18.
  • Contributors: Adolfo Rodriguez Tsouroukdissian

1.12.0 (2014-06-12)

  • pid: Adding quiet flag to suppress error message
  • Contributors: Jonathan Bohren

1.11.0 (2014-05-12)

  • Remove rosbuild artifacts
  • Cleaned up CMake and removed unnecessary dependencies
  • Made default value negative to match valid range
  • Fix for i_clamp_min to be negative in dynamic reconfigure
  • Fix abs/fabs problem with Clang and libc++
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, Marco Esposito

1.10.4 (2014-02-05)

  • Added Travis support
  • Renamed manifest.xml so it doesn't break rosdep
  • Expanded range of PID and windup gains for certain applications.
  • Expanded range of PID and windup gains for certain applications. Lowered default integral and derivative gain
  • check for CATKIN_ENABLE_TESTING
  • Add some comments to Parameters.cfg
  • Add support for dynamic_reconfigure for rosbuild
  • Contributors: Austin Hendrix, Dave Coleman, Lukas Bulwahn, Paul Dinh

1.10.3 (2013-08-02)

  • Fix bug in copy constructor.
  • Contributors: Austin Hendrix

1.10.2 (2013-07-29)

  • Fix copy constructor.
  • Merge pull request #1 from davetcoleman/hydro-devel Added dynamic reconfigure for PID gains
  • Removed const getGains function
  • Small fixes
  • Compatibility changes for realtime_tools, tweaked getests
  • Made realtime_buffer copiable
  • Added test for getting/settings gains, copying/assigning pid class
  • Removed const read, added copy constructor and print values function
  • Added new function getGainsConst that allows one to get the PID gains from a const PID class
  • Added realtime_tools as a dependency in package.xml and CMakeLists
  • Added realtime buffer to PID, re-ordered functions to more logical order and to match header file
  • Fixes per Austin review
  • Updated CMakeLists.txt and made fixes per Adolfo
  • Merged hydro-devel
  • Added dynamic reconfigure for PID gains
  • Tests build.
  • Contributors: Austin Hendrix, Dave Coleman

1.10.1 (2013-06-26)

  • Add dependency on tinyxml.
  • Contributors: Austin Hendrix

1.10.0 (2013-06-25)

  • Version 1.10.0
  • comment format consistentcy
  • Fixing comment in pid source code
  • Install tune_pid.py under catkin.
  • adding install targets
  • adding missing manifests
  • merging CMakeLists.txt files from rosbuild and catkin
  • adding hybrid-buildsystem makefiles
  • Merging from master, re-adding manifest.xml files
  • using more standard way of depending on gencpp
  • Add .gitignore file.
  • Fixing library export
  • catkinizing, could still be cleaned up
  • Fixing doc errors in PID
  • Changing @ commands to commands
  • Enforcing i_min <= 0 and i_max >= 0 in integral bound parameters, reducing duplicated code
  • Merge pull request #14 from bobholmberg/fix-PID-unbounded-i_error Using zero i_gain to turn off integral control did unsavory things.
  • Adding alternative name for new pid command computation API
  • Fixing merge error
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • Removing lie from documentation
  • Adding Bob's fixes to the backwards-compatibility API
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • bringing back old updatePid function contents
  • adding documentation warning
  • This makes the internal computations of updatePid() keep the same sign that they did before the API change
  • Merge typo
  • Resolving conflict from new Pid API
  • Merge branch 'master' into test-bad-integral-bounds
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Specifying div-by-zero test, adding other integral term tests
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Adding test to expose Pid class zero-division vulnerability
  • If the user did not want integral control and set i_gain to zero, then dividing by i_gain would set i_error to NaN. This is not desired. Instead, replace the use of division to create i_term with direct integration of i_term. Replace private member i_error with i_term. In getCurrentPIDErrors() create & return i_error with the same old meaning and units. NOTE: i_error is not needed internally anywhere else.
  • Cleaning up documentation, making argument names in function declaration match those in the implementation
  • adding doxygen deprecation flags
  • Fixing documentation
  • Merging changes from other branch
  • Adding conventional PID computation
  • Fixing inconsistent formatting, and reducing some duplicated code
  • remove .svn folder
  • move control_toolbox into ros_control
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Austin Hendrix, Bob Holmberg, Jonathan Bohren, Wim Meeussen, wmeeusse

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged control_toolbox at Robotics Stack Exchange

control_toolbox package from control_toolbox repo

control_toolbox

Package Summary

Tags No category tags.
Version 1.19.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-controls/control_toolbox.git
VCS Type git
VCS Version melodic-devel
Last Updated 2022-05-10
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The control toolbox contains modules that are useful across all controllers.

Additional Links

Maintainers

  • Bence Magyar

Authors

  • Melonee Wise
  • Sachin Chitta
  • John Hsu

control_toolbox

See ros_control and control_toolbox documentation on ros.org

Build Status (Melodic & Noetic)

Build Status

Publication

If you find this work useful please give credits to the authors by citing:

  • S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo “ros_control: A generic and simple control framework for ROS”, The Journal of Open Source Software, 2017. (PDF)
@article{ros_control,
author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo  and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
title = {ros\_control: A generic and simple control framework for ROS},
journal = {The Journal of Open Source Software},
year = {2017},
doi = {10.21105/joss.00456},
URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
}

CHANGELOG

Changelog for package control_toolbox

1.19.0 (2022-05-10)

  • Switch to std::bind
  • Increased integral gains & windup limits from +-1000 to +-100000
  • Update README build status badge
  • Remove Travis CI config
  • Add GH actions CI workflow
  • Update include/control_toolbox/pid.h
  • code review fixes
  • Allow smoother resets 1. Currently after a reset (or init), since p_error_last is_ set to 0, the first computeCommand is calculating a false large derivative error. Proposed fix: only calculate error_dot if p_error_last_ contains a real value. The PR leaves reset() behavior untouched, and provides an additional reset function that allows setting the initial values for d_error and i_error 2. Allow setting initial i_error. This allows PID to be used in a smoother manner in systems switching from manual to automatic modes. See: http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-initialization/
    1. Improve cases where dt==0 or invalid errors were given (return last cmd_ instead of 0)
  • Contributors: Jochen Sprickerhof, Koby Aizer, Matt Reynolds, Steve Golton, Bence Magyar

1.18.2 (2020-06-04)

  • Python 3 compat part II
  • Contributors: Tobias Fischer

1.18.1 (2020-06-01)

  • Python 3 compat
  • Migrate to new industrial_ci
  • Contributors: Matt Reynolds, Tobias Fischer

1.18.0 (2020-03-27)

  • Bump CMake version to avoid CMP0048 warning
  • add static method to generate non-deterministic seed
  • migrate to STL random library
  • Contributors: James Xu, Shane Loretz, ahcorde

1.17.0 (2019-01-31)

  • update anti windup clamping
  • update negativeIntegrationAntiwindupTest
  • Address catkin_lint issues
  • Add executable flag
  • convert to package xml format 2
  • Remove doc header
  • Contributors: Bence Magyar, Cong, Gennaro Raiola

1.16.0 (2017-11-30)

  • switched to industrial_ci
  • Add control_msgs to CATKIN_DEPENDS.
  • Contributors: Bence Magyar, Mathias Luedtke, Mike Purvis

1.15.0 (2016-06-28)

  • avoid ABI breaks in PID class
  • fix add_dependencies call
  • rollback API changes in PID class
  • cfg: removed rosbuild support related error handling
  • Contributors: Bence Magyar, Igor Napolskikh, ipa-mig

1.14.0 (2016-05-03)

  • Fix negative gains issue and add tests; update gains setting through DynamicReconfig
  • Add antiwindup and tests to PID controller; rename old behaviour 'clamping'
  • Move message to control_toolbox
  • Add optional state publishing to PID controller, for logging/debugging/etc
  • Fix some typos in comments
  • changed the range of dynamic reconfigure to allow negative ones
  • Address -Wunused-parameter warnings
  • Factor out updatePid as negative calls to computeCommand
  • Increasing covergae of PID class test suite.
  • Chain calls of computeCommand and updatePid for code reuse
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Bence Magyar, Carlos Rosales, Guillaume Walck, Paul Bovbel, VahidAminZ

1.13.2 (2015-05-22)

  • CRITICAL BUGFIX: Fix broken PID command computation.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Paul Bovbel

1.13.1 (2015-04-30)

  • Improvement in integral contribution implementation. Resolve #32.
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Carlos Rosales

1.13.0 (2014-10-31)

  • Harmonize pid gain names between rosparam and dynamic_reconfigure
  • Read i_clamp_min and i_clamp_max form parameter server - if available
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, ipa-fxm

1.12.1 (2014-06-12)

  • Remove broken test code. Hotfix for #18.
  • Contributors: Adolfo Rodriguez Tsouroukdissian

1.12.0 (2014-06-12)

  • pid: Adding quiet flag to suppress error message
  • Contributors: Jonathan Bohren

1.11.0 (2014-05-12)

  • Remove rosbuild artifacts
  • Cleaned up CMake and removed unnecessary dependencies
  • Made default value negative to match valid range
  • Fix for i_clamp_min to be negative in dynamic reconfigure
  • Fix abs/fabs problem with Clang and libc++
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Dave Coleman, Marco Esposito

1.10.4 (2014-02-05)

  • Added Travis support
  • Renamed manifest.xml so it doesn't break rosdep
  • Expanded range of PID and windup gains for certain applications.
  • Expanded range of PID and windup gains for certain applications. Lowered default integral and derivative gain
  • check for CATKIN_ENABLE_TESTING
  • Add some comments to Parameters.cfg
  • Add support for dynamic_reconfigure for rosbuild
  • Contributors: Austin Hendrix, Dave Coleman, Lukas Bulwahn, Paul Dinh

1.10.3 (2013-08-02)

  • Fix bug in copy constructor.
  • Contributors: Austin Hendrix

1.10.2 (2013-07-29)

  • Fix copy constructor.
  • Merge pull request #1 from davetcoleman/hydro-devel Added dynamic reconfigure for PID gains
  • Removed const getGains function
  • Small fixes
  • Compatibility changes for realtime_tools, tweaked getests
  • Made realtime_buffer copiable
  • Added test for getting/settings gains, copying/assigning pid class
  • Removed const read, added copy constructor and print values function
  • Added new function getGainsConst that allows one to get the PID gains from a const PID class
  • Added realtime_tools as a dependency in package.xml and CMakeLists
  • Added realtime buffer to PID, re-ordered functions to more logical order and to match header file
  • Fixes per Austin review
  • Updated CMakeLists.txt and made fixes per Adolfo
  • Merged hydro-devel
  • Added dynamic reconfigure for PID gains
  • Tests build.
  • Contributors: Austin Hendrix, Dave Coleman

1.10.1 (2013-06-26)

  • Add dependency on tinyxml.
  • Contributors: Austin Hendrix

1.10.0 (2013-06-25)

  • Version 1.10.0
  • comment format consistentcy
  • Fixing comment in pid source code
  • Install tune_pid.py under catkin.
  • adding install targets
  • adding missing manifests
  • merging CMakeLists.txt files from rosbuild and catkin
  • adding hybrid-buildsystem makefiles
  • Merging from master, re-adding manifest.xml files
  • using more standard way of depending on gencpp
  • Add .gitignore file.
  • Fixing library export
  • catkinizing, could still be cleaned up
  • Fixing doc errors in PID
  • Changing @ commands to commands
  • Enforcing i_min <= 0 and i_max >= 0 in integral bound parameters, reducing duplicated code
  • Merge pull request #14 from bobholmberg/fix-PID-unbounded-i_error Using zero i_gain to turn off integral control did unsavory things.
  • Adding alternative name for new pid command computation API
  • Fixing merge error
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • Removing lie from documentation
  • Adding Bob's fixes to the backwards-compatibility API
  • Merge branch 'fix-pid-backwards-compatibility' into fix-PID-unbounded-i_error
  • bringing back old updatePid function contents
  • adding documentation warning
  • This makes the internal computations of updatePid() keep the same sign that they did before the API change
  • Merge typo
  • Resolving conflict from new Pid API
  • Merge branch 'master' into test-bad-integral-bounds
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Specifying div-by-zero test, adding other integral term tests
  • Merge branch 'test-bad-integral-bounds' into fix-PID-unbounded-i_error
  • Adding test to expose Pid class zero-division vulnerability
  • If the user did not want integral control and set i_gain to zero, then dividing by i_gain would set i_error to NaN. This is not desired. Instead, replace the use of division to create i_term with direct integration of i_term. Replace private member i_error with i_term. In getCurrentPIDErrors() create & return i_error with the same old meaning and units. NOTE: i_error is not needed internally anywhere else.
  • Cleaning up documentation, making argument names in function declaration match those in the implementation
  • adding doxygen deprecation flags
  • Fixing documentation
  • Merging changes from other branch
  • Adding conventional PID computation
  • Fixing inconsistent formatting, and reducing some duplicated code
  • remove .svn folder
  • move control_toolbox into ros_control
  • Contributors: Adolfo Rodriguez Tsouroukdissian, Austin Hendrix, Bob Holmberg, Jonathan Bohren, Wim Meeussen, wmeeusse

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged control_toolbox at Robotics Stack Exchange