From 243a8c7871dc47789ac4c8e78ad6a52c6a533aea Mon Sep 17 00:00:00 2001
From: Yathartha Tuladhar <yathartha3@gmail.com>
Date: Thu, 12 Sep 2019 12:48:14 -0700
Subject: [PATCH] Using dwb as plugin

---
 nav2_dwb_controller/dwb_core/CMakeLists.txt                | 2 ++
 nav2_dwb_controller/dwb_core/dwb_core.xml                  | 7 +++++++
 .../dwb_core/include/dwb_core/dwb_local_planner.hpp        | 2 ++
 nav2_dwb_controller/dwb_core/package.xml                   | 1 +
 nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp     | 5 +++--
 nav2_dwb_controller/dwb_plugins/plugins.xml                | 4 ++--
 .../dwb_plugins/src/simple_goal_checker.cpp                | 2 +-
 .../dwb_plugins/src/stopped_goal_checker.cpp               | 3 +--
 8 files changed, 19 insertions(+), 7 deletions(-)
 create mode 100644 nav2_dwb_controller/dwb_core/dwb_core.xml

diff --git a/nav2_dwb_controller/dwb_core/CMakeLists.txt b/nav2_dwb_controller/dwb_core/CMakeLists.txt
index 5bd5dd8a..c5f0027f 100644
--- a/nav2_dwb_controller/dwb_core/CMakeLists.txt
+++ b/nav2_dwb_controller/dwb_core/CMakeLists.txt
@@ -75,4 +75,6 @@ ament_export_include_directories(include)
 ament_export_libraries(dwb_core)
 ament_export_dependencies(${dependencies})
 
+pluginlib_export_plugin_description_file(nav2_core dwb_core.xml)
+
 ament_package()
diff --git a/nav2_dwb_controller/dwb_core/dwb_core.xml b/nav2_dwb_controller/dwb_core/dwb_core.xml
new file mode 100644
index 00000000..abd34148
--- /dev/null
+++ b/nav2_dwb_controller/dwb_core/dwb_core.xml
@@ -0,0 +1,7 @@
+<class_libraries>
+  <library path="dwb_core">
+    <class type="dwb_core::DWBLocalPlanner" base_class_type="nav2_core::LocalPlanner">
+      <description></description>
+    </class>
+  </library>
+</class_libraries>
diff --git a/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp b/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
index 16251f51..4e441935 100644
--- a/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
+++ b/nav2_dwb_controller/dwb_core/include/dwb_core/dwb_local_planner.hpp
@@ -49,6 +49,7 @@
 #include "rclcpp/rclcpp.hpp"
 #include "rclcpp_lifecycle/lifecycle_node.hpp"
 #include "pluginlib/class_loader.hpp"
+#include "pluginlib/class_list_macros.hpp"
 
 namespace dwb_core
 {
@@ -209,6 +210,7 @@ protected:
   pluginlib::ClassLoader<TrajectoryGenerator> traj_gen_loader_;
   TrajectoryGenerator::Ptr traj_generator_;
 
+  pluginlib::ClassLoader<nav2_core::GoalChecker> goal_checker_loader_;
   nav2_core::GoalChecker::Ptr goal_checker_;
 
   pluginlib::ClassLoader<TrajectoryCritic> critic_loader_;
diff --git a/nav2_dwb_controller/dwb_core/package.xml b/nav2_dwb_controller/dwb_core/package.xml
index d1897b3d..b2e69fd2 100644
--- a/nav2_dwb_controller/dwb_core/package.xml
+++ b/nav2_dwb_controller/dwb_core/package.xml
@@ -48,5 +48,6 @@
 
   <export>
     <build_type>ament_cmake</build_type>
+    <LocalPlanner plugin="${prefix}/dwb_core.xml" />
   </export>
 </package>
diff --git a/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp b/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
index a124f0ea..fdce54b2 100644
--- a/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
+++ b/nav2_dwb_controller/dwb_core/src/dwb_local_planner.cpp
@@ -569,5 +569,6 @@ DWBLocalPlanner::transformGlobalPlan(
 
 }  // namespace dwb_core
 
-// Register this planner as a LocalPlanner plugin
-// PLUGINLIB_EXPORT_CLASS(dwb_core::DWBLocalPlanner, nav_core2::LocalPlanner)
+// Register this planner as a nav2_core plugin
+PLUGINLIB_EXPORT_CLASS(dwb_core::DWBLocalPlanner,
+  nav2_core::LocalPlanner)
diff --git a/nav2_dwb_controller/dwb_plugins/plugins.xml b/nav2_dwb_controller/dwb_plugins/plugins.xml
index 0616c2ff..afa3b939 100644
--- a/nav2_dwb_controller/dwb_plugins/plugins.xml
+++ b/nav2_dwb_controller/dwb_plugins/plugins.xml
@@ -1,6 +1,6 @@
 <class_libraries>
   <library path="simple_goal_checker">
-    <class type="dwb_plugins::SimpleGoalChecker" base_class_type="dwb_core::GoalChecker">
+    <class type="dwb_plugins::SimpleGoalChecker" base_class_type="nav2_core::GoalChecker">
       <description></description>
     </class>
   </library>
@@ -13,7 +13,7 @@
     </class>
   </library>
   <library path="stopped_goal_checker">
-    <class type="dwb_plugins::StoppedGoalChecker" base_class_type="dwb_core::GoalChecker">
+    <class type="dwb_plugins::StoppedGoalChecker" base_class_type="nav2_core::GoalChecker">
       <description></description>
     </class>
   </library>
diff --git a/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp b/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp
index 486a310e..832f0faf 100644
--- a/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp
+++ b/nav2_dwb_controller/dwb_plugins/src/simple_goal_checker.cpp
@@ -75,4 +75,4 @@ bool SimpleGoalChecker::isGoalReached(
 
 }  // namespace dwb_plugins
 
-PLUGINLIB_EXPORT_CLASS(dwb_plugins::SimpleGoalChecker, dwb_core::GoalChecker)
+PLUGINLIB_EXPORT_CLASS(dwb_plugins::SimpleGoalChecker, nav2_core::GoalChecker)
diff --git a/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp b/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp
index b33cf3a5..b280df6f 100644
--- a/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp
+++ b/nav2_dwb_controller/dwb_plugins/src/stopped_goal_checker.cpp
@@ -32,7 +32,6 @@
  *  POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "dwb_plugins/stopped_goal_checker.hpp"
 #include <cmath>
 #include <memory>
 #include "dwb_plugins/stopped_goal_checker.hpp"
@@ -76,4 +75,4 @@ bool StoppedGoalChecker::isGoalReached(
 
 }  // namespace dwb_plugins
 
-PLUGINLIB_EXPORT_CLASS(dwb_plugins::StoppedGoalChecker, dwb_core::GoalChecker)
+PLUGINLIB_EXPORT_CLASS(dwb_plugins::StoppedGoalChecker, nav2_core::GoalChecker)
-- 
GitLab