Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi switch #391

Merged
merged 34 commits into from
Nov 30, 2019
Merged

Conversation

jordan-palacios
Copy link
Member

See the original discussion here: pal-robotics-forks/ros_control2#5

@bmagyar
Copy link
Member

bmagyar commented Oct 21, 2019

@toliver perhaps someone from Shadow may want to chime in?

ControllerManager uses this function to wait for the result of the
doSwitch() before starting the new set of controllers
This way if it not set it will be the same behaviour as previous version
Copy link
Member

@bmagyar bmagyar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed an unrelated commit that shouldn't be on this PR (hence the force-push) but other than that this PR looks good for me.

I'd like to get some user-level documentation for this though, some simple example code which is explained but I think we can do that as follow-up work.

jordan-palacios and others added 2 commits November 26, 2019 09:36
Co-Authored-By: Bence Magyar <bence.magyar.robotics@gmail.com>
Co-Authored-By: Bence Magyar <bence.magyar.robotics@gmail.com>
@bmagyar bmagyar merged commit 10ff185 into ros-controls:melodic-devel Nov 30, 2019
nim65s pushed a commit to nim65s/robotpkg that referenced this pull request Mar 9, 2020
Changelog for package joint_limits_interface

0.17.0 (2020-02-24)
-------------------
* Use default member initializers
* Use braces for member initializers
* Replace boost with std
* Replace boost ptrs with std ptrs in documentation
* Prefer default member initializers
* Contributors: AbhinavSingh, Bence Magyar, Matt Reynolds

0.16.0 (2020-01-27)
-------------------
* Use more meaningful pair iterator names
* Use range-based for loops in joint_limits_interface
* Update dependencies
  - Dependencies needed to compile are <build_depend>
  - Dependencies used in public headers are <build_export_depend>
  - Dependencies needed to link or run are <exec_depend>
* Update package dependencies
* Remove liburdfdom-dev
* Add missing roscpp & rospy dependencies
* Remove rosunit test_depend from package.xml
* Prefer 0.0 for floating point literals
* Replace header guard with #pragma once
* joint_limits: use an open-loop policy for velocity staturation
  The feedback from the controller is way too slow to be used on an
  actual robot. A robot that had 15 rad.s^-2 on each wheel as
  an acceleration limit could not even reach 2 rad.s^-2
  This is in line with ros_controllers`%23 <https://github.com/ros-controls/ros_control/issues/23>`_
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Fix shadowed variables
* -Werror=overloaded-virtual and initialization of fields in constructor
* Contributors: Bence Magyar, Daniel Pinyol, Matt Reynolds, Paul Mathieu, Victor Lopez

Changelog for package hardware_interface

0.17.0 (2020-02-24)
-------------------
* Use default member initializers
* Use braces for member initializers
* Replace boost with std
* Replace boost::ptr_vector<T> with std::vector<T*>
* Contributors: AbhinavSingh, Bence Magyar, Matt Reynolds

0.16.0 (2020-01-27)
-------------------
* Use more meaningful pair iterator names
* Correct typo in interface_manager.h
  Co-Authored-By: Bence Magyar <bence.magyar.robotics@gmail.com>
* Use range-based for loops in hardware_interface
* Resolve Boost dependency issues
* Update dependencies
  - Dependencies needed to compile are <build_depend>
  - Dependencies used in public headers are <build_export_depend>
  - Dependencies needed to link or run are <exec_depend>
* Update package dependencies
* Remove rosunit test_depend from package.xml
* Use nullptr in tests
* Prefer nullptr for null pointers
* Replace header guard with #pragma once
* Extend joint mode interface
* Add torque sensor and absolute encoder support to transmissions and adjust tests
  Add pointer accessors for torque sensor and absoute position encoders
* Modified structures to have absolute encoder and torque sensor parameters
* Fix argument types to use enum
* hardware_interface: fix initialization order
* Created new hardware interface for switching between controller modes
* Remove unnecessary  rosunit/rostest dependencies
* Add missing Boost dependency
* Remove redundant rosconsole dependency
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Fix compiler warnings
  - Comment out unused parameters
  - Make some integer literals unsigned to avoid comparison between signed and unsigned
  - Remove unnecessary semicolons
  - Make const void return type to void
