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

Function LoadPlugin

behaviortree_ros2/src/bt_utils.cpp:101–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

99}
100
101void LoadPlugin(BT::BehaviorTreeFactory& factory, const std::filesystem::path& file_path,
102 BT::RosNodeParams params)
103{
104 const auto filename = file_path.filename();
105 try
106 {
107 BT::SharedLibrary loader(file_path.string());
108 if(loader.hasSymbol(BT::PLUGIN_SYMBOL))
109 {
110 typedef void (*Func)(BehaviorTreeFactory&);
111 auto func = (Func)loader.getSymbol(BT::PLUGIN_SYMBOL);
112 func(factory);
113 }
114 else if(loader.hasSymbol(BT::ROS_PLUGIN_SYMBOL))
115 {
116 typedef void (*Func)(BT::BehaviorTreeFactory&, const BT::RosNodeParams&);
117 auto func = (Func)loader.getSymbol(BT::ROS_PLUGIN_SYMBOL);
118 func(factory, params);
119 }
120 else
121 {
122 RCLCPP_ERROR(kLogger, "Failed to load Plugin from file: %s.", filename.c_str());
123 return;
124 }
125 RCLCPP_INFO(kLogger, "Loaded ROS Plugin: %s", filename.c_str());
126 }
127 catch(const std::exception& ex)
128 {
129 RCLCPP_ERROR(kLogger, "Failed to load ROS Plugin: %s \n %s", filename.c_str(),
130 ex.what());
131 }
132}
133
134void RegisterPlugins(bt_server::Params& params, BT::BehaviorTreeFactory& factory,
135 rclcpp::Node::SharedPtr node)

Callers 1

RegisterPluginsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected