Skip to content

Adding Lifecycle support for Bondcpp#64

Closed
SteveMacenski wants to merge 4 commits intoros:ros2from
SteveMacenski:lifecycle_support
Closed

Adding Lifecycle support for Bondcpp#64
SteveMacenski wants to merge 4 commits intoros:ros2from
SteveMacenski:lifecycle_support

Conversation

@SteveMacenski
Copy link
Copy Markdown
Member

@SteveMacenski SteveMacenski commented Jul 14, 2020

Motivated by a desire to have bond used in navigation2 where all the servers are lifecycle servers. I'm having the lifecycle manager (role to transition nodes up and down to given states) also collect bond information to make sure that the lifecycle nodes aren't just transitioning correctly but during run-time are functioning properly and reporting a heartbeat. This gives us high confidence that nothing has crashed that might be an important watchdog or something that could cause critical failures. I'd even recommend baking this into the normal nodes so that its batteries included.

Using interfaces implemented by both node types since there's no base class they share to cast into. I tried to template it first off (my preferred route) but that would involve templating all the SM stuff too which would be not very clean for a simple addition.

WIP: By the end of the week I'll make the navigation side application to make sure its working properly with lifecycle and normal nodes alike. No longer WIP, ready for review @dirk-thomas

Edit: ros-navigation/navigation2#1869 for reference

@SteveMacenski
Copy link
Copy Markdown
Member Author

SteveMacenski commented Jul 22, 2020

Also resolves an issue in the ROS2 port causing un-clean exits on shutdown (and general defensive programming).

@mikaelarguedas @dirk-thomas can I get a review?

This was referenced Jul 28, 2020
@SteveMacenski
Copy link
Copy Markdown
Member Author

#67 supersedes

@dirk-thomas
Copy link
Copy Markdown
Member

dirk-thomas commented Aug 20, 2020

@mikaelarguedas @dirk-thomas can I get a review?

The current maintainer of this package is @mjcarroll:

<maintainer email="michael@openrobotics.org">Michael Carroll</maintainer>

mjcarroll pushed a commit that referenced this pull request Sep 1, 2020
Supersedes #64 to:

* Enable lifecycle nodes in ROS2
* Fix ROS2 porting issues
* Fix ROS2 WaitUntilXYZ() functions with spins on nodes already spinning (requirement for this to work)
* Tested to be actually working now & integrated into Nav2
* No reduced capability
* Removes a number of crashing problems introduced in porting
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.

2 participants