7 #include <aerial_autonomy/arm_events.h>
8 #include <boost/msm/front/euml/operator.hpp>
9 #include <boost/msm/front/functor_row.hpp>
16 template <
class LogicStateMachineT>
25 template <
class Sequence>
27 template <
class G1,
class G2>
28 using bAnd = boost::msm::front::euml::And_<G1, G2>;
88 boost::mpl::vector<typename usa::UAVControllerAbort, ArmRightFold>>;
94 boost::mpl::vector<typename usa::UAVControllerAbort, ArmFold>>;
118 boost::mpl::vector<typename usa::UAVControllerAbort, AbortArmController>>;
139 : boost::mpl::vector<
141 InternalTransitionEvent,
142 ManualControlArmInternalActionFunctor_<LogicStateMachineT>,
144 msmf::Internal<arm_events::PowerOn, ArmPowerOn, msmf::none>,
145 msmf::Internal<arm_events::PowerOff, ArmPowerOff, msmf::none>,
146 msmf::Internal<arm_events::Fold, ArmFold, msmf::none>,
147 msmf::Internal<uav_basic_events::Abort, msmf::none, msmf::none>,
148 msmf::Internal<arm_events::RightAngleFold, ArmRightFold,
Power on the arm.
Definition: arm_functors.h:60
Logic to grab an object, sleep for few seconds Abort UAV, Arm controllers.
Definition: pick_place_functors.h:19
VisualServoingTransitionActionFunctor_< LogicStateMachineT > VisualServoingTransitionAction
Action to take when starting visual servoing.
Definition: visual_servoing_states_actions.h:24
Abort arm controller.
Definition: arm_functors.h:91
bActionSequence< boost::mpl::vector< typename usa::UAVControllerAbort, ArmRightFold >> AbortUAVControllerArmRightFold
Action sequence to abort UAV controller and move arm to right angle.
Definition: pick_place_states_actions.h:88
Definition: pick_place_states_actions.h:138
Base state for all states in logic state machine.
Definition: base_state.h:24
action to fold arm
Definition: arm_functors.h:18
State that uses position control functor to reach a desired goal prior to picking.
Definition: pick_place_functors.h:112
bActionSequence< boost::mpl::vector< typename vsa::VisualServoingTransitionAction, VisualServoingArmTransitionActionFunctor_< LogicStateMachineT, 1 >>> PickTransitionAction
Set goal for visual servoing and also arm controller.
Definition: pick_place_states_actions.h:100
bActionSequence< boost::mpl::vector< typename usa::UAVControllerAbort, AbortArmController >> AbortUAVArmController
Action sequence to abort UAV controller and arm controller angle.
Definition: pick_place_states_actions.h:118
VisualServoingTransitionGuardFunctor_< LogicStateMachineT > VisualServoingTransitionGuard
Check whether visual servoing is feasible currently.
Definition: visual_servoing_states_actions.h:29
action to move arm to right angle
Definition: arm_functors.h:32
bAnd< typename vsa::VisualServoingTransitionGuard, ArmEnabledGuardFunctor_< LogicStateMachineT >> PickTransitionGuard
Guard to stop pick place if arm is not powered or vision is not working.
Definition: pick_place_states_actions.h:125
Power off arm.
Definition: arm_functors.h:46
bActionSequence< boost::mpl::vector< typename usa::UAVControllerAbort, ArmFold >> AbortUAVControllerArmFold
Action sequence to abort UAV controller and move arm to right angle.
Definition: pick_place_states_actions.h:94
Class to provide typedefs for all basic uav states and actions.
Definition: uav_states_actions.h:14
Same state as above. Used to distinguish between landing and takeoff.
Definition: arm_functors.h:165
Class to provide typedefs for all basic uav states and actions.
Definition: pick_place_states_actions.h:17
Set arm goal and set grip to false to start with.
Definition: pick_place_functors.h:85
Class to provide typedefs for all basic uav states and actions.
Definition: visual_servoing_states_actions.h:12
bActionSequence< boost::mpl::vector< typename vsa::VisualServoingTransitionAction, VisualServoingArmTransitionActionFunctor_< LogicStateMachineT, 0 >>> PrePickTransitionAction
Set goal for visual servoing and also arm controller for positioning arm for pick.
Definition: pick_place_states_actions.h:107
State that checks arm status along with regular manual control state.
Definition: pick_place_states_actions.h:137
Same state as above. Used to distinguish between landing and takeoff.
Definition: arm_functors.h:172
boost::msm::front::ActionSequence_< Sequence > bActionSequence
Action sequence to chain multiple actions together.
Definition: pick_place_states_actions.h:26
boost::msm::front::euml::And_< G1, G2 > bAnd
Definition: pick_place_states_actions.h:28
bActionSequence< boost::mpl::vector< ArmPowerOn, ArmFold >> ArmPowerOnFold
Action to take when starting folding arm before takeoff.
Definition: pick_place_states_actions.h:112
Check arm is enabled before picking objects.
Definition: arm_functors.h:74