From 768a257b338e61935a850af22d6d33ff5730cd0b Mon Sep 17 00:00:00 2001 From: hoangson02 Date: Sun, 22 Mar 2026 05:00:23 +0000 Subject: [PATCH] update find path file plugin .so --- src/Libraries/robot_cpp/src/plugin_loader_helper.cpp | 3 +-- src/Navigations/Packages/move_base/src/move_base.cpp | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Libraries/robot_cpp/src/plugin_loader_helper.cpp b/src/Libraries/robot_cpp/src/plugin_loader_helper.cpp index ea1dbe8..bcdbdc9 100644 --- a/src/Libraries/robot_cpp/src/plugin_loader_helper.cpp +++ b/src/Libraries/robot_cpp/src/plugin_loader_helper.cpp @@ -66,7 +66,6 @@ std::string PluginLoaderHelper::findLibraryPath(const std::string& symbol_name) } // Try to read from NodeHandle std::string library_path; - robot::log_info_at(__FILE__, __LINE__, "%s", symbol_name.c_str()); if (nh_.hasParam(param_path)) { nh_.getParam(param_path, library_path, std::string("")); if (!library_path.empty()) { @@ -339,7 +338,7 @@ std::string PluginLoaderHelper::getBuildDirectory() std::string PluginLoaderHelper::getWorkspacePath() { // Method 1: Từ environment variable PNKX_NAV_CORE_DIR - const char* workspace_path = std::getenv("PNKX_NAV_CORE_LIBRARY_PATH"); + const char* workspace_path = std::getenv("PNKX_NAV_CORE_DIR"); if (workspace_path && std::filesystem::exists(workspace_path)) { return std::string(workspace_path); } diff --git a/src/Navigations/Packages/move_base/src/move_base.cpp b/src/Navigations/Packages/move_base/src/move_base.cpp index 2c0185c..1910f23 100644 --- a/src/Navigations/Packages/move_base/src/move_base.cpp +++ b/src/Navigations/Packages/move_base/src/move_base.cpp @@ -271,6 +271,7 @@ void move_base::MoveBase::initialize(robot::TFListenerPtr tf) { robot::PluginLoaderHelper loader; std::string path_file_so = loader.findLibraryPath(global_planner); + robot::log_info("[%s:%d]\n INFO: global_planner library path: %s", __FILE__, __LINE__, path_file_so.c_str()); planner_loader_ = boost::dll::import_alias( path_file_so, global_planner, boost::dll::load_mode::append_decorations); @@ -314,6 +315,7 @@ void move_base::MoveBase::initialize(robot::TFListenerPtr tf) { robot::PluginLoaderHelper loader; std::string path_file_so = loader.findLibraryPath(local_planner); + robot::log_info("[%s:%d]\n INFO: local_planner library path: %s", __FILE__, __LINE__, path_file_so.c_str()); controller_loader_ = boost::dll::import_alias( path_file_so, local_planner, boost::dll::load_mode::append_decorations); @@ -401,7 +403,7 @@ void move_base::MoveBase::swapPlanner(std::string base_global_planner) boost::unique_lock lock(planner_mutex_); robot::PluginLoaderHelper loader; std::string path_file_so = loader.findLibraryPath(base_global_planner); - + robot::log_info("[%s:%d]\n INFO: global_planner library path: %s", __FILE__, __LINE__, path_file_so.c_str()); auto new_loader = boost::dll::import_alias( path_file_so, base_global_planner, boost::dll::load_mode::append_decorations); auto new_planner = new_loader(); @@ -2005,6 +2007,7 @@ bool move_base::MoveBase::loadRecoveryBehaviors(const robot::NodeHandle &node) std::string behavior_name = behavior["name"].as(); robot::PluginLoaderHelper loader; std::string path_file_so = loader.findLibraryPath(behavior_type); + robot::log_info("Loading recovery behavior '%s' of type '%s' from '%s'", behavior_name.c_str(), behavior_type.c_str(), path_file_so.c_str()); // Load the factory function from the shared library recovery_loaders_[behavior_name] = boost::dll::import_alias( path_file_so, behavior_type, boost::dll::load_mode::append_decorations);