Skip to content

Conversation

@marip8
Copy link
Contributor

@marip8 marip8 commented May 28, 2025

This PR updates the task composer plugin factory class to:

  • provide access to the names of all the known plugins.
  • default-construct task and executor plugins
  • load task and executor plugins when only the name is provided (i.e., no configuration information).
    • Previously, the plugin factory class would return an error if no configuration information had been given to the factory. With this change, the plugin gets default-constructed if no plugin information is provided.

Together, these changes support applications that need to introspect the plugins available to the loader and to load plugins without any configuration information, such as a GUI for constructing task composer graphs.

@marip8 marip8 requested a review from Levi-Armstrong May 28, 2025 21:17
const auto& executor_plugin_info = impl_->executor_plugin_info;
auto cm_it = executor_plugin_info.plugins.find(name);
if (cm_it == executor_plugin_info.plugins.end())
try
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only concern with this change is that the plugins are not intended to be reconfigurable after being created which can lead to incorrect usage. Instead what if this method generated a meta package (which needs to be defined) that this function produces. Once option I explored in the past was leveraging a yaml file which include this information which could also be used for the yaml editor in tesseract_qt.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is the schema I was exploring at the time. I think it would be good to discuss a little more because this could benefit all plugins throughout tesseract.

https://github.com/tesseract-robotics/tesseract_planning/blob/master/tesseract_task_composer/config/task_composer_plugins.yaml.schema

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