Repository navigation
Examples for a robust PlanSys2: clients on the controller's node, no waits of their own - #66
Merged
Merged
Conversation
…waits of their own The controllers create their clients on their own node and spin it in a thread from the start. Their waits for PlanSys2 are gone: every call waits until its component is active; the greenhouse controller waits for all of PlanSys2 before loading its problem, as its world evolves from then on. The navigation performers wait up to 30 s for EasyNav and the BT Move node renews its EasyNav client while it waits. Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
…yNav's feedback The PlanSys2 clients bring their own answers: the controllers no longer spin their node in a thread for them, and those without callbacks of their own only call the clients from main. The patrolling controller subscribes to easynav_control and shows the navigation feedback every 2 s, served by spin_some in the loop of main, as an example of a controller with callbacks of its own. It is built only with EasyNav, as move_action_node. Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Part of a step-by-step bug-fixing plan towards PlanSys2 4.0.0, a robustness and reliability release. Sorry for all the notifications!
Hi PlanSys2 users,
The examples follow PlanSys2/ros2_planning_system#507 (part of PlanSys2/ros2_planning_system#505). The controllers create their clients on their own node. They need no executor for them, as the clients bring their own answers, so the controllers without callbacks of their own only call them from
main. The patrolling controller shows the navigation feedback of EasyNav every 2 s: its own subscription, served byspin_somein its loop. Their own waits for PlanSys2 are gone: every call waits until its component is active. The greenhouse controller waits for all of PlanSys2 before loading its problem, as its world starts evolving at that moment.The navigation performers wait up to 30 s for EasyNav (5 s before), and the BT
Movenode renews its EasyNav client while it waits. Started all at once, the examples failed when EasyNav came late. Depends on the PlanSys2 PR.