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/behavior_tree_nodes.hpp"
namespace px4_node_models = auto_apms_px4_behavior::model;

Overview auto-apms

Registration NameClass NamePackage
AlwaysFailureNoneauto_apms_behavior_tree (BehaviorTree.CPP)
AlwaysSuccessNoneauto_apms_behavior_tree (BehaviorTree.CPP)
AsyncFallbackNoneauto_apms_behavior_tree (BehaviorTree.CPP)
AsyncSequenceNoneauto_apms_behavior_tree (BehaviorTree.CPP)
DelayNoneauto_apms_behavior_tree (BehaviorTree.CPP)
FallbackNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ForceFailureNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ForceSuccessNoneauto_apms_behavior_tree (BehaviorTree.CPP)
IfThenElseNoneauto_apms_behavior_tree (BehaviorTree.CPP)
InverterNoneauto_apms_behavior_tree (BehaviorTree.CPP)
KeepRunningUntilFailureNoneauto_apms_behavior_tree (BehaviorTree.CPP)
LoopBoolNoneauto_apms_behavior_tree (BehaviorTree.CPP)
LoopDoubleNoneauto_apms_behavior_tree (BehaviorTree.CPP)
LoopIntNoneauto_apms_behavior_tree (BehaviorTree.CPP)
LoopStringNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ParallelNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ParallelAllNoneauto_apms_behavior_tree (BehaviorTree.CPP)
PreconditionNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ReactiveFallbackNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ReactiveSequenceNoneauto_apms_behavior_tree (BehaviorTree.CPP)
RepeatNoneauto_apms_behavior_tree (BehaviorTree.CPP)
RetryUntilSuccessfulNoneauto_apms_behavior_tree (BehaviorTree.CPP)
RunOnceNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ScriptNoneauto_apms_behavior_tree (BehaviorTree.CPP)
ScriptConditionNoneauto_apms_behavior_tree (BehaviorTree.CPP)
SequenceNoneauto_apms_behavior_tree (BehaviorTree.CPP)
SequenceWithMemoryNoneauto_apms_behavior_tree (BehaviorTree.CPP)
SetBlackboardNoneauto_apms_behavior_tree (BehaviorTree.CPP)
SkipUnlessUpdatedNoneauto_apms_behavior_tree (BehaviorTree.CPP)
SleepNoneauto_apms_behavior_tree (BehaviorTree.CPP)
SubTreeNoneauto_apms_behavior_tree (BehaviorTree.CPP)
Switch2Noneauto_apms_behavior_tree (BehaviorTree.CPP)
Switch3Noneauto_apms_behavior_tree (BehaviorTree.CPP)
Switch4Noneauto_apms_behavior_tree (BehaviorTree.CPP)
Switch5Noneauto_apms_behavior_tree (BehaviorTree.CPP)
Switch6Noneauto_apms_behavior_tree (BehaviorTree.CPP)
TimeoutNoneauto_apms_behavior_tree (BehaviorTree.CPP)
UnsetBlackboardNoneauto_apms_behavior_tree (BehaviorTree.CPP)
WaitValueUpdateNoneauto_apms_behavior_tree (BehaviorTree.CPP)
WasEntryUpdatedNoneauto_apms_behavior_tree (BehaviorTree.CPP)
WhileDoElseNoneauto_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
PublishPoseauto_apms_behavior_tree::PublishPoseauto_apms_behavior_tree
ResumeExecutorauto_apms_behavior_tree::ResumeExecutorauto_apms_behavior_tree
SetBoolauto_apms_behavior_tree::SetBoolauto_apms_behavior_tree
SetEmptyauto_apms_behavior_tree::SetEmptyauto_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
SetTriggerauto_apms_behavior_tree::SetTriggerauto_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

auto_apms_behavior_tree (BehaviorTree.CPP)

AlwaysFailure

C++ Model: auto_apms_behavior_tree::AlwaysFailure

Node Type: Action

Description: No description provided.

This node doesn't have any ports.

AlwaysSuccess

C++ Model: auto_apms_behavior_tree::AlwaysSuccess

Node Type: Action

Description: No description provided.

This node doesn't have any ports.

AsyncFallback

C++ Model: auto_apms_behavior_tree::AsyncFallback

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

AsyncSequence

C++ Model: auto_apms_behavior_tree::AsyncSequence

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

Delay

C++ Model: auto_apms_behavior_tree::Delay

Node Type: Decorator

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
delay_msecunsigned intTick the child after a few milliseconds

Fallback

C++ Model: auto_apms_behavior_tree::Fallback

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

ForceFailure

C++ Model: auto_apms_behavior_tree::ForceFailure

Node Type: Decorator

Description: No description provided.

This node doesn't have any ports.

ForceSuccess

C++ Model: auto_apms_behavior_tree::ForceSuccess

Node Type: Decorator

Description: No description provided.

This node doesn't have any ports.

IfThenElse

C++ Model: auto_apms_behavior_tree::IfThenElse

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

Inverter

C++ Model: auto_apms_behavior_tree::Inverter

Node Type: Decorator

Description: No description provided.

This node doesn't have any ports.

KeepRunningUntilFailure

C++ Model: auto_apms_behavior_tree::KeepRunningUntilFailure

Node Type: Decorator

Description: No description provided.

This node doesn't have any ports.

LoopBool

C++ Model: auto_apms_behavior_tree::LoopBool

Node Type: Decorator

Description: No description provided.

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

C++ Model: auto_apms_behavior_tree::LoopDouble

Node Type: Decorator

Description: No description provided.

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

C++ Model: auto_apms_behavior_tree::LoopInt

Node Type: Decorator

Description: No description provided.

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

C++ Model: auto_apms_behavior_tree::LoopString

Node Type: Decorator

Description: No description provided.

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

C++ Model: auto_apms_behavior_tree::Parallel

Node Type: Control

Description: No description provided.

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

C++ Model: auto_apms_behavior_tree::ParallelAll

Node Type: Control

Description: No description provided.

Input Ports

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

Precondition

C++ Model: auto_apms_behavior_tree::Precondition

Node Type: Decorator

Description: No description provided.

Input Ports

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

ReactiveFallback

C++ Model: auto_apms_behavior_tree::ReactiveFallback

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

ReactiveSequence

C++ Model: auto_apms_behavior_tree::ReactiveSequence

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

Repeat

C++ Model: auto_apms_behavior_tree::Repeat

Node Type: Decorator

Description: No description provided.

Input Ports

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

RetryUntilSuccessful

C++ Model: auto_apms_behavior_tree::RetryUntilSuccessful

Node Type: Decorator

Description: No description provided.

Input Ports

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

RunOnce

C++ Model: auto_apms_behavior_tree::RunOnce

Node Type: Decorator

Description: No description provided.

Input Ports

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

Script

C++ Model: auto_apms_behavior_tree::Script

Node Type: Action

Description: No description provided.

Input Ports

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

ScriptCondition

C++ Model: auto_apms_behavior_tree::ScriptCondition

Node Type: Condition

Description: No description provided.

Input Ports

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

Sequence

C++ Model: auto_apms_behavior_tree::Sequence

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

SequenceWithMemory

C++ Model: auto_apms_behavior_tree::SequenceWithMemory

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

SetBlackboard

C++ Model: auto_apms_behavior_tree::SetBlackboard

Node Type: Action

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
valueBT::AnyTypeAllowedValue to be written into the output_key

Bidirectional Ports

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

SkipUnlessUpdated

C++ Model: auto_apms_behavior_tree::SkipUnlessUpdated

Node Type: Decorator

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
entryBT::AnyEntry to check

Sleep

C++ Model: auto_apms_behavior_tree::Sleep

Node Type: Action

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
msecunsigned int

SubTree

C++ Model: auto_apms_behavior_tree::SubTree

Node Type: SubTree

Description: No description provided.

Input Ports

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

Switch2

C++ Model: auto_apms_behavior_tree::Switch2

Node Type: Control

Description: No description provided.

Input Ports

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

Switch3

C++ Model: auto_apms_behavior_tree::Switch3

Node Type: Control

Description: No description provided.

Input Ports

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

Switch4

C++ Model: auto_apms_behavior_tree::Switch4

Node Type: Control

Description: No description provided.

Input Ports

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

Switch5

C++ Model: auto_apms_behavior_tree::Switch5

Node Type: Control

Description: No description provided.

Input Ports

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

Switch6

C++ Model: auto_apms_behavior_tree::Switch6

Node Type: Control

Description: No description provided.

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

C++ Model: auto_apms_behavior_tree::Timeout

Node Type: Decorator

Description: No description provided.

Input Ports

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

