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

cmake helper function and tool to auto generate TreeNodeModel xml files for groot #4903

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

ewak
Copy link
Contributor

@ewak ewak commented Feb 5, 2025


Basic Info

Info Please fill out this column
Ticket(s) this addresses (add tickets here #1)
Primary OS tested on Ubuntu
Robotic platform tested on laptop
Does this PR contain AI generated software? No

Description of contribution in a few bullet points

  • I added a generic tool and a cmake funciton to easily use it to auto generate TreeNodeModel xml files for groot.
  • I applied it to nav_behaviour_tree and opennav_docker_bt.

Description of documentation updates required from your changes

Description of how this change was tested


Future work that may be required in bullet points

For Maintainers:

  • Check that any new parameters added are updated in docs.nav2.org
  • Check that any significant change is added to the migration guide
  • Check that any new features OR changes to existing behaviors are reflected in the tuning guide
  • Check that any new functions have Doxygen added
  • Check that any new features have test coverage
  • Check that any new plugins is added to the plugins page
  • If BT Node, Additionally: add to BT's XML index of nodes for groot, BT package's readme table, and BT library lists

Use this to generate tree nodes file for
opennav_docking_bt

Signed-off-by: Mike Wake <[email protected]>
@ewak ewak marked this pull request as draft February 5, 2025 13:02
@ewak ewak force-pushed the feature/mw/bt_tree_node_generation branch from a751ee4 to 174bd73 Compare February 5, 2025 13:13
This cmake function takes care of generating
and installing TreeNodesModel xml file suitable for use
by groot.

Signed-off-by: Mike Wake <[email protected]>

sq
@ewak ewak force-pushed the feature/mw/bt_tree_node_generation branch from 174bd73 to 685dd25 Compare February 5, 2025 13:16
Copy link
Contributor

mergify bot commented Feb 5, 2025

@ewak, your PR has failed to build. Please check CI outputs and resolve issues.
You may need to rebase or pull in main due to API changes (or your contribution genuinely fails).

Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

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

Some other thoughts:

I remember chatting about this back when the plugins list for BT Navigator had the libraries stored in a similar way (as you've found here) that we weren't sure how to automatically update the groot XML in source as might be necessary for use. That way, we don't need to manually manage it ever again, it automatically updates on commit / merge.

Or, a GitHub Action job runs to run this over and if it detects a problem it fails the job to make a human make the update for their violating PR. Verification is less ideal than automation, but verification is still very useful.

DESTINATION share/${PROJECT_NAME}
)

#NOTE: Still using manually managed nav2_tree_nodes.xml in source directory
Copy link
Member

Choose a reason for hiding this comment

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

Should we though? If we removed this, what would be the workflow for using groot?

@@ -0,0 +1,28 @@
<root BTCPP_format="4">
Copy link
Member

Choose a reason for hiding this comment

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

Is the other Groot XML in the nav2_behavior_tree package not also needing an update?

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