* Revert CMake include_directories as SYSTEM
* Fix shadowed variables
* Multi-update cycle mode switch (`%391 <https://github.com/ros-controls/ros_control/issues/391>`_)
  For more info: pal-robotics-forks/ros_control2#5
  * Added tests for ControllerManager update
  * Mocks for controllers and controller loader in update test
  * Divided in tests with and without controllers
  * Controller state initialized in mock
  * Moved mocks to test class
  * All tests using mock class
  * Test for multiple updates in a single controller
  * Added new switchResult() function to RobotHW interface
  ControllerManager uses this function to wait for the result of the
  doSwitch() before starting the new set of controllers
  * Using ranged based loops
  * Switch is now managed in a separate function
  * Option to start controllers as soon as their joints are ready after a switch
  * Tests for controller_interface API
  * Added new STOPPED, WAITING and ABORTED states to ControllerBase
  * Split manageSwitch() into smaller functions
  * Abort pending controllers in case of switch error
  * Changed default behaviour of new switch param
  This way if it not set it will be the same behaviour as previous version
  * Added timeout parameter to switch controller
  * Removed unnecessary includes
  * Using target_include_directories for the test
  * std::all_of instead of std::count_if
  * Deleted autogenerated file
  * Adapted tests to changes in controller_manager
  * Adapted python implementation to new parameters in SwitchController
  * Added missing parameter description docstring
  * Moved all parameters used for switching to a separate object
  * Moved error messages to controller_base
  * State check functions are now const
  * Removed unnecessary comments
  * Added constants for start_asap and timeout default parameters values
* Option to start controllers as soon as their joints are ready after a switch
* Switch is now managed in a separate function
* Added new switchResult() function to RobotHW interface
  ControllerManager uses this function to wait for the result of the
  doSwitch() before starting the new set of controllers
* Contributors: Bence Magyar, Dave Coleman, Hilario Tome, Jordan Palacios, Markus Vieth, Matt Reynolds, Paul Mathieu, Victor Lopez

Changelog for package controller_manager

0.17.0 (2020-02-24)
-------------------
* Use auto keyword
* Use default member initializers
* Replace boost with std
* Replace boost mutexes & locks with std
* Replace boost::bind with std::bind
* Contributors: AbhinavSingh, Bence Magyar, Matt Reynolds, suab321321

0.16.0 (2020-01-27)
-------------------
* Use range-based for loops in controller_manager
* Resolve Boost dependency issues
* Update dependencies
  - Dependencies needed to compile are <build_depend>
  - Dependencies used in public headers are <build_export_depend>
  - Dependencies needed to link or run are <exec_depend>
* Add ${catkin_EXPORTED_TARGETS} dependencies
* Update package dependencies
* Add missing roscpp & rospy dependencies
* Prefer nullptr for null pointers
* Replace header guard with #pragma once
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Fix build error in clang error: non-aggregate type 'std::vector' (aka 'vector >') cannot be initialized with an initializer list
* Multi-update cycle mode switch (`%391 <https://github.com/ros-controls/ros_control/issues/391>`_)
  For more info: pal-robotics-forks/ros_control2#5
  * Added tests for ControllerManager update
  * Mocks for controllers and controller loader in update test
  * Divided in tests with and without controllers
  * Controller state initialized in mock
  * Moved mocks to test class
  * All tests using mock class
  * Test for multiple updates in a single controller
  * Added new switchResult() function to RobotHW interface
  ControllerManager uses this function to wait for the result of the
  doSwitch() before starting the new set of controllers
  * Using ranged based loops
  * Switch is now managed in a separate function
  * Option to start controllers as soon as their joints are ready after a switch
  * Tests for controller_interface API
  * Added new STOPPED, WAITING and ABORTED states to ControllerBase
  * Split manageSwitch() into smaller functions
  * Abort pending controllers in case of switch error
  * Changed default behaviour of new switch param
  This way if it not set it will be the same behaviour as previous version
  * Added timeout parameter to switch controller
  * Removed unnecessary includes
  * Using target_include_directories for the test
  * std::all_of instead of std::count_if
  * Deleted autogenerated file
  * Adapted tests to changes in controller_manager
  * Adapted python implementation to new parameters in SwitchController
  * Added missing parameter description docstring
  * Moved all parameters used for switching to a separate object
  * Moved error messages to controller_base
  * State check functions are now const
  * Removed unnecessary comments
  * Added constants for start_asap and timeout default parameters values