UnsetBlackboard

C++ Model: auto_apms_behavior_tree::UnsetBlackboard

Node Type: Action

Description: No description provided.

Input Ports

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

WaitValueUpdate

C++ Model: auto_apms_behavior_tree::WaitValueUpdate

Node Type: Decorator

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
entryBT::AnyEntry to check

WasEntryUpdated

C++ Model: auto_apms_behavior_tree::WasEntryUpdated

Node Type: Action

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
entryBT::AnyEntry to check

WhileDoElse

C++ Model: auto_apms_behavior_tree::WhileDoElse

Node Type: Control

Description: No description provided.

This node doesn't have any ports.

auto_apms_behavior_tree

Error

Plugin Class: auto_apms_behavior_tree::ThrowException

C++ Model: auto_apms_behavior_tree::Error

Node Type: Action

Description: Throws an exception to interrupt behavior tree execution

Input Ports

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

GetParameter

Plugin Class: auto_apms_behavior_tree::GetParameter

C++ Model: auto_apms_behavior_tree::GetParameter

Node Type: Action

Description: Retrieves a parameter value from a ROS2 node. The type of the output will be BT::Any and the user must make sure to cast it to the correct type when using it.

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

Plugin Class: auto_apms_behavior_tree::GetParameterBool

C++ Model: auto_apms_behavior_tree::GetParameterBool

Node Type: Action

Description: Retrieves a boolean parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterBoolVec

C++ Model: auto_apms_behavior_tree::GetParameterBoolVec

Node Type: Action

Description: Retrieves a boolean array parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterByteVec

C++ Model: auto_apms_behavior_tree::GetParameterByteVec

Node Type: Action

Description: Retrieves a byte array parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterDouble

C++ Model: auto_apms_behavior_tree::GetParameterDouble

Node Type: Action

Description: Retrieves a double precision floating point parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterDoubleVec

C++ Model: auto_apms_behavior_tree::GetParameterDoubleVec

Node Type: Action

Description: Retrieves a double precision floating point array parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterInt

C++ Model: auto_apms_behavior_tree::GetParameterInt

Node Type: Action

Description: Retrieves an integer parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterIntVec

C++ Model: auto_apms_behavior_tree::GetParameterIntVec

Node Type: Action

Description: Retrieves an integer array parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterString

C++ Model: auto_apms_behavior_tree::GetParameterString

Node Type: Action

Description: Retrieves a string parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::GetParameterStringVec

C++ Model: auto_apms_behavior_tree::GetParameterStringVec

Node Type: Action

Description: Retrieves a string array parameter value from a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::HaltExecutor

C++ Model: auto_apms_behavior_tree::HaltExecutor

Node Type: Action

Description: Halts an executor by sending a halt command

Input Ports

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

HasParameter

Plugin Class: auto_apms_behavior_tree::HasParameter

C++ Model: auto_apms_behavior_tree::HasParameter

Node Type: Action

Description: Checks if a ROS2 node has a specific parameter defined

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

Plugin Class: auto_apms_behavior_tree::Logger

C++ Model: auto_apms_behavior_tree::Logger

Node Type: Action

Description: Logs a message to the ROS2 logging system

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

Plugin Class: auto_apms_behavior_tree::PauseExecutor

C++ Model: auto_apms_behavior_tree::PauseExecutor

Node Type: Action

Description: Pauses an executor by sending a pause command

Input Ports

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

PublishPose

Plugin Class: auto_apms_behavior_tree::PublishPose

C++ Model: auto_apms_behavior_tree::PublishPose

Node Type: Condition

Description: Publishes a geometry_msgs/PoseStamped message with position and orientation

Input Ports

Input NameTypeDefault ValueDescription
xdouble0.000000Target x position in meters.
ydouble0.000000Target y position in meters.
zdouble0.000000Target z position in meters.
frame_idstd::stringmapFrame ID for the pose.
rolldouble0.000000Target roll angle in radians (or degrees if use_degrees is true).
use_degreesboolfalseIf true, interpret roll, pitch, yaw as degrees instead of radians.
pitchdouble0.000000Target pitch angle in radians (or degrees if use_degrees is true).
yawdouble0.000000Target yaw angle in radians (or degrees if use_degrees is true).
topicstd::stringName of the ROS 2 topic to publish to.

ResumeExecutor

Plugin Class: auto_apms_behavior_tree::ResumeExecutor

C++ Model: auto_apms_behavior_tree::ResumeExecutor

Node Type: Action

Description: Resumes a paused executor by sending a resume command

Input Ports

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

SetBool

Plugin Class: auto_apms_behavior_tree::SetBool

C++ Model: auto_apms_behavior_tree::SetBool

Node Type: Action

Description: Sets a std_srvs/SetBool service with the given boolean value

Input Ports

Input NameTypeDefault ValueDescription
databoolBoolean data to set (true, false, 1, 0).
topicstd::stringName of the ROS 2 service.

Output Ports

Output NameTypeDefault ValueDescription
messagestd::stringService response: informational message.

SetEmpty

Plugin Class: auto_apms_behavior_tree::SetEmpty

C++ Model: auto_apms_behavior_tree::SetEmpty

Node Type: Action

Description: Calls a std_srvs/Empty service

Input Ports

Input NameTypeDefault ValueDescription
topicstd::stringName of the ROS 2 service.

SetParameter

Plugin Class: auto_apms_behavior_tree::SetParameter

C++ Model: auto_apms_behavior_tree::SetParameter

Node Type: Action

Description: Sets a parameter on a ROS2 node. This node can infer the type from a blackboard pointer. For passing a string literal as value, use one of the statically typed versions.

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

Plugin Class: auto_apms_behavior_tree::SetParameterBool

C++ Model: auto_apms_behavior_tree::SetParameterBool

Node Type: Action

Description: Sets a boolean parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterBoolVec

C++ Model: auto_apms_behavior_tree::SetParameterBoolVec

Node Type: Action

Description: Sets a boolean array parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterByteVec

C++ Model: auto_apms_behavior_tree::SetParameterByteVec

Node Type: Action

Description: Sets a byte array parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterDouble

C++ Model: auto_apms_behavior_tree::SetParameterDouble

Node Type: Action

Description: Sets a double precision floating point parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterDoubleVec

C++ Model: auto_apms_behavior_tree::SetParameterDoubleVec

Node Type: Action

Description: Sets a double precision floating point array parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterInt

C++ Model: auto_apms_behavior_tree::SetParameterInt

Node Type: Action

Description: Sets an integer parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterIntVec

C++ Model: auto_apms_behavior_tree::SetParameterIntVec

Node Type: Action

Description: Sets an integer array parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterString

C++ Model: auto_apms_behavior_tree::SetParameterString

Node Type: Action

Description: Sets a string parameter on a ROS2 node

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

Plugin Class: auto_apms_behavior_tree::SetParameterStringVec

C++ Model: auto_apms_behavior_tree::SetParameterStringVec

Node Type: Action

Description: Sets a string array parameter on a ROS2 node

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.

SetTrigger

Plugin Class: auto_apms_behavior_tree::SetTrigger

C++ Model: auto_apms_behavior_tree::SetTrigger

Node Type: Action

Description: Calls a std_srvs/Trigger service

Input Ports

Input NameTypeDefault ValueDescription
topicstd::stringName of the ROS 2 service.

Output Ports

Output NameTypeDefault ValueDescription
messagestd::stringService response: informational message.

StartExecutor

Plugin Class: auto_apms_behavior_tree::StartExecutor

C++ Model: auto_apms_behavior_tree::StartExecutor

Node Type: Action

Description: Starts an executor by calling its start 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.
entrypointstd::stringEntrypoint for the behavior. If empty, let the build handler determine the entrypoint.
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.
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

Plugin Class: auto_apms_behavior_tree::TerminateExecutor

C++ Model: auto_apms_behavior_tree::TerminateExecutor

Node Type: Action

Description: Terminates an executor by sending a terminate command

Input Ports

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

auto_apms_simulation

GetRobotState

Plugin Class: auto_apms_simulation::GetRobotState

C++ Model: auto_apms_simulation::GetRobotState

Node Type: Condition

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
robotstd::stringName of the robot.

Output Ports

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

IsLocationOccupied

Plugin Class: auto_apms_simulation::IsLocationOccupied

C++ Model: auto_apms_simulation::IsLocationOccupied

Node Type: Action

Description: No description provided.

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.

Plugin Class: auto_apms_simulation::NavigateToLocation

C++ Model: auto_apms_simulation::NavigateToLocation

Node Type: Action

Description: No description provided.

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

Plugin Class: auto_apms_simulation::PickObject

