-
Notifications
You must be signed in to change notification settings - Fork 76
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
Create option for automatic bringup of lifecycle nodes in launch_ros API #418
Comments
This would be an excellent addition. Do you have any bandwidth to work on it right now? Alternatively does it make sense to discuss at the PMC meeting? |
I’m already traveling for ROSCon / ROSI and board meetings, so I won’t be able to work on this for at least a month. I’m reporting as a ‘nice to have’ enhancement that’s come up in discussions in the Nav2 community enough times now I figure it has general community interest. Maybe in December I could take a look, but if someone else has interest and capacity, I’m happy to hand it off. |
@mjcarroll I'm looking at this again and could use some advise as to how to go about it. I'm seeing that the lifecycle node creates a service client and creates an event handler to change on transition when an event is emitted [1]. I'm tracing that this is what is called when I do something like this and using the end-user Well there's this neat service client already located conveniently inside of
Which (if any) do you think is the right move? [1] https://github.com/ros2/launch_ros/blob/rolling/launch_ros/launch_ros/actions/lifecycle_node.py#L156-L163 More journaling: the next thing that I need to figure out is how to add and handle the As far as I can tell:
Anything obvious I'm missing there? |
Journaling a bit at this point (leaving breadcrumbs should I or someone else need to do something like this again): Adding in the new field was easy, from the bullet list 1-4. That was solved / as straight forward as I expected. I'm working on adding the autotransition using |
PR #430 implements for Design Considerations - Composition Node Auto-BringupThe crux of the issue is two fold: (1) the composable node is not an action, so there's no So, I think it would make sense to make the composable node a full-fledged Action like the others, just not derived from the ExecuteProcess class. The considerable options from there that I can think of:
|
Continuing this afternoon - I'm just going to use my best judgement (would like this done before the holidays). I'm going with a lifecycle event manager utility that is used in the lifecycle node and component node 👍 I should have the PR updated to include composition nodes by EOD which will fully implement the feature |
Feature request
Feature description
Currently, transitioning up a lifecycle node can be done via an external node, lifecycle manager, or using Opaque functions with some rather nasty looking boilerplate with events. The event-based solution only works for
LifecycleNode
as that has the implementations for getting the states required. However, aComponentNode
can also be a lifecycle node and there is no way to my knowledge to perform lifecycle operations in launch_ros directly on theComponentNode
object.It would be nice if there was a
LifecycleNode
andComponentNode
field foractive_on_bringup
(or eq.) that incorporated this boilerplate to make this easier as many users of lifecycle nodes don't truly care to transition up and control the lifecycle of all their programs with such granularity. Defaultfalse
is good not to do it automatically unless specified, but this is a very common need that has alot of hacky solutions across the ecosystem.Implementation considerations
I don't think there are any unique implementation considerations.
The text was updated successfully, but these errors were encountered: