Skip to content

Behavior Tree Node Reference

Here is an extensive list of all behavior tree nodes that are available out of the box after installing AutoAPMS inside your workspace.

We also include the documentation of those nodes that natively come with BehaviorTree.CPP so you have a better overview.

There's a C++ node model class available for all of the registration names mentioned below. You can include them like so:

cpp
#include "auto_apms_behavior_tree/behavior_tree_nodes.hpp"
namespace standard_node_models = auto_apms_behavior_tree::model;

#include "auto_apms_simulation/behavior_tree_nodes.hpp"
namespace simulation_node_models = auto_apms_simulation::model;

#include "auto_apms_px4/behavior_tree_nodes.hpp"
namespace px4_node_models = auto_apms_px4::model;

Overview

Registration NameClass NamePackage
AlwaysFailureauto_apms_behavior_tree (BehaviorTree.CPP)
AlwaysSuccessauto_apms_behavior_tree (BehaviorTree.CPP)
AsyncFallbackauto_apms_behavior_tree (BehaviorTree.CPP)
AsyncSequenceauto_apms_behavior_tree (BehaviorTree.CPP)
Delayauto_apms_behavior_tree (BehaviorTree.CPP)
Fallbackauto_apms_behavior_tree (BehaviorTree.CPP)
ForceFailureauto_apms_behavior_tree (BehaviorTree.CPP)
ForceSuccessauto_apms_behavior_tree (BehaviorTree.CPP)
IfThenElseauto_apms_behavior_tree (BehaviorTree.CPP)
Inverterauto_apms_behavior_tree (BehaviorTree.CPP)
KeepRunningUntilFailureauto_apms_behavior_tree (BehaviorTree.CPP)
LoopBoolauto_apms_behavior_tree (BehaviorTree.CPP)
LoopDoubleauto_apms_behavior_tree (BehaviorTree.CPP)
LoopIntauto_apms_behavior_tree (BehaviorTree.CPP)
LoopStringauto_apms_behavior_tree (BehaviorTree.CPP)
Parallelauto_apms_behavior_tree (BehaviorTree.CPP)
ParallelAllauto_apms_behavior_tree (BehaviorTree.CPP)
Preconditionauto_apms_behavior_tree (BehaviorTree.CPP)
ReactiveFallbackauto_apms_behavior_tree (BehaviorTree.CPP)
ReactiveSequenceauto_apms_behavior_tree (BehaviorTree.CPP)
Repeatauto_apms_behavior_tree (BehaviorTree.CPP)
RetryUntilSuccessfulauto_apms_behavior_tree (BehaviorTree.CPP)
RunOnceauto_apms_behavior_tree (BehaviorTree.CPP)
Scriptauto_apms_behavior_tree (BehaviorTree.CPP)
ScriptConditionauto_apms_behavior_tree (BehaviorTree.CPP)
Sequenceauto_apms_behavior_tree (BehaviorTree.CPP)
SequenceWithMemoryauto_apms_behavior_tree (BehaviorTree.CPP)
SetBlackboardauto_apms_behavior_tree (BehaviorTree.CPP)
SkipUnlessUpdatedauto_apms_behavior_tree (BehaviorTree.CPP)
Sleepauto_apms_behavior_tree (BehaviorTree.CPP)
SubTreeauto_apms_behavior_tree (BehaviorTree.CPP)
Switch2auto_apms_behavior_tree (BehaviorTree.CPP)
Switch3auto_apms_behavior_tree (BehaviorTree.CPP)
Switch4auto_apms_behavior_tree (BehaviorTree.CPP)
Switch5auto_apms_behavior_tree (BehaviorTree.CPP)
Switch6auto_apms_behavior_tree (BehaviorTree.CPP)
Timeoutauto_apms_behavior_tree (BehaviorTree.CPP)
UnsetBlackboardauto_apms_behavior_tree (BehaviorTree.CPP)
WaitValueUpdateauto_apms_behavior_tree (BehaviorTree.CPP)
WasEntryUpdatedauto_apms_behavior_tree (BehaviorTree.CPP)
WhileDoElseauto_apms_behavior_tree (BehaviorTree.CPP)
Errorauto_apms_behavior_tree::ThrowExceptionauto_apms_behavior_tree
GetParameterauto_apms_behavior_tree::GetParameterauto_apms_behavior_tree
GetParameterBoolauto_apms_behavior_tree::GetParameterBoolauto_apms_behavior_tree
GetParameterBoolVecauto_apms_behavior_tree::GetParameterBoolVecauto_apms_behavior_tree
GetParameterByteVecauto_apms_behavior_tree::GetParameterByteVecauto_apms_behavior_tree
GetParameterDoubleauto_apms_behavior_tree::GetParameterDoubleauto_apms_behavior_tree
GetParameterDoubleVecauto_apms_behavior_tree::GetParameterDoubleVecauto_apms_behavior_tree
GetParameterIntauto_apms_behavior_tree::GetParameterIntauto_apms_behavior_tree
GetParameterIntVecauto_apms_behavior_tree::GetParameterIntVecauto_apms_behavior_tree
GetParameterStringauto_apms_behavior_tree::GetParameterStringauto_apms_behavior_tree
GetParameterStringVecauto_apms_behavior_tree::GetParameterStringVecauto_apms_behavior_tree
HaltExecutorauto_apms_behavior_tree::HaltExecutorauto_apms_behavior_tree
HasParameterauto_apms_behavior_tree::HasParameterauto_apms_behavior_tree
Loggerauto_apms_behavior_tree::Loggerauto_apms_behavior_tree
PauseExecutorauto_apms_behavior_tree::PauseExecutorauto_apms_behavior_tree
ResumeExecutorauto_apms_behavior_tree::ResumeExecutorauto_apms_behavior_tree
SetParameterauto_apms_behavior_tree::SetParameterauto_apms_behavior_tree
SetParameterBoolauto_apms_behavior_tree::SetParameterBoolauto_apms_behavior_tree
SetParameterBoolVecauto_apms_behavior_tree::SetParameterBoolVecauto_apms_behavior_tree
SetParameterByteVecauto_apms_behavior_tree::SetParameterByteVecauto_apms_behavior_tree
SetParameterDoubleauto_apms_behavior_tree::SetParameterDoubleauto_apms_behavior_tree
SetParameterDoubleVecauto_apms_behavior_tree::SetParameterDoubleVecauto_apms_behavior_tree
SetParameterIntauto_apms_behavior_tree::SetParameterIntauto_apms_behavior_tree
SetParameterIntVecauto_apms_behavior_tree::SetParameterIntVecauto_apms_behavior_tree
SetParameterStringauto_apms_behavior_tree::SetParameterStringauto_apms_behavior_tree
SetParameterStringVecauto_apms_behavior_tree::SetParameterStringVecauto_apms_behavior_tree
StartExecutorauto_apms_behavior_tree::StartExecutorauto_apms_behavior_tree
TerminateExecutorauto_apms_behavior_tree::TerminateExecutorauto_apms_behavior_tree
GetRobotStateauto_apms_simulation::GetRobotStateauto_apms_simulation
IsLocationOccupiedauto_apms_simulation::IsLocationOccupiedauto_apms_simulation
NavigateToLocationauto_apms_simulation::NavigateToLocationauto_apms_simulation
PickObjectauto_apms_simulation::PickObjectauto_apms_simulation
PlaceObjectauto_apms_simulation::PlaceObjectauto_apms_simulation
RobotSharesCurrentLocationauto_apms_simulation::RobotSharesCurrentLocationauto_apms_simulation
SetLocationStateauto_apms_simulation::SetLocationStateauto_apms_simulation
Armauto_apms_px4::ArmActionauto_apms_px4
Disarmauto_apms_px4::DisarmActionauto_apms_px4
EnableHoldauto_apms_px4::EnableHoldActionauto_apms_px4
GoToauto_apms_px4::GoToActionauto_apms_px4
GoToVectorauto_apms_px4::GoToActionauto_apms_px4
Landauto_apms_px4::LandActionauto_apms_px4
Missionauto_apms_px4::MissionActionauto_apms_px4
RTLauto_apms_px4::RTLActionauto_apms_px4
ReadGlobalPositionauto_apms_px4::ReadGlobalPositionauto_apms_px4
Takeoffauto_apms_px4::TakeoffActionauto_apms_px4

auto_apms_behavior_tree (BehaviorTree.CPP)

AlwaysFailure

Class:

Node Type: Action

This node doesn't have any ports.

AlwaysSuccess

Class:

Node Type: Action

This node doesn't have any ports.

AsyncFallback

Class:

Node Type: Control

This node doesn't have any ports.

AsyncSequence

Class:

Node Type: Control

This node doesn't have any ports.

Delay

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
delay_msecunsigned intTick the child after a few milliseconds

Fallback

Class:

Node Type: Control

This node doesn't have any ports.

ForceFailure

Class:

Node Type: Decorator

This node doesn't have any ports.

ForceSuccess

Class:

Node Type: Decorator

This node doesn't have any ports.

IfThenElse

Class:

Node Type: Control

This node doesn't have any ports.

Inverter

Class:

Node Type: Decorator

This node doesn't have any ports.

KeepRunningUntilFailure

Class:

Node Type: Decorator

This node doesn't have any ports.

LoopBool

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
if_emptyBT::NodeStatusSUCCESSStatus to return if queue is empty: SUCCESS, FAILURE, SKIPPED

Output Ports

Output NameTypeDefault ValueDescription
valuebool

Bidirectional Ports

Port NameTypeDefault ValueDescription
queuestd::shared_ptr<std::deque<bool, std::allocator<bool> > >

