-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
Description
Feature request
Related to #1928 (comment)
Feature description
- A generic application server that people can use to build their specific autonomy applications.
- It loads and executes BT and provides an interface as an action server.
- This makes it easy to provide an action with a user-defined BT.
- A module for mapping from BT to Action (like BtActionNode mapping from Action to
BT::ActionNodeBase) - It is similar to BtNavigator, but it applies to general actions.
Implementation considerations
plan A: template
- class name: BtApplicationServer
- Inherit:
nav2_util::LifecycleNode - Template arg: Action type (
ActionT) - Key functions:
- Create action server (
nav2_util::SimpleActionServer<ActionT>) - Load BT from file specified by goal
- Provide the interfaces below
on_initialize_blackboard: Initialize blackboard (ex. Set goals)on_bt_loop; Publish feedback by action serveron_bt_shutdown: Return result by action server
- Create action server (
- Constraints:
ActionT::Goalmust havestring bt_xml_filename
plan B: generic action
- Inherit:
nav2_util::LifecycleNode - Key functions:
- Create action server (
nav2_util::SimpleActionServer<PerformTask>) - Load BT from file specified by goal
- Provide generic feedback and result.
- Create action server (
- Constraints:
PerformTask::Goalmust havestring bt_xml_filenamePerformTask::Goalmust have something likeSomething[] ports
plan A vs. plan B
- plan A
- The user implements a BT, and extend
BtApplicationServer<ActionT>to create their own application classes and implement some methods. - Custom feedbacks and results can be handled.
- The user implements a BT, and extend
- plan B
- The user implements a BT only.
Reactions are currently unavailable