Skip to main content

behavior Namespace

Definition

namespace moveit_pro::behavior { ... }

Classes Index

classLoggerBase

Base class to allow Behaviors to report messages with detailed explanations to MoveIt Studio UI. More...

classLoggerROS

A ROS-specialized implementation of LoggerBase that publishes the error message on a topic and logs it through an rclcpp Logger. More...

classParameterOverrideRegistry

Thread-safe registry mapping a port C++ type to a parser that turns a YAML string into a typed BehaviorTree.CPP blackboard entry. More...

Functions Index

std::stringnormalizeTypeName (std::string_view type_name)

Normalize a C++ type spelling so the demangled form and a user-written form compare equal. More...

template <typename T>
auto parseParameterFromYaml (std::string_view yaml_string) -> tl::expected< BT::Any, std::string >

Parse yaml_string into a value of type T wrapped in BT::Any. More...

template <typename T>
voidregisterParameterParser ()

Register a YAML parser for type T without touching the blackboard-viewer JSON exporter. More...

template <typename Element>
auto parseVectorParameterFromYaml (std::string_view yaml_string) -> tl::expected< BT::Any, std::string >

Parse yaml_string as a YAML sequence of Element into a type-erased std::vector<BT::Any> wrapped in BT::Any. More...

template <typename Element>
voidregisterVectorParameterParser ()

Register a parser for std::vector<Element> that deposits a type-erased std::vector<BT::Any>. More...

template <typename T>
voidregisterParameterType ()

Register a parser for ROS message type T AND register the JSON converter so the override value displays as structured JSON in the blackboard viewer. More...

voidseedBuiltinParameterOverrideParsers ()

Seed the registry with parsers for primitives (string, double, int, bool, YAML::Node) and every ROS message type covered by ROS_MESSAGE_YAML_PARSER in moveit_pro_common/utils/yaml_parsing_tools.hpp. More...

Functions

normalizeTypeName()

std::string moveit_pro::behavior::normalizeTypeName (std::string_view type_name)

Normalize a C++ type spelling so the demangled form and a user-written form compare equal.

Strips defaulted std::allocator<...> template arguments and removes all whitespace. This converges the libstdc++ demangled spelling std::vector<geometry_msgs::msg::PoseStamped, std::allocator<...> > and the user-written std::vector<geometry_msgs::msg::PoseStamped> onto the same key. Whitespace is never semantically meaningful inside a C++ type-id, so removing it is safe. No-ops gracefully on inputs with no allocator argument.

Definition at line 150 of file parameter_override_registry.cpp.

parseParameterFromYaml()

template <typename T>
tl::expected< BT::Any, std::string > moveit_pro::behavior::parseParameterFromYaml (std::string_view yaml_string)

Parse yaml_string into a value of type T wrapped in BT::Any.

Implements the ParseFn contract for registerParameterParser<T>. Requires YAML::convert<T> to be specialized for T.

Definition at line 108 of file parameter_override_registry.hpp.

parseVectorParameterFromYaml()

template <typename Element>
tl::expected< BT::Any, std::string > moveit_pro::behavior::parseVectorParameterFromYaml (std::string_view yaml_string)

Parse yaml_string as a YAML sequence of Element into a type-erased std::vector<BT::Any> wrapped in BT::Any.

Implements the ParseFn contract for registerVectorParameterParser<Element>. Requires YAML::convert<Element> to be specialized for Element.

Definition at line 148 of file parameter_override_registry.hpp.

registerParameterParser()

template <typename T>
void moveit_pro::behavior::registerParameterParser ()

Register a YAML parser for type T without touching the blackboard-viewer JSON exporter.

Use this for non-ROS-message types like primitives, YAML::Node, or std::vector<RosMsg>. Requires that YAML::convert<T> is specialized for T.

Definition at line 133 of file parameter_override_registry.hpp.

registerParameterType()

template <typename T>
void moveit_pro::behavior::registerParameterType ()

Register a parser for ROS message type T AND register the JSON converter so the override value displays as structured JSON in the blackboard viewer.

Equivalent to registerParameterParser<T>() plus register_ros_msg<T>(). Use this for ROS message types (custom or built-in). Requires ROS_MESSAGE_YAML_PARSER(pkg, Msg) to have been invoked for T to specialize YAML::convert<T>.

Definition at line 202 of file parameter_override_registry.hpp.

registerVectorParameterParser()

template <typename Element>
void moveit_pro::behavior::registerVectorParameterParser ()

Register a parser for std::vector<Element> that deposits a type-erased std::vector<BT::Any>.

Mirrors what BT::TreeNode::setOutput does for vector ports: it element-wise wraps the parsed std::vector<Element> into a std::vector<BT::Any> before the value reaches the blackboard. This is what makes the deposited value readable by both type-erased consumers (ForEach, whose port is std::vector<BT::Any> — exact match) and strongly-typed consumers (getInput<std::vector<Element>> unwraps a std::vector<BT::Any> entry element-wise). A raw std::vector<Element> written via blackboard->set is NOT convertible to std::vector<BT::Any> at read time, which is the bug this avoids. The parser is keyed under std::type_index(typeid(std::vector<Element>)) and the matching normalized name — the declared vector type — even though the stored value is std::vector<BT::Any>. Requires YAML::convert<Element> to be specialized for Element.

Definition at line 185 of file parameter_override_registry.hpp.

seedBuiltinParameterOverrideParsers()

void moveit_pro::behavior::seedBuiltinParameterOverrideParsers ()

Seed the registry with parsers for primitives (string, double, int, bool, YAML::Node) and every ROS message type covered by ROS_MESSAGE_YAML_PARSER in moveit_pro_common/utils/yaml_parsing_tools.hpp.

Idempotent — safe to call multiple times across multiple ObjectiveServer instances. Guarded by std::call_once.

Definition at line 189 of file parameter_override_registry.cpp.


The documentation for this namespace was generated from the following files:


Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.9.8.