21 #ifndef __PLUGINS_NAVGRAPH_INTERACTIVE_NAVGRAPH_INTERACTIVE_THREAD_H_ 22 #define __PLUGINS_NAVGRAPH_INTERACTIVE_NAVGRAPH_INTERACTIVE_THREAD_H_ 24 #include <core/threading/thread.h> 25 #include <aspect/clock.h> 26 #include <aspect/configurable.h> 27 #include <aspect/logging.h> 28 #include <aspect/blackboard.h> 29 #include <aspect/aspect_provider.h> 30 #include <plugins/ros/aspect/ros.h> 31 #include <navgraph/aspect/navgraph.h> 33 #include <interfaces/NavigatorInterface.h> 35 #include <navgraph/navgraph.h> 36 #include <navgraph/navgraph_node.h> 38 #include <visualization_msgs/MarkerArray.h> 39 #include <visualization_msgs/InteractiveMarker.h> 40 #include <visualization_msgs/InteractiveMarkerFeedback.h> 41 #include <interactive_markers/menu_handler.h> 46 class InteractiveMarkerServer;
60 std::shared_ptr<interactive_markers::MenuHandler> handler;
61 interactive_markers::MenuHandler::EntryHandle ori_handle;
62 interactive_markers::MenuHandler::EntryHandle goto_handle;
63 interactive_markers::MenuHandler::EntryHandle remove_handle;
64 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> dir_connect_nodes;
65 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> undir_connect_nodes;
66 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> disconnect_nodes;
70 interactive_markers::MenuHandler::EntryHandle add_handle;
71 interactive_markers::MenuHandler::EntryHandle save_handle;
72 interactive_markers::MenuHandler::EntryHandle stop_handle;
81 virtual void finalize();
84 protected:
virtual void run() { Thread::run();}
87 void process_node_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback);
88 void process_node_ori_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback,
90 visualization_msgs::InteractiveMarker &int_marker);
91 void process_graph_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback);
97 std::string cfg_global_frame_;
98 std::string cfg_save_filename_;
100 interactive_markers::InteractiveMarkerServer *server_;
102 std::map<std::string, NodeMenu> node_menus_;
104 std::shared_ptr<interactive_markers::MenuHandler> graph_menu_handler_;
105 GraphMenu graph_menu_;
Thread aspect to access to BlackBoard.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to get access to a ROS node handle.
Thread class encapsulation of pthreads.
virtual void run()
Stub to see name in backtrace for easier debugging.
Thread aspect to log output.
Thread aspect to access configuration data.
Thread to perform graph-based path planning.
Thread aspect to access NavGraph.
NavigatorInterface Fawkes BlackBoard Interface.