* Remove extra {
* Adding Pal Robotics to copyright notice
  Co-Authored-By: Bence Magyar <bence.magyar.robotics@gmail.com>
* Added constants for start_asap and timeout default parameters values
* Moved error messages to controller_base
* Moved all parameters used for switching to a separate object
* Added missing parameter description docstring
* Adapted python implementation to new parameters in SwitchController
* Deleted autogenerated file
* std::all_of instead of std::count_if
* Cosmetics
* Fixed lincenses
* Removed unnecessary includes
* Added timeout parameter to switch controller
* Changed default behaviour of new switch param
  This way if it not set it will be the same behaviour as previous version
* Abort pending controllers in case of switch error
* Split manageSwitch() into smaller functions
* Added new STOPPED, WAITING and ABORTED states to ControllerBase
* Option to start controllers as soon as their joints are ready after a switch
* Switch is now managed in a separate function
* Using ranged based loops
* Added new switchResult() function to RobotHW interface
  ControllerManager uses this function to wait for the result of the
  doSwitch() before starting the new set of controllers
* Test for multiple updates in a single controller
* All tests using mock class
* Moved mocks to test class
* Controller state initialized in mock
* Divided in tests with and without controllers
* Mocks for controllers and controller loader in update test
* Added tests for ControllerManager update
* fix install destination (`%377 <https://github.com/ros-controls/ros_control/issues/377>`_)
* catch ROSInterruptException
* specify RUNTIME DESTINATION for libraries (`%373 <https://github.com/ros-controls/ros_control/issues/373>`_)
  needed for exporting DLLs on Windows
* use this_thread::sleep_for instead of usleep (`%375 <https://github.com/ros-controls/ros_control/issues/375>`_)
* remove unused pthread.h
* Contributors: Bence Magyar, Gérald Lelong, James Xu, Jordan Palacios, Matt Reynolds, Victor Lopez, jordan-palacios

0.15.1 (2018-09-30)
-------------------
* Updated for compatibility with Python2 or Python3
* Initialize controller_manager node using init_node.
* back to Python3 prints, add '-s to remaining places
* pep8 styling
* added quotes in python code too, also changed python prints to rosconsole
* added quotes for controller name and controller type in warnings and errors
* Contributors: Daniel Ingram, Jasper Güldenstein, Stefan Profanter, Gennaro Raiola, Bence Magyar

Changelog for package combined_robot_hw

0.17.0 (2020-02-24)
-------------------
* Use auto keyword
* Use default member initializers
* Improve controller and resource filtering for CombinedRobotHW
* Prefer default member initializers
* Contributors: AbhinavSingh, Bence Magyar, Matt Reynolds, Toni Oliver

0.16.0 (2020-01-27)
-------------------
* Use range-based for loop
* Update dependencies
  - Dependencies needed to compile are <build_depend>
  - Dependencies used in public headers are <build_export_depend>
  - Dependencies needed to link or run are <exec_depend>
* Use #pragma once
* Replace header guard with #pragma once
* Remove unused Boost dependencies
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Fix build error in clang error: non-aggregate type 'std::vector' (aka 'vector >') cannot be initialized with an initializer list
* fix install destination
* specify RUNTIME DESTINATION for libraries needed for exporting DLLs on Windows
* Contributors: Bence Magyar, James Xu, Matt Reynolds, Victor Lopez

Changelog for package transmission_interface

0.17.0 (2020-02-24)
-------------------
* Use default member initializers
* Use braces for member initializers
* Replace boost with std
* Replace boost ptrs with std ptrs in documentation
* Replace boost::lexical_cast<double> with std::stod
* Prefer default member initializers
* Use auto
* Contributors: AbhinavSingh, Bence Magyar, Matt Reynolds

0.16.0 (2020-01-27)
-------------------
* Use more meaningful pair iterator names
* Use range-based for loops in transmission_interface
* Resolve Boost dependency issues
* Update dependencies
  - Dependencies needed to compile are <build_depend>
  - Dependencies used in public headers are <build_export_depend>
  - Dependencies needed to link or run are <exec_depend>
* Update package dependencies
* Remove rosunit test_depend from package.xml
* Prefer nullptr for null pointers
  Use #pragma once
* Add missing header guard to loader_utils.h
* Replace header guard with #pragma once
* Add torque sensor and absolute encoder support to transmissions and adjust tests
  Add pointer accessors for torque sensor and absoute position encoders
* Modified structures to have absolute encoder and torque sensor parameters
* Fix transmission_interface dependencies
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Fix compiler warnings
  - Comment out unused parameters
  - Make some integer literals unsigned to avoid comparison between signed and unsigned
  - Remove unnecessary semicolons
  - Make const void return type to void
* Fix build error in clang
  error: non-aggregate type 'std::vector' (aka 'vector >') cannot be initialized with an initializer list
* Fix typo in docs
* TransmissionParser private -> protected
* fix install destination (`%377 <https://github.com/ros-controls/ros_control/issues/377>`_)
* Contributors: Bence Magyar, Gennaro Raiola, Hilario Tome, James Xu, Markus Vieth, Matt Reynolds, Victor Lopez

Changelog for package controller_manager_msgs

0.16.0 (2020-01-27)
-------------------
* Update package dependencies
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Fix exception module
* Contributors: Bence Magyar, Jordan Palacios, Matt Reynolds, Ryohei Ueda

Changelog for package controller_interface

0.17.0 (2020-02-24)
-------------------
* Use default member initializers
* Prefer default member initializers
* Contributors: Bence Magyar, Matt Reynolds

0.16.0 (2020-01-27)
-------------------
* Update dependencies
  - Dependencies needed to compile are <build_depend>
  - Dependencies used in public headers are <build_export_depend>
  - Dependencies needed to link or run are <exec_depend>
* Replace header guard with #pragma once
* Remove unnecessary  rosunit/rostest dependencies
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Multi-update cycle mode switch (`%391 <https://github.com/ros-controls/ros_control/issues/391>`_)
  For more info: pal-robotics-forks/ros_control2#5
  * Added tests for ControllerManager update
  * Mocks for controllers and controller loader in update test
  * Divided in tests with and without controllers
  * Controller state initialized in mock
  * Moved mocks to test class
  * All tests using mock class
  * Test for multiple updates in a single controller
  * Added new switchResult() function to RobotHW interface
  ControllerManager uses this function to wait for the result of the
  doSwitch() before starting the new set of controllers
  * Using ranged based loops
  * Switch is now managed in a separate function
  * Option to start controllers as soon as their joints are ready after a switch
  * Tests for controller_interface API
  * Added new STOPPED, WAITING and ABORTED states to ControllerBase
  * Split manageSwitch() into smaller functions
  * Abort pending controllers in case of switch error
  * Changed default behaviour of new switch param
  This way if it not set it will be the same behaviour as previous version
  * Added timeout parameter to switch controller
  * Removed unnecessary includes
  * Using target_include_directories for the test
  * std::all_of instead of std::count_if
  * Deleted autogenerated file
  * Adapted tests to changes in controller_manager
  * Adapted python implementation to new parameters in SwitchController
  * Added missing parameter description docstring
  * Moved all parameters used for switching to a separate object
  * Moved error messages to controller_base
  * State check functions are now const
  * Removed unnecessary comments
  * Added constants for start_asap and timeout default parameters values
* Removed unnecessary comments
* State check functions are now const
* Moved error messages to controller_base
* Using target_include_directories for the test
* Fixed lincenses
* Removed unnecessary includes
* Abort pending controllers in case of switch error
* Added new STOPPED, WAITING and ABORTED states to ControllerBase
* Tests for controller_interface API
* Contributors: Bence Magyar, Jordan Palacios, Matt Reynolds, jordan-palacios

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_controller_manager
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.17.0 (2020-02-24)
-------------------
* added missing controller state: 'initialised'
* Contributors: ThibaultRouillard

0.16.0 (2020-01-27)
-------------------
* Update package dependencies
* Add missing roscpp & rospy dependencies
* Update package.xml descriptions
* Apply consistent style to CMakeLists.txt files
* Apply consistent style to package.xml files
* Contributors: Bence Magyar, Matt Reynolds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants