Exemple #1
0
from FSM import *
from ArmNode_1_5 import *


# ============================================================================
# ============================================================================
if __name__ == "__main__":
    try:
        rospy.loginfo("Initialising FSM")
        # Initialise Finite State Machine
        fsm = FSM()
        # Initialise ArmNode
        rArm = ArmNode(fsm)

        # STATE Initialisation
        fsm.AddState("IDLE",         IDLE(fsm, rArm))
        fsm.AddState("ARM_TO_OBJ",   ARM_TO_OBJ(fsm, rArm))
        fsm.AddState("SEARCH_OBJ",   SEARCH_OBJ(fsm, rArm))
        fsm.AddState("ALIGN_CAMERA", ALIGN_CAMERA(fsm, rArm))
        fsm.AddState("WAIT",         WAIT(fsm, rArm))
        fsm.AddState("ALIGN_BLOCK",  ALIGN_BLOCK(fsm, rArm))
        fsm.AddState("APPROACH",     APPROACH(fsm, rArm))
        fsm.AddState("PICK_UP",      PICK_UP(fsm, rArm))
        fsm.AddState("VERIFY",       VERIFY(fsm, rArm))
        fsm.AddState("LOCATE_BIN",   LOCATE_BIN(fsm, rArm))
        fsm.AddState("ALIGN_BIN",    ALIGN_BIN(fsm, rArm))
        fsm.AddState("APPROACH_BIN", APPROACH_BIN(fsm, rArm))
        fsm.AddState("DROPPED",      DROPPED(fsm, rArm))

        # STATE TRANSITION Initialisation
        fsm.AddTransition("to_IDLE",         Transition("IDLE"))