LoopDouble

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
if_emptyBT::NodeStatusSUCCESSStatus to return if queue is empty: SUCCESS, FAILURE, SKIPPED

Output Ports

Output NameTypeDefault ValueDescription
valuedouble

Bidirectional Ports

Port NameTypeDefault ValueDescription
queuestd::shared_ptr<std::deque<double, std::allocator<double> > >

LoopInt

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
if_emptyBT::NodeStatusSUCCESSStatus to return if queue is empty: SUCCESS, FAILURE, SKIPPED

Output Ports

Output NameTypeDefault ValueDescription
valueint

Bidirectional Ports

Port NameTypeDefault ValueDescription
queuestd::shared_ptr<std::deque<int, std::allocator<int> > >

LoopString

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
if_emptyBT::NodeStatusSUCCESSStatus to return if queue is empty: SUCCESS, FAILURE, SKIPPED

Output Ports

Output NameTypeDefault ValueDescription
valuestd::string

Bidirectional Ports

Port NameTypeDefault ValueDescription
queuestd::shared_ptr<std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >

Parallel

Class:

Node Type: Control

Input Ports

Input NameTypeDefault ValueDescription
failure_countint1number of children that need to fail to trigger a FAILURE
success_countint-1number of children that need to succeed to trigger a SUCCESS

ParallelAll

Class:

Node Type: Control

Input Ports

Input NameTypeDefault ValueDescription
max_failuresint1If the number of children returning FAILURE exceeds this value, ParallelAll returns FAILURE

Precondition

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
elseBT::NodeStatusFAILUREReturn status if condition is false
ifstd::string

ReactiveFallback

Class:

Node Type: Control

This node doesn't have any ports.

ReactiveSequence

Class:

Node Type: Control

This node doesn't have any ports.

Repeat

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
num_cyclesintRepeat a successful child up to N times. Use -1 to create an infinite loop.

RetryUntilSuccessful

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
num_attemptsintExecute again a failing child up to N times. Use -1 to create an infinite loop.

RunOnce

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
then_skipbooltrueIf true, skip after the first execution, otherwise return the same NodeStatus returned once bu the child.

Script

Class:

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
codestd::stringPiece of code that can be parsed

ScriptCondition

Class:

Node Type: Condition

Input Ports

Input NameTypeDefault ValueDescription
codeBT::AnyTypeAllowedPiece of code that can be parsed. Must return false or true

Sequence

Class:

Node Type: Control

This node doesn't have any ports.

SequenceWithMemory

Class:

Node Type: Control

This node doesn't have any ports.

SetBlackboard

Class:

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
valueBT::AnyTypeAllowedValue to be written int othe output_key

Bidirectional Ports

Port NameTypeDefault ValueDescription
output_keyBT::AnyTypeAllowedName of the blackboard entry where the value should be written

SkipUnlessUpdated

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
entryBT::AnyEntry to check

Sleep

Class:

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
msecunsigned int

SubTree

Class:

Node Type: SubTree

Input Ports

Input NameTypeDefault ValueDescription
_autoremapboolfalseIf true, all the ports with the same name will be remapped

Switch2

Class:

Node Type: Control

Input Ports

Input NameTypeDefault ValueDescription
case_2std::string
case_1std::string
variablestd::string

Switch3

Class:

Node Type: Control

Input Ports

Input NameTypeDefault ValueDescription
case_3std::string
case_2std::string
case_1std::string
variablestd::string

Switch4

Class:

Node Type: Control

Input Ports

Input NameTypeDefault ValueDescription
case_4std::string
case_3std::string
case_2std::string
case_1std::string
variablestd::string

Switch5

Class:

Node Type: Control

Input Ports

Input NameTypeDefault ValueDescription
case_5std::string
case_4std::string
case_3std::string
case_2std::string
case_1std::string
variablestd::string

Switch6

Class:

Node Type: Control

Input Ports

