31 TreeFromResourceBuildHandler(rclcpp::Node::SharedPtr ros_node_ptr, NodeLoader::SharedPtr tree_node_loader_ptr)
32 :
TreeBuildHandler(
"tree_from_resource", ros_node_ptr, tree_node_loader_ptr),
33 resource_doc_(TreeDocument::BTCPP_FORMAT_DEFAULT_VERSION, tree_node_loader_ptr)
38 const std::string & build_request,
const NodeManifest & ,
39 const std::string & root_tree_name)
override final
41 TreeResource::Identity resource_identity(build_request);
42 TreeResource resource(resource_identity);
45 resource_doc_.reset().mergeResource(resource,
false);
47 if (
const BT::Result res = resource_doc_.verify(); !res) {
48 RCLCPP_WARN(
logger_,
"Tree verification failed: %s", res.error().c_str());
53 std::string name = root_tree_name;
54 if (root_tree_name.empty()) {
60 "Cannot determine root tree from tree resource identity '%s': You must either provide an identity that "
61 "includes a tree name or specify the root_tree_name argument with a non empty string.",
62 resource_identity.
str().c_str());
66 resource_doc_.setRootTreeName(name);
76 resource_doc_.
reset();