Package Summary

Tags No category tags.
Version 1.0.9
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-04-18
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

AS2 behavior trees

Additional Links

No additional links.

Maintainers

  • CVAR-UPM

Authors

No additional 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

Changelog for package as2_behavior_tree

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged as2_behavior_tree at Robotics Stack Exchange