21#ifndef _PLUGINS_NAVGRAPH_NAVGRAPH_THREAD_H_
22#define _PLUGINS_NAVGRAPH_NAVGRAPH_THREAD_H_
24#ifdef HAVE_VISUALIZATION
25# include "visualization_thread.h"
28#include <aspect/aspect_provider.h>
29#include <aspect/blackboard.h>
30#include <aspect/blocked_timing.h>
31#include <aspect/clock.h>
32#include <aspect/configurable.h>
33#include <aspect/logging.h>
35#include <core/threading/thread.h>
36#include <interfaces/NavPathInterface.h>
37#include <interfaces/NavigatorInterface.h>
38#include <navgraph/aspect/navgraph_inifin.h>
39#include <navgraph/constraints/constraint_repo.h>
40#include <navgraph/navgraph.h>
41#include <utils/system/fam.h>
58#ifdef HAVE_VISUALIZATION
69 virtual void fam_event(
const char *filename,
unsigned int mask);
80 bool generate_plan(
const std::string &goal);
81 bool generate_plan(
const std::string &goal,
float ori);
82 bool generate_plan(
float x,
float y,
float ori,
const std::string &target_name =
"free-target");
87 void send_next_goal();
89 bool node_ori_reached();
91 size_t shortcut_possible();
99 std::string cfg_graph_file_;
100 std::string cfg_base_frame_;
101 std::string cfg_global_frame_;
102 std::string cfg_nav_if_id_;
103 float cfg_resend_interval_;
104 float cfg_replan_interval_;
105 float cfg_replan_factor_;
106#ifdef HAVE_VISUALIZATION
107 float cfg_visual_interval_;
109 bool cfg_monitor_file_;
110 float cfg_target_time_;
111 float cfg_target_ori_time_;
113 bool cfg_abort_on_error_;
114 bool cfg_enable_path_execution_;
115 bool cfg_allow_multi_graph_;
125 bool target_reached_;
126 bool target_ori_reached_;
127 bool target_rotating_;
130 std::string last_node_;
133 bool constrained_plan_;
137 unsigned int cmd_msgid_;
142 std::string error_reason_;
146#ifdef HAVE_VISUALIZATION
Thread to perform graph-based path planning.
virtual void fam_event(const char *filename, unsigned int mask)
Event has been raised.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual void once()
Execute an action exactly once.
virtual void finalize()
Finalize the thread.
virtual void init()
Initialize the thread.
virtual ~NavGraphThread()
Destructor.
virtual void loop()
Code to execute in the thread.
NavGraphThread()
Constructor.
Send Marker messages to rviz to show navgraph info.
Thread aspect provide a new aspect.
Thread aspect to access to BlackBoard.
Thread aspect to use blocked timing.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
File Alteration Monitor Listener.
Monitors files for changes.
Thread aspect to log output.
NavGraphAspect initializer/finalizer.
Sub-class representing a navgraph path traversal.
Class representing a path for a NavGraph.
NavPathInterface Fawkes BlackBoard Interface.
NavigatorInterface Fawkes BlackBoard Interface.
Thread class encapsulation of pthreads.
void start(bool wait=true)
Call this method to start the thread.
A class for handling time.
Fawkes library namespace.