Skip to content

Task composer factory update#626

Open
marip8 wants to merge 3 commits into
tesseract-robotics:masterfrom
marip8:update/task-composer-factory-latest
Open

Task composer factory update#626
marip8 wants to merge 3 commits into
tesseract-robotics:masterfrom
marip8:update/task-composer-factory-latest

Conversation

@marip8

@marip8 marip8 commented May 28, 2025

Copy link
Copy Markdown
Contributor

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
Copy Markdown
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
Copy Markdown
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

@Levi-Armstrong

Copy link
Copy Markdown
Contributor

I ported the get available changes into a separate PR to get those in. #717

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