You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Add a non-required ros2 lifecycle based plugin (like platoon_control) to "ros2_initial_plugins" list
Start carma
Check lifecycle state of platoon_control node after waiting for carma nodes to be initialized
Related Work
No response
The text was updated successfully, but these errors were encountered:
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
carma-platform/carma_guidance_plugins/src/plugin_base_node.cpp
Line 30 in 3a70d0b
This timer is defined to override the node lifecycle and start publishing as soon as the node is initialized
carma-platform/carma_guidance_plugins/src/plugin_base_node.cpp
Line 144 in 3a70d0b
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.
carma-platform/subsystem_controllers/src/guidance_controller/plugin_manager.cpp
Line 446 in 3a70d0b
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
carma-platform/subsystem_controllers/src/guidance_controller/plugin_manager.cpp
Line 243 in 3a70d0b
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
Related Work
No response
The text was updated successfully, but these errors were encountered: