RCV state machine - AD-EYE/AD-EYE_Core GitHub Wiki
The RCV state machine is entirely in manager.py
in the class ManagerStateMachine
where the states are defined in an enum.
Features list containing the keyword ALLOWED
in manager.py
define which features can be started in that specific state (those features can be started from topic, gui or default feature lists).
Features lists containing the keyword DEFAULT
define which features are activated automatically for each state as shown in the following code excerpt.
The following code shows those two feature lists for the engages state.
ENGAGED_DEFAULT_FEATURES = [
# "Recording",
"Map",
"Sensing",
# "Localization",
"Fake_Localization",
"Detection",
"Mission_Planning",
"Motion_Planning",
"Switch",
"SSMP",
"Rviz",
# "Experiment_specific_recording"
]
ENGAGED_ALLOWED_FEATURES = [
"Recording",
"Map",
"Sensing",
"Localization",
"Fake_Localization",
"Detection",
"Mission_Planning",
"Motion_Planning",
"Switch",
"SSMP",
"Rviz",
"Experiment_specific_recording"
]
The change of state can be done by publishing a Boolean on a certain topic according to the following diagram.
Rosbags
Rosbags are saved in the path defined in the variable ROSBAG_PATH
(not this path is from home as later ~ is added as a prefix)
Bash is used to start and stop rosbags recordings.