Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
statemachine Namespace Reference

Namespace containing all state machine related classes. More...

Classes

class  ApproachingMarkerState
 The ApproachingMarkerState class implements the Approaching Marker state for the Autonomy State Machine. More...
 
class  ApproachingObjectState
 The ApproachingObjectState class implements the Approaching Object state for the Autonomy State Machine. More...
 
class  AvoidanceState
 The AvoidanceState class implements the Avoidance state for the Autonomy State Machine. More...
 
class  IdleState
 The IdleState class implements the Idle state for the Autonomy State Machine. More...
 
class  NavigatingState
 The NavigatingState class implements the Navigating state for the Autonomy State Machine. More...
 
class  ReversingState
 The ReversingState class implements the Reversing state for the Autonomy State Machine. More...
 
class  SearchPatternState
 The SearchPatternState class implements the Search Pattern state for the Autonomy State Machine. More...
 
class  State
 The abstract state class. All states inherit from this class. More...
 
class  StuckState
 The StuckState class implements the Stuck state for the Autonomy State Machine. More...
 
class  TimeIntervalBasedStuckDetector
 This class should be instantiated within another state to be used for detection of if the rover is stuck. Stuck detection is solely based off of a check interval on the current velocity and rotation. If the velocity and rotation are non-moving for more then a maximum interval count, we are considered stuck. More...
 
class  VerifyingMarkerState
 The VerifyingMarkerState class implements the Verifying Marker state for the Autonomy State Machine. More...
 
class  VerifyingObjectState
 The VerifyingObjectState class implements the Verifying Object state for the Autonomy State Machine. More...
 
class  VerifyingPositionState
 The VerifyingPositionState class implements the Verifying Position state for the Autonomy State Machine. More...
 

Enumerations

enum class  States {
  eIdle , eNavigating , eSearchPattern , eApproachingMarker ,
  eApproachingObject , eVerifyingPosition , eVerifyingMarker , eVerifyingObject ,
  eAvoidance , eReversing , eStuck , NUM_STATES
}
 The states that the state machine can be in. More...
 
enum class  Event {
  eStart , eReachedGpsCoordinate , eReachedMarker , eReachedObject ,
  eMarkerSeen , eObjectSeen , eMarkerUnseen , eObjectUnseen ,
  eVerifyingComplete , eVerifyingFailed , eAbort , eRestart ,
  eObstacleAvoidance , eEndObstacleAvoidance , eNoWaypoint , eNewWaypoint ,
  eReverse , eReverseComplete , eSearchFailed , eStuck ,
  eUnstuck , NUM_EVENTS
}
 The events that can be triggered in the state machine. More...
 

Functions

std::string StateToString (States eState)
 Converts a state object to a string.
 

Detailed Description

Namespace containing all state machine related classes.

Author
Eli Byrd (edbgk.nosp@m.k@ms.nosp@m.t.edu)
Date
2024-01-17
Author
Eli Byrd (edbgk.nosp@m.k@ms.nosp@m.t.edu)
Date
2024-05-24
Author
clayjay3 (clayt.nosp@m.onra.nosp@m.ycowe.nosp@m.n@gm.nosp@m.ail.c.nosp@m.om)
Date
2024-04-23

Enumeration Type Documentation

◆ States

enum class statemachine::States
strong

The states that the state machine can be in.

Author
Eli Byrd (edbgk.nosp@m.k@ms.nosp@m.t.edu)
Date
2024-01-18
31 {
32 eIdle,
33 eNavigating,
34 eSearchPattern,
35 eApproachingMarker,
36 eApproachingObject,
37 eVerifyingPosition,
38 eVerifyingMarker,
39 eVerifyingObject,
40 eAvoidance,
41 eReversing,
42 eStuck,
43
44 NUM_STATES
45 };

◆ Event

enum class statemachine::Event
strong

The events that can be triggered in the state machine.

Author
Eli Byrd (edbgk.nosp@m.k@ms.nosp@m.t.edu)
Date
2024-01-18
54 {
55 eStart,
56 eReachedGpsCoordinate,
57 eReachedMarker,
58 eReachedObject,
59 eMarkerSeen,
60 eObjectSeen,
61 eMarkerUnseen,
62 eObjectUnseen,
63 eVerifyingComplete,
64 eVerifyingFailed,
65 eAbort,
66 eRestart,
67 eObstacleAvoidance,
68 eEndObstacleAvoidance,
69 eNoWaypoint,
70 eNewWaypoint,
71 eReverse,
72 eReverseComplete,
73 eSearchFailed,
74 eStuck,
75 eUnstuck,
76
77 NUM_EVENTS
78 };

Function Documentation

◆ StateToString()

std::string statemachine::StateToString ( States  eState)
inline

Converts a state object to a string.

Parameters
eState-
Returns
std::string -
Author
Eli Byrd (edbgk.nosp@m.k@ms.nosp@m.t.edu)
Date
2024-01-18
90 {
91 switch (eState)
92 {
93 case States::eIdle: return "Idle";
94 case States::eNavigating: return "Navigating";
95 case States::eSearchPattern: return "Search Pattern";
96 case States::eApproachingMarker: return "Approaching Marker";
97 case States::eApproachingObject: return "Approaching Object";
98 case States::eVerifyingPosition: return "Verifying Position";
99 case States::eVerifyingMarker: return "Verifying Marker";
100 case States::eVerifyingObject: return "Verifying Object";
101 case States::eAvoidance: return "Avoidance";
102 case States::eReversing: return "Reversing";
103 case States::eStuck: return "Stuck";
104 default: return "Unknown";
105 }
106 }
Here is the caller graph for this function: