|
Package Summary
Tags | No category tags. |
Version | 1.1.2 |
License | BSD-3-Clause |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/aerostack2/aerostack2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-08-26 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- CVAR-UPM
Authors
as2_behavior_tree
This module is used to implement a ROS2 node that executes navigation Behavior Trees for navigation of drone systems. The behavior_trees
module uses the Behavior-Tree.CPP library for the core Behavior Tree processing.
The behavior_trees
module provides navigation-specific behavior tree nodes and a ROS2 node implementation and launchers. It uses nav2_behavior_tree C++ template class for easily integrating ROS2 actions and services into Behavior Trees,
Index
Installation
Dependencies:
sudo apt-get install ros-$ROS_DISTRO-behaviortree-cpp-v3
sudo apt-get install ros-$ROS_DISTRO-nav2-msgs
sudo apt-get install ros-$ROS_DISTRO-nav2-behavior-tree
You may also want to install Groot to build your own trees.
AeroStack2 BT Nodes
AeroStack2 offers a pull of predefined behavior nodes to build your own Behavior Tree.
Action
Show Actions
#### Arm Arms the drone. Input port is not intended to use by the user, but used because `nav2_behavior_tree` service action node implementation. Returns **SUCCESS** if service result is true. Otherwise, returns **FAILURE**. ![arm_bt.png](docs/imgs/arm_bt.png) | Port | In / Out | Description | | --- | --- | --- | | service_name | In | Service name which will be called. | #### Disarm Disarms the drone. Input port is not intended to use by the user, but used because `nav2_behavior_tree` service action node implementation. Returns **SUCCESS** if service result is true. Otherwise, returns **FAILURE**. ![disarm_bt.png](docs/imgs/disarm_bt.png) | Port | In / Out | Description | | --- | --- | --- | | service_name | In | Service name which will be called. | #### Echo Prints data getted by input port. Used for debugging purpouses. Always returns **SUCCESS** after echoing. ![echo_bt.png](docs/imgs/echo_bt.png) | Port | In / Out | Description | | --- | --- | --- | | data | In | String to be echoed. | #### FollowPath **TBD** #### GoTo Go to specified position with given maximum speed and yaw. Returns **SUCCESS** if action finishes successfully or cancelled. Returns **FAILURE** if action is aborted, goal is rejected or action server fails. While action is executing returns **RUNNING**. ![goto_bt.png](docs/imgs/goto_bt.png) | Port | In / Out | Description | | --- | --- | --- | | max_speed | In | Maximum speed in meters per second. | | pose | In | Goal pose in meters (e.g. `x;y;z`). | | yaw_angle | In | Yaw angle in radians. | | yaw_mode | In | Yaw mode (KEEP_YAW = 0; PATH_FACING = 1; FIXED_YAW = 2). | #### GoTo GPS Go to specified GPS position with given maximum speed and yaw. Returns **SUCCESS** if action finishes successfully or cancelled. Returns **FAILURE** if action is aborted, goal is rejected or action server fails. While action is executing returns **RUNNING**. ![goto_bt.png](docs/imgs/goto_gps_bt.png) | Port | In / Out | Description | | --- | --- | --- | | alittude | In | Altitude in meters. | | latitude | In | Latitude in degrees. | | longitude | In | Longitude in degrees. | | max_speed | In | Maximum speed in meters per second. | | yaw_angle | In | Yaw angle in radians. | | yaw_mode | In | Yaw mode (KEEP_YAW = 0; PATH_FACING = 1; FIXED_YAW = 2). | #### Land Land at current position with given speed. Returns **SUCCESS** if action finishes successfully or cancelled. Returns **FAILURE** if action is aborted, goal is rejected or action server fails. While action is executing returns **RUNNING**. ![land_bt.png](docs/imgs/land_bt.png) | Port | In / Out | Description | | --- | --- | --- | | speed | In | Land speed in meters per second. | #### Offboard Set offboard mode. Input port is not intended to use by the user, but used because `nav2_behavior_tree` service action node implementation. Returns **SUCCESS** if service result is true. Otherwise, returns **FAILURE**. ![offboard_bt.png](docs/imgs/offboard_bt.png) | Port | In / Out | Description | | --- | --- | --- | | service_name | In | Service name which will be called. | #### SendEvent Send event by topic. Always returns **SUCCESS** after sending the event. ![sendevent_bt.png](docs/imgs/sendevent_bt.png) | Port | In / Out | Description | | --- | --- | --- | | data | In | Data to send (string). | | topic_name | In | Topic name where data will be sent. | #### Takeoff Takeoff at current position with given height and speed. Returns **SUCCESS** if action finishes successfully or cancelled. Returns **FAILURE** if action is aborted, goal is rejected or action server fails. While action is executing returns **RUNNING**. ![takeoff_bt.png](docs/imgs/takeoff_bt.png) | Port | In / Out | Description | | --- | --- | --- | | height | In | Takeoff height in meters. | | speed | In | Takeoff speed in meters per second. |
Condition
Show Conditions
#### IsFlying Returns wheter the drone is flying or not. Returns **SUCCESS** is drone state is flying, otherwise returns **FAILURE**. ![isflying_bt.png](docs/imgs/isflying_bt.png)
Control
-
Decorator
Show Decorators
#### WaitForEvent Listens for event received in topic and outputs event msg content. Returns **SUCCESS** on first event received, until that returns **RUNNING**. ![waitforevent_bt.png](docs/imgs/waitforevent_bt.png) | Port | In / Out | Description | | --- | --- | --- | | topic_name | In | Topic name where event will be published. | | result | Out | Content of event msg. |
How to create new nodes?
Three steps: 1. Implement your BT Node. You might want to use Action and Service BT handlers. 2. Register your Node into the BT factory. 2. Create the XML definition with Groot and build your new tree.
Changelog for package as2_behavior_tree
1.1.2 (2024-08-22)
1.1.1 (2024-08-20)
1.1.0 (2024-08-08)
- [as2_behavior_tree] Use ament_lint
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, pariaspe
1.0.9 (2024-03-25)
1.0.8 (2024-02-12)
1.0.7 (2024-02-04)
- [refactor] format tests according with ament_lint_common() packages
- fix build warning
- Contributors: pariaspe
1.0.6 (2023-12-12)
- Takeoff and GoTo behavior renaming
- Contributors: Miguel Fernandez-Cortizas, pariaspe
1.0.5 (2023-11-08)
1.0.4 (2023-08-23)
1.0.3 (2023-08-22)
1.0.2 (2023-08-17)
- Merge pull request #292 from aerostack2/issue-289 Delete install_bt_dependencies.bash
- Delete install_bt_dependencies.bash Closes #289
- Merge pull request #235 from aerostack2/234-goto-bt-action-missing-frame [as2_behavior_tree] GoTo Bt action missing frame
- adding short sleep after takeoff
- adding earth frame
- Contributors: Javilinos, Miguel Fernandez-Cortizas, RPS98, Rafael P
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Repo | Deps |
---|---|---|
aerostack2 | github-aerostack2-aerostack2 |