Skip to content

Pluginize nav2_bt_navigator #3335

@redvinaa

Description

@redvinaa

Feature request

Feature description

I'm planning to extend the bt_navigator package to be plugin based, after the discussion on Discourse. The navigators would be plugins, loaded into the bt_navigator node at runtime. This would make it easier to write new navigators in the case of custom behavior trees needing parameters different than the NavigateToPose or NavigateThroughPoses actions.

Implementation considerations

As the other plugin-based packages, the implementation would use the pluginlib library. As for the base class, it's a question to be answered. The navigator base class currently used for the navigators is actually a class template (the template type is the type of the action server that the navigator implements), which cannot be used as a base class as is.

A possible solution would be to separate the action server from the behavior tree engine, and only include the latter in the plugins' base class, although I understand the best would be to include both. @SteveMacenski do you have a better idea how to implement this?

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