-
Notifications
You must be signed in to change notification settings - Fork 4
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
Revamp Callback Groups #92
Conversation
I noticed the following issues when testing on
Note that I no longer noticed dropped watchdog messages or jerky/slow controller, so we are moving in the right direction :) |
59ad4cf
to
42da1a5
Compare
Issue |
The issues observed above, both |
Tested on I did test it with screen capture going on in parallel, and we still see jerky controller movements. That is documented in #95. |
Description
Recommended Reading: ROS2 tutorial on Executors, ROS2 tutorial on Callback Groups.
In service of #62 . Paired with ada_ros2#20.
Before PR #90 , all callbacks were in the same mutually exclusive callback group, which means only one could be running at a time. This sometimes resulted in watchdog messages being dropped on
lovelace
while a service call was active (Issue #63 ). PR #90 changed this to put all callbacks into a Reentrant Callback Group. However, this had the following issues:t0b1
andlovelace
, due to the high CPU load the controller (which is running on the same computer) sometimes resulted in very jerky movements.This PR addresses the above issues by revamping callback groups in the following way:
Testing procedure
t0b1
andlovelace
, run all actions, at least twice each, and ensure that there is no wierdness in having callbacks get called.Before opening a pull request
python3 -m black .
ada_feeding
directory, run:pylint --recursive=y --rcfile=.pylintrc .
.Before Merging
Squash & Merge