Skip to content
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

Separate triggering of "load", "configure", and "start" of controllers #270

Closed
destogl opened this issue Dec 15, 2020 · 0 comments · Fixed by #272
Closed

Separate triggering of "load", "configure", and "start" of controllers #270

destogl opened this issue Dec 15, 2020 · 0 comments · Fixed by #272

Comments

@destogl
Copy link
Member

destogl commented Dec 15, 2020

Using LifecycleNode's states there are three stages of starting a controller:

  • Load: loads controller's plugin
  • Configure: read parameters and initialize publishers/subscribers
  • Start: Start controller

In ROS1, load and configure functionalities were executed in one step. So, if one wanted to start a controller with custom parameters on run-time, they were set before loading it on the parameter-server.
ROS2 does not allow to set parameters in a namespace of a non-existing node, therefore load and configure steps have to be separated. So, if one wants to set custom parameters on run-time (without using launch files) they have to, load the controller, set the parameter, and then configure it.

Bundling configure and start sages is not suitable for cases where on-the-fl" controllers-switching is used. First, this would slow down the starting process, and second, a controller configuration step could fail leaving a robot "uncontrolled".

For convenience, bundling services are provided:

  • "load_and_configure"
  • "load_and_start": executing all three steps

PRs #234 and #246 try to address this issue by bundling the stages. For details see discussions in them.
The issue "replaces" #168

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 a pull request may close this issue.

1 participant