Skip to content

[Discussion] preparing migration to BehaviorTree.CPP 4.x #4059

@facontidavide

Description

@facontidavide

Hi,

I would like to help to migrate Nav2 to BT.CPP 4.x before the release of ROS J.

I am playing with it and... it compiles on my machine (that is a start!)

Few initial thoughts:

  1. Very stupid question first: does the main compile only in Rolling?

  2. Some methods in BT.CPP are now [[nodiscard]] (modern c++, yay) . The changes to address that can be merged earlier and are backward compatible with BT.CPP 3.8 : [behavior_tree] support both ports and blackboard #4060

  3. I see that Nav2 broadly use "hard-coded" access to the blackboard, basically skipping the entire InputPort and OutputPort, Subtree remapping, mechanism (that exists for a reason). I would love to discuss in the next community meeting how to address this bad practice. I will try to write a small article about why and how that can be solved the next week.

  4. I need to improve the automated XML converter to upgrade from version 3.X tyo 4.X here. Hopefully, that should takle care of most of the migration pain for many users.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions