-
Notifications
You must be signed in to change notification settings - Fork 380
[Diagnostics] Add diagnostics of execution time and periodicity of the controllers and controller_manager #1871
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
Merged
bmagyar
merged 43 commits into
ros-controls:master
from
pal-robotics-forks:add/statistics/diagnostics
Dec 3, 2024
Merged
Changes from 40 commits
Commits
Show all changes
43 commits
Select commit
Hold shift + click to select a range
15b3377
add MovingAverageStatistics to ControllerSpec
saikishor b6eb1d4
Use `ControllerUpdateStatus` object to return trigger_update status w…
saikishor c25866e
add stats of execution time and the periodicity of the controllers
saikishor 66135e6
Add periodicity stats to the controller manager
saikishor 6531ab2
update the diagnostics of the controller manager with periodicity inf…
saikishor 348b590
make execution time in the ControllerUpdateStatus optional for async …
saikishor 8129cf0
adapt periodicity statistics for async controllers
saikishor e873706
Add controller statistics diagnostics
saikishor 1a57fdf
use current trigger time from AsyncFunctionHandler to calculate the r…
saikishor eae02c1
Update the logic to use the period from ControllerUpdateStatus
saikishor 2856a29
Only publish the diagnostics stats for the active controllers
saikishor be64141
fix CM periodicity stat
saikishor 2c77713
Fix the tests by initializing the pointers on construction
saikishor b1ad07e
Don't add the initial periodicity upon activation
saikishor 9e45ce0
set the first update period to zero and do not count for periodicity
saikishor 62f5832
pass current_time to the trigger_update method
saikishor 6e9be7d
Fix the test and add tests of the statistics
saikishor 02eb08d
Add some reasonable checks about the execution time
saikishor f13289a
Add more statistics tests
saikishor 186b5ff
Publish periodicity only if it is an async controller
saikishor 0d5b4e8
Add an initial way to retrieve threshold parameters from paramserver
saikishor a9fa9ab
Don't use const reference as it is going to be changed in different t…
saikishor cad7a74
Update async test to check if the first period is set to zero or not
saikishor 3f9f9eb
Update the tests to also check for the Min and Max of the periodicity
saikishor 5969df7
Add tests to check for the async update with different rate with stats
saikishor 9ba1f50
Add first version of the statistics information
saikishor 3f5faad
use the direct error and std dev instead of the percentage way
saikishor d22e206
Change the parameter to mean_error
saikishor 853abe7
Apply the statistics to the controller manager periodicity
saikishor 615ccc6
Use from a variable instead of calling methods everytime
saikishor cb00998
add first version of the documentation
saikishor aee43bd
Update documentation
saikishor 973decc
Add first version of the GPL configuration
saikishor 8d65eb3
Use forward declaration for ParamListener
saikishor 8d2a9c0
Use parameters from the GPL library
saikishor a125ba8
Add validators to the parameters
saikishor ccf482c
Add hardware_components_initial_state parameters to GPL
saikishor 33d531f
Use hardware_components_initial_state parameters from the GPL directly
saikishor 2af19ea
Add parameters_context.yaml and move parameters documentation
saikishor faf9c75
Fix hardware management service tests
saikishor 91f549a
Add suggestions from code review
saikishor de5d617
Merge branch 'master' into add/statistics/diagnostics
saikishor 18e67f6
Rename the variable `ok` to `successful` and add documentation
saikishor File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| hardware_components_initial_state: | | ||
| Map of parameters for controlled lifecycle management of hardware components. | ||
| The names of the components are defined as attribute of ``<ros2_control>``-tag in ``robot_description``. | ||
| Hardware components found in ``robot_description``, but without explicit state definition will be immediately activated. | ||
| Detailed explanation of each parameter is given below. | ||
| The full structure of the map is given in the following example: | ||
|
|
||
| .. code-block:: yaml | ||
|
|
||
| hardware_components_initial_state: | ||
| unconfigured: | ||
| - "arm1" | ||
| - "arm2" | ||
| inactive: | ||
| - "base3" | ||
|
|
||
| diagnostics.threshold.controllers.periodicity: | | ||
| The ``periodicity`` diagnostics will be published only for the asynchronous controllers, because any affect to the synchronous controllers will be reflected directly in the controller manager's periodicity. | ||
|
|
||
| diagnostics.threshold.controllers.execution_time: | | ||
| The ``execution_time`` diagnostics will be published for all controllers. The ``mean_error`` for a synchronous controller will be computed against zero, as it should be as low as possible. However, the ``mean_error`` for an asynchronous controller will be computed against the controller's desired update period, as the controller can take a maximum of the desired period cycle to execute it's update cycle. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.