MCPcopy Create free account
hub / github.com/BehaviorTree/BehaviorTree.ROS2 / GetDirectoryPath

Function GetDirectoryPath

behaviortree_ros2/src/bt_utils.cpp:50–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50std::string GetDirectoryPath(const std::string& parameter_value)
51{
52 std::string package_name, subfolder;
53 auto pos = parameter_value.find_first_of("/");
54 if(pos == parameter_value.size())
55 {
56 RCLCPP_ERROR(kLogger, "Invalid Parameter: %s. Missing subfolder delimiter '/'.",
57 parameter_value.c_str());
58 return "";
59 }
60
61 package_name = std::string(parameter_value.begin(), parameter_value.begin() + pos);
62 subfolder = std::string(parameter_value.begin() + pos + 1, parameter_value.end());
63 try
64 {
65 std::string search_directory =
66 ament_index_cpp::get_package_share_directory(package_name) + "/" + subfolder;
67 RCLCPP_DEBUG(kLogger, "Searching for Plugins/BehaviorTrees in path: %s",
68 search_directory.c_str());
69 return search_directory;
70 }
71 catch(const std::exception& e)
72 {
73 RCLCPP_ERROR(kLogger, "Failed to find package: %s \n %s", package_name.c_str(),
74 e.what());
75 }
76 return "";
77}
78
79void LoadBehaviorTrees(BT::BehaviorTreeFactory& factory,
80 const std::string& directory_path)

Callers 2

RegisterPluginsFunction · 0.85
RegisterBehaviorTreesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected