21#ifndef _PLUGINS_NAVGRAPH_INTERACTIVE_NAVGRAPH_INTERACTIVE_THREAD_H_
22#define _PLUGINS_NAVGRAPH_INTERACTIVE_NAVGRAPH_INTERACTIVE_THREAD_H_
24#include <aspect/aspect_provider.h>
25#include <aspect/blackboard.h>
26#include <aspect/clock.h>
27#include <aspect/configurable.h>
28#include <aspect/logging.h>
29#include <core/threading/thread.h>
30#include <interactive_markers/menu_handler.h>
31#include <interfaces/NavigatorInterface.h>
32#include <navgraph/aspect/navgraph.h>
33#include <navgraph/navgraph.h>
34#include <navgraph/navgraph_node.h>
35#include <plugins/ros/aspect/ros.h>
36#include <visualization_msgs/InteractiveMarker.h>
37#include <visualization_msgs/InteractiveMarkerFeedback.h>
38#include <visualization_msgs/MarkerArray.h>
42namespace interactive_markers {
43class InteractiveMarkerServer;
57 std::shared_ptr<interactive_markers::MenuHandler> handler;
58 interactive_markers::MenuHandler::EntryHandle ori_handle;
59 interactive_markers::MenuHandler::EntryHandle goto_handle;
60 interactive_markers::MenuHandler::EntryHandle remove_handle;
61 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> dir_connect_nodes;
62 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> undir_connect_nodes;
63 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> disconnect_nodes;
68 interactive_markers::MenuHandler::EntryHandle add_handle;
69 interactive_markers::MenuHandler::EntryHandle save_handle;
70 interactive_markers::MenuHandler::EntryHandle stop_handle;
90 void process_node_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback);
92 process_node_ori_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback,
93 const NodeMenu & menu,
94 visualization_msgs::InteractiveMarker &int_marker);
96 process_graph_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback);
102 std::string cfg_global_frame_;
103 std::string cfg_save_filename_;
105 interactive_markers::InteractiveMarkerServer *server_;
107 std::map<std::string, NodeMenu> node_menus_;
109 std::shared_ptr<interactive_markers::MenuHandler> graph_menu_handler_;
110 GraphMenu graph_menu_;
Thread to perform graph-based path planning.
NavGraphInteractiveThread()
Constructor.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual ~NavGraphInteractiveThread()
Destructor.
virtual void loop()
Code to execute in the thread.
virtual void finalize()
Finalize the thread.
virtual void init()
Initialize the thread.
Thread aspect to access to BlackBoard.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
Thread aspect to log output.
Thread aspect to access NavGraph.
fawkes::LockPtr< NavGraph > navgraph
NavGraph instance shared in framework.
NavigatorInterface Fawkes BlackBoard Interface.
Thread aspect to get access to a ROS node handle.
Thread class encapsulation of pthreads.