cb_base_navigation
local_planner_interface.h
Go to the documentation of this file.
1 /*******************************
2  * *
3  * Author: Rein Appeldoorn *
4  * Date: 2013-03-06 *
5  * *
6  *******************************/
7 
8 #ifndef cb_local_planner_LOCAL_PLANNER_INTERFACE_
9 #define cb_local_planner_LOCAL_PLANNER_INTERFACE_
10 
11 #include "visualization.h"
12 
13 #include <actionlib/client/action_client.h>
14 #include <actionlib/server/simple_action_server.h>
15 
16 #include <boost/shared_ptr.hpp>
17 
18 #include <cb_base_navigation_msgs/LocalPlannerAction.h>
19 
20 #include <geometry_msgs/PoseStamped.h>
21 
22 #include <pluginlib/class_loader.h>
23 
24 #include <tf2/utils.h>
25 
26 #include <memory>
27 #include <thread>
28 
29 namespace costmap_2d {
30 class Costmap2DROS;
31 }
32 
33 namespace nav_core {
34 class BaseLocalPlanner;
35 }
36 
37 namespace tf2_ros {
38 class Buffer;
39 }
40 
41 namespace cb_local_planner {
42 
44 
45 public:
46 
47  LocalPlannerInterface(costmap_2d::Costmap2DROS* costmap, tf2_ros::Buffer* tf);
48 
50 
51 private:
52 
53  boost::mutex goal_mtx_;
55 
56  void controllerThread();
57  void doSomeMotionPlanning();
58 
59  inline bool isGoalSet() { return goal_.plan.size() > 0; }
60 
62  ros::Publisher vel_pub_;
63  ros::Subscriber topic_sub_;
65 
67  void topicGoalCallback(const cb_base_navigation_msgs::LocalPlannerActionGoalConstPtr &goal);
68 
70  ros::ServiceClient ed_client_;
71 
73  void actionServerSetPlan();
74  void actionServerPreempt();
75  cb_base_navigation_msgs::LocalPlannerGoal goal_;
76  cb_base_navigation_msgs::LocalPlannerFeedback feedback_;
77 
79  boost::shared_ptr<nav_core::BaseLocalPlanner> local_planner_;
80  pluginlib::ClassLoader<nav_core::BaseLocalPlanner> lp_loader_;
82 
85  tf2_ros::Buffer* tf_;
86 
89 
92 
95 
96 };
97 
98 }
99 
100 #endif
cb_local_planner::LocalPlannerInterface::~LocalPlannerInterface
~LocalPlannerInterface()
Definition: local_planner_interface.cpp:21
std::string
cb_local_planner::LocalPlannerInterface::controller_frequency_
double controller_frequency_
Definition: local_planner_interface.h:81
cb_local_planner::LocalPlannerInterface::local_planner_
boost::shared_ptr< nav_core::BaseLocalPlanner > local_planner_
Planners + loaders.
Definition: local_planner_interface.h:79
cb_local_planner::LocalPlannerInterface
Definition: local_planner_interface.h:43
cb_local_planner::LocalPlannerInterface::topic_sub_
ros::Subscriber topic_sub_
Definition: local_planner_interface.h:63
cb_local_planner::LocalPlannerInterface::ed_client_
ros::ServiceClient ed_client_
World model client.
Definition: local_planner_interface.h:70
cb_local_planner::LocalPlannerInterface::goal_mtx_
boost::mutex goal_mtx_
Definition: local_planner_interface.h:53
cb_local_planner
Definition: local_planner_interface.h:41
cb_local_planner::LocalPlannerInterface::robot_base_frame_
std::string robot_base_frame_
Frame names + Tranforms.
Definition: local_planner_interface.h:84
cb_local_planner::LocalPlannerInterface::doSomeMotionPlanning
void doSomeMotionPlanning()
Definition: local_planner_interface.cpp:226
cb_local_planner::LocalPlannerInterface::vel_pub_
ros::Publisher vel_pub_
ROS Communication.
Definition: local_planner_interface.h:62
cb_local_planner::Visualization
Definition: local_planner/visualization.h:28
cb_local_planner::LocalPlannerInterface::isGoalSet
bool isGoalSet()
Definition: local_planner_interface.h:59
cb_local_planner::LocalPlannerInterface::global_frame_
std::string global_frame_
Definition: local_planner_interface.h:84
cb_local_planner::LocalPlannerInterface::actionServerPreempt
void actionServerPreempt()
Definition: local_planner_interface.cpp:114
thread
tf2_ros
Definition: global_planner_interface.h:33
cb_local_planner::LocalPlannerInterface::goal_
cb_base_navigation_msgs::LocalPlannerGoal goal_
Definition: local_planner_interface.h:75
cb_local_planner::LocalPlannerInterface::tf_
tf2_ros::Buffer * tf_
Definition: local_planner_interface.h:85
memory
cb_local_planner::LocalPlannerInterface::updateEndGoalOrientation
bool updateEndGoalOrientation()
Helper functions.
Definition: local_planner_interface.cpp:266
cb_local_planner::LocalPlannerInterface::controllerThread
void controllerThread()
Definition: local_planner_interface.cpp:122
cb_local_planner::LocalPlannerInterface::costmap_
costmap_2d::Costmap2DROS * costmap_
Costmaps.
Definition: local_planner_interface.h:88
cb_local_planner::LocalPlannerInterface::lp_loader_
pluginlib::ClassLoader< nav_core::BaseLocalPlanner > lp_loader_
Definition: local_planner_interface.h:80
cb_local_planner::LocalPlannerInterface::feedback_
cb_base_navigation_msgs::LocalPlannerFeedback feedback_
Definition: local_planner_interface.h:76
cb_local_planner::LocalPlannerInterface::actionServerSetPlan
void actionServerSetPlan()
Action Server stuff.
Definition: local_planner_interface.cpp:98
cb_local_planner::LocalPlannerInterface::LocalPlannerInterface
LocalPlannerInterface(costmap_2d::Costmap2DROS *costmap, tf2_ros::Buffer *tf)
Definition: local_planner_interface.cpp:30
nav_core
Definition: local_planner_interface.h:33
visualization.h
cb_local_planner::LocalPlannerInterface::vis
Visualization vis
Visualization.
Definition: local_planner_interface.h:94
cb_local_planner::LocalPlannerInterface::action_server_
std::unique_ptr< actionlib::SimpleActionServer< cb_base_navigation_msgs::LocalPlannerAction > > action_server_
Definition: local_planner_interface.h:64
std::unique_ptr< std::thread >
costmap_2d
Messages + Services.
costmap_2d::Costmap2DROS
cb_local_planner::LocalPlannerInterface::topicGoalCallback
void topicGoalCallback(const cb_base_navigation_msgs::LocalPlannerActionGoalConstPtr &goal)
topic goal cb
Definition: local_planner_interface.cpp:82
cb_local_planner::LocalPlannerInterface::controller_thread_
std::unique_ptr< std::thread > controller_thread_
Definition: local_planner_interface.h:54