C++ Model: auto_apms_simulation::PickObject

Node Type: Action

Description: No description provided.

Input Ports

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

PlaceObject

Plugin Class: auto_apms_simulation::PlaceObject

C++ Model: auto_apms_simulation::PlaceObject

Node Type: Action

Description: No description provided.

Input Ports

Input NameTypeDefault ValueDescription
robotstd::stringName of the robot.

RobotSharesCurrentLocation

Plugin Class: auto_apms_simulation::RobotSharesCurrentLocation

C++ Model: auto_apms_simulation::RobotSharesCurrentLocation

Node Type: Action

Description: No description provided.

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

Plugin Class: auto_apms_simulation::SetLocationState

C++ Model: auto_apms_simulation::SetLocationState

Node Type: Action

Description: No description provided.

Input Ports

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

Overview auto-apms-px4

Registration NameClass NamePackage
Armauto_apms_px4_behavior::ArmActionauto_apms_px4_behavior
Disarmauto_apms_px4_behavior::DisarmActionauto_apms_px4_behavior
EnableHoldauto_apms_px4_behavior::EnableHoldActionauto_apms_px4_behavior
GetGlobalPositionauto_apms_px4_behavior::GetPosition<GlobalPositionMsg>auto_apms_px4_behavior
GetLocalPositionauto_apms_px4_behavior::GetPosition<LocalPositionMsg>auto_apms_px4_behavior
GoToauto_apms_px4_behavior::GoToActionauto_apms_px4_behavior
GoToGlobalauto_apms_px4_behavior::GoToActionauto_apms_px4_behavior
GoToLocalauto_apms_px4_behavior::GoToActionauto_apms_px4_behavior
Landauto_apms_px4_behavior::LandActionauto_apms_px4_behavior
Missionauto_apms_px4_behavior::MissionActionauto_apms_px4_behavior
RTLauto_apms_px4_behavior::RTLActionauto_apms_px4_behavior
Takeoffauto_apms_px4_behavior::TakeoffActionauto_apms_px4_behavior

auto_apms_px4_behavior

Arm

Plugin Class: auto_apms_px4_behavior::ArmAction

C++ Model: auto_apms_px4_behavior::Arm

Node Type: Action

Description: Arms the vehicle, making it ready for takeoff

Input Ports

Input NameTypeDefault ValueDescription
wait_until_ready_to_armboolfalseWait for the UAV to be ready for arming. If false and UAV is not ready to arm, will be rejected.

Disarm

Plugin Class: auto_apms_px4_behavior::DisarmAction

C++ Model: auto_apms_px4_behavior::Disarm

Node Type: Action

Description: Disarms the vehicle if it is landed

This node doesn't have any ports.

EnableHold

Plugin Class: auto_apms_px4_behavior::EnableHoldAction

C++ Model: auto_apms_px4_behavior::EnableHold

Node Type: Action

Description: Enables or disables the position loiter mode

This node doesn't have any ports.

GetGlobalPosition

Plugin Class: auto_apms_px4_behavior::GetPosition<GlobalPositionMsg>

C++ Model: auto_apms_px4_behavior::GetGlobalPosition

Node Type: Condition

Description: Gets the current position of the vehicle in the global coordinate frame

Output Ports

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

GetLocalPosition

Plugin Class: auto_apms_px4_behavior::GetPosition<LocalPositionMsg>

C++ Model: auto_apms_px4_behavior::GetLocalPosition

Node Type: Condition

Description: Gets the current position of the vehicle in the local coordinate frame

Output Ports

Output NameTypeDefault ValueDescription
downdoubleCurrent down [m] relative to origin
eastdoubleCurrent east [m] relative to origin
northdoubleCurrent north [m] relative to origin
vectorEigen::Matrix<double, -1, -1, 0, -1, -1>Current local position vector (north [m], east [m], down [m])

GoTo

Plugin Class: auto_apms_px4_behavior::GoToAction

C++ Model: auto_apms_px4_behavior::GoTo

Node Type: Action

Description: Commands the vehicle to go to a specified position. The reference frame can be set via the 'frame' input port

Input Ports

Input NameTypeDefault ValueDescription
reached_thresh_yawdouble7.000000Maximum heading error [°] under which the position is considered reached
reached_thresh_veldouble0.300000Maximum velocity error [m/s] under which the position is considered reached
reached_thresh_posdouble0.500000Maximum position error [m] under which the position is considered reached
max_heading_ratedouble30.000000Maximum heading rate [°/s]
max_vertical_veldouble5.000000Maximum vertical velocity [m/s]
max_horizontal_veldouble10.000000Maximum horizontal velocity [m/s]
yawdoubleDesired yaw position in degree from north (heading) [-180°, 180)
zdoubleOverride vector entry Z
ydoubleOverride vector entry Y
xdoubleOverride vector entry X
vectorEigen::Matrix<double, -1, -1, 0, -1, -1>Target position as a row vector (separated by ';')
framestd::stringglobalReference frame: 'global' (Latitude, longitude, altitude (AMSL)) or 'local' (North, east, down from start)

GoToGlobal

Plugin Class: auto_apms_px4_behavior::GoToAction

C++ Model: auto_apms_px4_behavior::GoToGlobal

Node Type: Action

Description: Commands the vehicle to go to a specified position in the global coordinate frame

Input Ports

Input NameTypeDefault ValueDescription
reached_thresh_yawdouble7.000000Maximum heading error [°] under which the position is considered reached
reached_thresh_veldouble0.300000Maximum velocity error [m/s] under which the position is considered reached
reached_thresh_posdouble0.500000Maximum position error [m] under which the position is considered reached
max_heading_ratedouble30.000000Maximum heading rate [°/s]
max_vertical_veldouble5.000000Maximum vertical velocity [m/s]
max_horizontal_veldouble10.000000Maximum horizontal velocity [m/s]
yawdoubleDesired yaw position in degree from north (heading) [-180°, 180)
zdoubleOverride vector entry Z
ydoubleOverride vector entry Y
xdoubleOverride vector entry X
vectorEigen::Matrix<double, -1, -1, 0, -1, -1>Target position as a row vector (separated by ';')
framestd::stringglobalReference frame: 'global' (Latitude, longitude, altitude (AMSL)) or 'local' (North, east, down from start)

GoToLocal

Plugin Class: auto_apms_px4_behavior::GoToAction

C++ Model: auto_apms_px4_behavior::GoToLocal

Node Type: Action

Description: Commands the vehicle to go to a specified position in the local coordinate frame

Input Ports

Input NameTypeDefault ValueDescription
reached_thresh_yawdouble7.000000Maximum heading error [°] under which the position is considered reached
reached_thresh_veldouble0.300000Maximum velocity error [m/s] under which the position is considered reached
reached_thresh_posdouble0.500000Maximum position error [m] under which the position is considered reached
max_heading_ratedouble30.000000Maximum heading rate [°/s]
max_vertical_veldouble5.000000Maximum vertical velocity [m/s]
max_horizontal_veldouble10.000000Maximum horizontal velocity [m/s]
yawdoubleDesired yaw position in degree from north (heading) [-180°, 180)
zdoubleOverride vector entry Z
ydoubleOverride vector entry Y
xdoubleOverride vector entry X
vectorEigen::Matrix<double, -1, -1, 0, -1, -1>Target position as a row vector (separated by ';')
framestd::stringlocalReference frame: 'global' (Latitude, longitude, altitude (AMSL)) or 'local' (North, east, down from start)

Land

Plugin Class: auto_apms_px4_behavior::LandAction

C++ Model: auto_apms_px4_behavior::Land

Node Type: Action

Description: Commands the vehicle to land at its current position

This node doesn't have any ports.

Mission

Plugin Class: auto_apms_px4_behavior::MissionAction

C++ Model: auto_apms_px4_behavior::Mission

Node Type: Action

Description: Starts a mission that has been previously uploaded to the vehicle

Input Ports

Input NameTypeDefault ValueDescription
do_restartboolfalseWether to restart (true) or resume (false) the mission.

RTL

Plugin Class: auto_apms_px4_behavior::RTLAction

C++ Model: auto_apms_px4_behavior::RTL

Node Type: Action

Description: Commands the vehicle to return to its home position and land

This node doesn't have any ports.

Takeoff

Plugin Class: auto_apms_px4_behavior::TakeoffAction

C++ Model: auto_apms_px4_behavior::Takeoff

Node Type: Action

Description: Commands the vehicle to take off to a specified altitude

Input Ports

Input NameTypeDefault ValueDescription
altdoubleTarget takeoff altitude in meter (AMSL)

Released under the Apache-2.0 License.