Input NameTypeDefault ValueDescription
case_5std::string
case_4std::string
case_6std::string
case_3std::string
case_2std::string
case_1std::string
variablestd::string

Timeout

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
msecunsigned intAfter a certain amount of time, halt() the child if it is still running.

UnsetBlackboard

Class:

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
keystd::stringKey of the entry to remove

WaitValueUpdate

Class:

Node Type: Decorator

Input Ports

Input NameTypeDefault ValueDescription
entryBT::AnyEntry to check

WasEntryUpdated

Class:

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
entryBT::AnyEntry to check

WhileDoElse

Class:

Node Type: Control

This node doesn't have any ports.

auto_apms_behavior_tree

Error

Class: auto_apms_behavior_tree::ThrowException

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
messagestd::stringError message. Creates a generic error message if empty.

GetParameter

Class: auto_apms_behavior_tree::GetParameter

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valueBT::AnyTypeAllowedOutput port for the parameter's value.

GetParameterBool

Class: auto_apms_behavior_tree::GetParameterBool

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valueboolOutput port for the parameter's value.

GetParameterBoolVec

Class: auto_apms_behavior_tree::GetParameterBoolVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuestd::vector<bool, std::allocator<bool> >Output port for the parameter's value.

GetParameterByteVec

Class: auto_apms_behavior_tree::GetParameterByteVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuestd::vector<unsigned char, std::allocator<unsigned char> >Output port for the parameter's value.

GetParameterDouble

Class: auto_apms_behavior_tree::GetParameterDouble

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuedoubleOutput port for the parameter's value.

GetParameterDoubleVec

Class: auto_apms_behavior_tree::GetParameterDoubleVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuestd::vector<double, std::allocator<double> >Output port for the parameter's value.

GetParameterInt

Class: auto_apms_behavior_tree::GetParameterInt

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuelongOutput port for the parameter's value.

GetParameterIntVec

Class: auto_apms_behavior_tree::GetParameterIntVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuestd::vector<long, std::allocator<long> >Output port for the parameter's value.

GetParameterString

Class: auto_apms_behavior_tree::GetParameterString

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuestd::stringOutput port for the parameter's value.

GetParameterStringVec

Class: auto_apms_behavior_tree::GetParameterStringVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to get.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Output Ports

Output NameTypeDefault ValueDescription
valuestd::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >Output port for the parameter's value.

HaltExecutor

Class: auto_apms_behavior_tree::HaltExecutor

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
executorstd::stringName of the executor to command.

HasParameter

Class: auto_apms_behavior_tree::HasParameter

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

Logger

Class: auto_apms_behavior_tree::Logger

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
messageBT::AnyTypeAllowedMessage to be logged via rclcpp::Logger.
levelstd::stringINFOLogger level. Must be one of [UNSET, DEBUG, INFO, WARN, ERROR, FATAL] but is not case sensitive.

PauseExecutor

Class: auto_apms_behavior_tree::PauseExecutor

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
executorstd::stringName of the executor to command.

ResumeExecutor

Class: auto_apms_behavior_tree::ResumeExecutor

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
executorstd::stringName of the executor to command.

SetParameter

Class: auto_apms_behavior_tree::SetParameter

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valueBT::AnyTypeAllowedValue of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterBool

Class: auto_apms_behavior_tree::SetParameterBool

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valueboolValue of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterBoolVec

Class: auto_apms_behavior_tree::SetParameterBoolVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuestd::vector<bool, std::allocator<bool> >Value of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterByteVec

Class: auto_apms_behavior_tree::SetParameterByteVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuestd::vector<unsigned char, std::allocator<unsigned char> >Value of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterDouble

Class: auto_apms_behavior_tree::SetParameterDouble

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuedoubleValue of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterDoubleVec

Class: auto_apms_behavior_tree::SetParameterDoubleVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuestd::vector<double, std::allocator<double> >Value of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterInt

Class: auto_apms_behavior_tree::SetParameterInt

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuelongValue of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterIntVec

Class: auto_apms_behavior_tree::SetParameterIntVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuestd::vector<long, std::allocator<long> >Value of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterString

Class: auto_apms_behavior_tree::SetParameterString

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuestd::stringValue of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

SetParameterStringVec

Class: auto_apms_behavior_tree::SetParameterStringVec

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
parameterstd::stringName of the parameter to be set.
valuestd::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >Value of the parameter to be set.
nodestd::stringName of the targeted ROS 2 node. Leave empty to target this executor's node.

StartExecutor

