7 #include <aerial_autonomy/uav_basic_events.h>
8 #include <glog/logging.h>
9 #include <parsernode/common.h>
11 namespace be = uav_basic_events;
20 template <
class LogicStateMachineT,
class AbortEventT = ManualControlEvent>
29 bool run(
UAVSystem &robot_system, LogicStateMachineT &logic_state_machine) {
30 parsernode::common::quaddata data = robot_system.
getUAVData();
32 if (!data.rc_sdk_control_switch) {
33 VLOG(1) <<
"Switching to Manual UAV state";
34 logic_state_machine.process_event(AbortEventT());
36 }
else if (data.batterypercent <
38 LOG(WARNING) <<
"Battery too low! " << data.batterypercent
40 logic_state_machine.process_event(be::Land());
55 template <
class LogicStateMachineT,
class ControllerConnector,
56 bool check_completed =
true>
66 bool run(
UAVSystem &robot_system, LogicStateMachineT &logic_state_machine) {
70 VLOG(1) <<
"Reached goal for " <<
typeid(ControllerConnector).name();
71 logic_state_machine.process_event(
Completed());
74 LOG(WARNING) <<
"Controller critical for "
75 <<
typeid(ControllerConnector).name();
76 logic_state_machine.process_event(be::Abort());
89 template <
class LogicStateMachineT>
97 template <
class LogicStateMachineT>
Logic to abort if controller status is critical.
Definition: hovering_functors.h:57
bool run(UAVSystem &robot_system, LogicStateMachineT &logic_state_machine)
check if controller status is critical and abort; similarly if controller status is completed raise c...
Definition: hovering_functors.h:66
Base state for all states in logic state machine.
Definition: base_state.h:24
Completed Event for transition from for example Landing to Landed etc.
Definition: completed_event.h:6
Internal action that returns whether it processed an event.
Definition: base_functors.h:208
Status of the controller.
Definition: controller_status.h:10
Owns, initializes, and facilitates communication between different hardware/software components...
Definition: uav_system.h:21
parsernode::common::quaddata getUAVData() const
Get sensor data from UAV.
Definition: uav_system.h:109
ControllerStatus getStatus() const
Get the status of a controller.
Definition: base_robot_system.h:95
bool run(UAVSystem &robot_system, LogicStateMachineT &logic_state_machine)
Checks for enough battery voltage and land if battery critical.
Definition: hovering_functors.h:29
Internal action when hovering.
Definition: hovering_functors.h:21
UAVSystemConfig getConfiguration()
Get system configuration.
Definition: uav_system.h:192
Controller completed.
Definition: controller_status.h:17
Controller is critical and unable to continue.
Definition: controller_status.h:18