11#ifndef SEARCH_PATTERN_STATE_H
12#define SEARCH_PATTERN_STATE_H
14#include "../algorithms/controllers/PurePursuitController.h"
15#include "../algorithms/planners/GeoPlanner.h"
16#include "../interfaces/State.hpp"
17#include "../util/GeospatialOperations.hpp"
18#include "../util/states/StuckDetection.hpp"
19#include "../vision/aruco/TagDetector.h"
20#include "../vision/objects/ObjectDetector.h"
49 enum class SearchPatternType
63 std::vector<std::shared_ptr<TagDetector>> m_vTagDetectors;
64 std::vector<std::shared_ptr<ObjectDetector>> m_vObjectDetectors;
65 std::vector<geoops::Waypoint> m_vSearchPath;
67 SearchPatternType m_eCurrentSearchPatternType;
69 std::unique_ptr<controllers::PurePursuitController> m_pPursuitController;
75 void Start()
override;
82 std::vector<geoops::Waypoint>
GeoPlanSearchPattern(
const std::vector<geoops::Waypoint>& skeltonPath);
The SearchPatternState class implements the Search Pattern state for the Autonomy State Machine.
Definition SearchPatternState.h:42
void Exit() override
This method is called when the state is exited. It is used to clean up the state.
Definition SearchPatternState.cpp:80
States TriggerEvent(Event eEvent) override
Trigger an event in the state machine. Returns the next state.
Definition SearchPatternState.cpp:337
void Start() override
This method is called when the state is first started. It is used to initialize the state.
Definition SearchPatternState.cpp:35
SearchPatternState()
Construct a new State object.
Definition SearchPatternState.cpp:152
void RemoveRedZonePoints(std::vector< geoops::Waypoint > &skeltonPath)
This method takes in a skeleton path of waypoints and removes any waypoints that are in red zones (ob...
Definition SearchPatternState.cpp:97
std::vector< geoops::Waypoint > GeoPlanSearchPattern(const std::vector< geoops::Waypoint > &skeltonPath)
This method takes in a skeleton path of waypoints and uses the GeoPlanner to create a new path that w...
Definition SearchPatternState.cpp:132
void Run() override
Run the state machine. Returns the next state.
Definition SearchPatternState.cpp:176
The abstract state class. All states inherit from this class.
Definition State.hpp:110
This class should be instantiated within another state to be used for detection of if the rover is st...
Definition StuckDetection.hpp:43
Namespace containing all state machine related classes.
Definition State.hpp:23
Event
The events that can be triggered in the state machine.
Definition State.hpp:52
States
The states that the state machine can be in.
Definition State.hpp:31
This struct is used by the WaypointHandler class to store location, size, and type information about ...
Definition GeospatialOperations.hpp:423