Class: auto_apms_behavior_tree::StartExecutor

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
executorstd::stringName of the executor responsible for building and running the specified behavior tree.
build_requeststd::stringString passed to the tree build handler defining which tree is to be built.
build_handlerstd::stringFully qualified class name of the build handler that is supposed to take care of the request. If empty, use the current one.
root_treestd::stringName of the root tree. If empty, let the build handler determine the root tree.
node_manifeststd::stringYAML/JSON formatted string encoding the name and the registration options for the tree nodes supposed to be loaded before building the tree.
node_overridesstd::stringYAML/JSON formatted string encoding the name and the registration options for any tree nodes supposed to override previously loaded ones.
clear_blackboardbooltrueBoolean flag wether to clear the existing blackboard entries before the execution starts or not.
attachbooltrueBoolean flag wether to attach to the execution process or start in detached mode.

TerminateExecutor

Class: auto_apms_behavior_tree::TerminateExecutor

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
executorstd::stringName of the executor to command.

auto_apms_simulation

GetRobotState

Class: auto_apms_simulation::GetRobotState

Node Type: Condition

Input Ports

Input NameTypeDefault ValueDescription
robotstd::stringName of the robot.

Output Ports

Output NameTypeDefault ValueDescription
locationstd::stringCurrent location name.
batterydoubleCurrent battery state [%].

IsLocationOccupied

Class: auto_apms_simulation::IsLocationOccupied

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
target_locstd::stringName of the location to test for occupancy.
filter_locstd::string.*Regex filter for locations to match against the target location.
filter_robotstd::string.*Regex filter for robots to consider.

Class: auto_apms_simulation::NavigateToLocation

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
robotstd::stringName of the robot.
targetstd::stringName of the target to navigate to (Terms for the knowledge query are separated by whitespace).

PickObject

Class: auto_apms_simulation::PickObject

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
robotstd::stringName of the robot.
objectstd::stringName of the object to pick. Empty for the nearest object.

PlaceObject

Class: auto_apms_simulation::PlaceObject

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
robotstd::stringName of the robot.

RobotSharesCurrentLocation

Class: auto_apms_simulation::RobotSharesCurrentLocation

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
robotstd::stringTarget robot in question to be the first at the given location.
filter_locstd::string.*Regex filter for locations to consider.

Output Ports

Output NameTypeDefault ValueDescription
current_locstd::stringCurrent location name.

SetLocationState

Class: auto_apms_simulation::SetLocationState

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
openbooltrueOpen/Close the location.
locationstd::stringName of the location.
lockboolfalseLock/Unlock the location.

auto_apms_px4

Arm

Class: auto_apms_px4::ArmAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
wait_until_ready_to_armbooltrueWait for the UAV to be ready for arming. If false and UAV is not ready to arm, will be rejected.
portstd::stringName of the ROS 2 action.

Disarm

Class: auto_apms_px4::DisarmAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
portstd::stringName of the ROS 2 action.

EnableHold

Class: auto_apms_px4::EnableHoldAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
portstd::stringName of the ROS 2 action.

GoTo

Class: auto_apms_px4::GoToAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
latdoubleTarget latitude
londoubleTarget longitude
altdoubleTarget altitude in meter (AMSL)
portstd::stringName of the ROS 2 action.

GoToVector

Class: auto_apms_px4::GoToAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
latdoubleTarget latitude
londoubleTarget longitude
altdoubleTarget altitude in meter (AMSL)
portstd::stringName of the ROS 2 action.

Land

Class: auto_apms_px4::LandAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
portstd::stringName of the ROS 2 action.

Mission

Class: auto_apms_px4::MissionAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
do_restartboolfalseWether to restart (true) or resume (false) the mission.
portstd::stringName of the ROS 2 action.

RTL

Class: auto_apms_px4::RTLAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
portstd::stringName of the ROS 2 action.

ReadGlobalPosition

Class: auto_apms_px4::ReadGlobalPosition

Node Type: Condition

Input Ports

Input NameTypeDefault ValueDescription
portstd::stringName of the ROS 2 topic to subscribe to.

Output Ports

Output NameTypeDefault ValueDescription
pos_vecEigen::Matrix<double, 3, 1, 0, 3, 1>Current global position vector (latitude [°], longitude [°], altitude AMSL [m])
altdoubleCurrent altitude in meter (AMSL)
latdoubleCurrent latitude in degree [°]
londoubleCurrent longitude in degree [°]

Takeoff

Class: auto_apms_px4::TakeoffAction

Node Type: Action

Input Ports

Input NameTypeDefault ValueDescription
altdoubleTarget takeoff altitude in meter (AMSL)
portstd::stringName of the ROS 2 action.

Released under the Apache-2.0 License.