21#ifndef _PLUGINS_NAVGRAPH_CLUSTERS_NAVGRAPH_CLUSTERS_THREAD_H_
22#define _PLUGINS_NAVGRAPH_CLUSTERS_NAVGRAPH_CLUSTERS_THREAD_H_
24#include <aspect/blackboard.h>
25#include <aspect/clock.h>
26#include <aspect/configurable.h>
27#include <aspect/logging.h>
29#include <blackboard/interface_listener.h>
30#include <blackboard/interface_observer.h>
31#include <core/threading/thread.h>
32#include <core/utils/lock_list.h>
33#include <navgraph/aspect/navgraph.h>
35#include <Eigen/Geometry>
41class Position3DInterface;
43class NavGraphEdgeConstraint;
44class NavGraphEdgeCostConstraint;
65 std::list<std::pair<std::string, std::string>>
blocked_edges()
noexcept;
67 std::list<std::tuple<std::string, std::string, Eigen::Vector2f>>
70 bool robot_pose(Eigen::Vector2f &pose)
noexcept;
82 virtual void bb_interface_created(
const char *type,
const char *
id)
noexcept;
93 fixed_frame_pose(std::string frame,
const fawkes::Time ×tamp,
float x,
float y);
96 std::string cfg_iface_prefix_;
97 float cfg_close_threshold_;
98 std::string cfg_fixed_frame_;
99 std::string cfg_base_frame_;
100 int cfg_min_vishistory_;
101 std::string cfg_mode_;
Block navgraph paths based on laser clusters.
std::list< std::tuple< std::string, std::string, Eigen::Vector2f > > blocked_edges_centroids() noexcept
Get a list of edges close to a clusters and its centroid considered blocked.
virtual void loop()
Code to execute in the thread.
virtual void finalize()
Finalize the thread.
virtual void init()
Initialize the thread.
bool robot_pose(Eigen::Vector2f &pose) noexcept
Determine current robot pose.
std::list< std::pair< std::string, std::string > > blocked_edges() noexcept
Get a list of edges close to a clusters considered blocked.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual ~NavGraphClustersThread()
Destructor.
NavGraphClustersThread()
Constructor.
Thread aspect to access to BlackBoard.
BlackBoard interface listener.
BlackBoard interface observer.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
Base class for all Fawkes BlackBoard interfaces.
Thread aspect to log output.
Thread aspect to access NavGraph.
Constraint that can be queried to check if an edge is blocked.
Constraint that can be queried for an edge cost factor.
Thread class encapsulation of pthreads.
A class for handling time.
A convenience class for universally unique identifiers (UUIDs).
Fawkes library namespace.