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

Guidance Plugin management for non required plugins leaves plugins in inactive state #2383

Open
adev4a opened this issue May 12, 2024 · 0 comments
Labels
anomaly Something isn't working

Comments

@adev4a
Copy link
Contributor

adev4a commented May 12, 2024

Summary

Guidance plugins marked only as ros2_initial_plugins are not activated by the guidance subsystem controller.

The timer for publishing discovery messages in defined in the plugin_base_node

discovery_timer_ = create_timer(

This timer is defined to override the node lifecycle and start publishing as soon as the node is initialized

if (!plugin_discovery_pub_) // If the publisher has not been initalized then initialize it.
.

The guidance subsystem then subscribes to the plugin discovery topic and if the plugin does not exist in the managed plugins list, it creates a new entry for the plugin with the user_requested_activation_ field set to False.

Entry plugin(msg->available, msg->activated, msg->name, msg->type, msg->capability, false, false); //is_ros1 flag is updated appropriately in add_plugin

This means that any plugin that is added to the list only through means of this discovery are marked for not running through the activation transition. Leaving them in the inactive state

When these plugins are marked as required, they are manually added to the plugin_manager maintained list before the discovery callback (while configuring the plugin manager) - where the entries are created with the user_requested_activation field set to true.
Meaning that in case the plugins will be activated by the guidance subsystem.

The behavior as currently defined causes ros2 lifecycle plugins that are not required (Not essential for normal operation) to not be activated unless the user manually calls for this transition. So the plugins stay in inactive state. This functionality supports cases where we want to use externally managed plugins that don't need to be managed.

Commit

Develop

Expected Behavior

All lifecycle nodes being launched in the system are being managed to activation.

Actual Behavior

Guidance Plugins defined as lifecycle nodes will not be activated unless they are added as required plugins.

Steps to Reproduce the Actual Behavior

  1. Add a non-required ros2 lifecycle based plugin (like platoon_control) to "ros2_initial_plugins" list
  2. Start carma
  3. Check lifecycle state of platoon_control node after waiting for carma nodes to be initialized

Related Work

No response

@adev4a adev4a added the anomaly Something isn't working label May 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
anomaly Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant