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> 42 namespace interactive_markers {
43 class 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_;
virtual ~NavGraphInteractiveThread()
Destructor.
Thread aspect to access to BlackBoard.
NavGraphInteractiveThread()
Constructor.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to get access to a ROS node handle.
fawkes::LockPtr< NavGraph > navgraph
NavGraph instance shared in framework.
virtual void init()
Initialize the thread.
Thread class encapsulation of pthreads.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual void loop()
Code to execute in the thread.
Thread aspect to log output.
virtual void finalize()
Finalize the thread.
Thread aspect to access configuration data.
Thread to perform graph-based path planning.
Thread aspect to access NavGraph.
NavigatorInterface Fawkes BlackBoard Interface.