Esempio n. 1
0
                        setWalkVelocity, stopWalking)

# Import functions we've written
from functions import (leftFoot, rightFoot)

#create states

kickRightState = createState("kickRightState", lambda: kick("right"))
kickLeftState = createState("kickLeftState", lambda: kick("left"))
stopWalkingState = createState("stopWalkingState", stopWalking)
stopWalkingState2 = createState("stopWalkingState2", stopWalking)

# FSM for kicking the ball

kickBallFSM = createFSM("kickBallFSM")
addStates(kickBallFSM, kickRightState, kickLeftState, stopWalkingState,
          stopWalkingState2)

setInitialState(kickBallFSM, stopWalkingState)

# Transitions

addTransition(stopWalkingState, leftFoot, kickLeftState)
addTransition(stopWalkingState, rightFoot, kickRightState)

addTransition(kickLeftState, lambda wm: True, stopWalkingState2)
addTransition(kickRightState, lambda wm: True, stopWalkingState2)

# Prints out completed transitions

setPrintTransition(kickBallFSM, True)
Esempio n. 2
0
# Create states for waiting for touch

waitSittingState = createState("waitSittingState", lambda: None)
waitStandingState = createState("waitStandingState", lambda: None)

# Create states for function calls

# Add transitions according to the state diagram
addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, sayLetsWalkState)
addTransition(sayLetsWalkState, lambda wm: True, walkState)
addTransition(walkState, walkTime, stopWalkState)
addTransition(stopWalkState, lambda wm: True, rotateState)
addTransition(rotateState, rotateTime, uTurnState)
addTransition(uTurnState, uTurnTime, stopWalk2State)
addTransition(stopWalk2State, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
myFSM = createFSM("fsm")
addStates(myFSM, waitSittingState, waitStandingState, standState,
          sayLetsWalkState, sayGoodbyeState, sitState, restState,
          shutdownState, walkState, stopWalkState, rotateState, uTurnState,
          sayRotateState, sayUTurnState, stopWalk2State)

setPrintTransition(myFSM, True)

# Set the initial state to waitSittingState
setInitialState(myFSM, waitSittingState)
Esempio n. 3
0
	addTransition, addStates,
	setInitialState, readWM, setPrintTransition)	

# Import primitive robot behaviors
from api.pubapi import (sit, stand, rest, say, shutdown, communicate, stopWalking,
                        resetSubFSM, setCamera, setLED)

# Import functions we've written
from functions import (detectTouch, touchDelay, waitForSit, seeBall, noSeeBall, closeToFeet,
                       seeNao, oneKick, cameraDelay)

waitSittingState = createState("waitSittingState", lambda : None)
standState = createState("standState", stand)
sitState = createState("sitState", sit)
restState = createState("restState", rest)
shutdownState = createState("shutdownState",
				lambda: shutdown("Final state reached"))

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, seeNao, sitState)
addTransition(standState, touchDelay, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

testFSM = createFSM("testFSM")
addStates(testFSM, standState, sitState, restState, shutdownState, waitSittingState)

setInitialState(testFSM, waitSittingState)

setPrintTransition(testFSM, True)
Esempio n. 4
0
# The main FSM

# Transitions for the mainFSM

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, lookBallFSM)
addTransition(lookBallFSM, seeBall, kickBallFSM)
addTransition(kickBallFSM, noSeeBall, resetKickBallState)

addTransition(resetKickBallState, lambda wm: True, stopWalkState)
addTransition(stopWalkState, lambda wm: True, resetLookBallState)
addTransition(resetLookBallState, lambda wm: True, lookBallFSM)

addTransition(kickBallFSM, detectTouch, stopWalkState2)
addTransition(lookBallFSM, detectTouch, stopWalkState2)

addTransition(stopWalkState2, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, standState, sitState, restState,
          shutdownState, lookBallFSM, kickBallFSM, stopWalkState,
          stopWalkState2, resetLookBallState, resetKickBallState)

setInitialState(mainFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(mainFSM, True)
Esempio n. 5
0
stopWalkingState = createState("stopWalkingState", stopWalking)
stopRotateState = createState("stopRotateState", stopWalking)

# Transitions for the findGoalFSM

addTransition(rotateLeftState, seeGoal, stopWalkingState)
addTransition(rotateLeftState, seeGoalLeft, rotateRightState)
addTransition(rotateLeftState, seeGoalSingle, stopRotateState)

addTransition(rotateRightState, seeGoal, stopWalkingState)
addTransition(rotateRightState, seeGoalRight, rotateLeftState)
addTransition(rotateRightState, seeGoalSingle, stopRotateState)

addTransition(stopRotateState, lambda wm: True, lookUpState)

addTransition(lookUpState, seeGoal, stopWalkingState)
addTransition(lookUpState, seeGoalRight, rotateLeftState)
addTransition(lookUpState, seeGoalLeft, rotateRightState)

addTransition(stopWalkingState, lambda wm: True, lookDownState)

findGoalFSM = createFSM("findGoalFSM")
addStates(findGoalFSM, stopWalkingState, lookUpState, lookDownState,
          rotateLeftState, rotateRightState, stopRotateState)

setInitialState(findGoalFSM, rotateLeftState)

# Prints all the completed transitions

setPrintTransition(findGoalFSM, True)
Esempio n. 6
0
standState = createState("standState", stand)
shutdownState = createState("shutdownState",
				lambda : shutdown("Final state reached"))
stopWalkState = createState("stopWalkState", stopWalking)
circleLeftState = createState("circleLeftState", lambda: setWalkVelocity(0, 1, -0.45))
circleRightState = createState("circleRightState", lambda: setWalkVelocity(0, 1, 0.45))

# The main FSM

# Transitions for the mainFSM

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, circleLeftState)

addTransition(circleLeftState, detectTouch, stopWalkState)

addTransition(stopWalkState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, standState, sitState,
          restState, shutdownState, circleLeftState, circleRightState,
          stopWalkState)
          
setInitialState(mainFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(mainFSM, True)
Esempio n. 7
0
archRightState = createState("archRightState", lambda: setWalkVelocity(0.65, 0, -0.15))
walkToBallState = createState("walkToBallState", lambda: setWalkVelocity(0.6, 0, 0))
watchBallState = createState("watchBallState", lambda wm: lookAtBall2(wm))
stopWalkingState = createState("stopWalkingState", stopWalking)
stopWalkingState2 = createState("stopWalkingState2", stopWalking) 
setBottomCamState = createState("setBottomCamState", lambda: setCamera("bottom"))
setBottomLedState = createState("setBottomLedState", lambda: setLED("eyes", 1,0,0))
kickRightState = createState("kickRightState", lambda: kick("right"))
kickLeftState = createState("kickLeftState", lambda: kick("left"))


# FSM for following the ball

goToBallFSM = createFSM("goToBallFSM")
addStates(goToBallFSM, rotateLeftState, rotateRightState, walkToBallState,
          watchBallState, stopWalkingState, stopWalkingState2, setBottomLedState,
          setBottomCamState, kickRightState, kickLeftState, archRightState, 
          archLeftState)

setInitialState(goToBallFSM, watchBallState)

# Transitions

addTransition(watchBallState, farPositiveYaw, archLeftState)
addTransition(watchBallState, farNegativeYaw, archRightState)
addTransition(watchBallState, positiveYaw, rotateLeftState)
addTransition(watchBallState, negativeYaw, rotateRightState)
addTransition(watchBallState, zeroYaw, walkToBallState)

addTransition(rotateRightState, zeroYaw, walkToBallState)
addTransition(rotateRightState, lambda wm: True, watchBallState)
addTransition(archRightState, zeroYaw, walkToBallState)
Esempio n. 8
0
                               lambda: communicate("puff", "Stand"))

sendSitStatus = createState("sendSitStatus", 
                            lambda: communicate("puff", "Sit"))

# States for talking

sayShutdownState = createState("sayShutdownState", lambda: say("Shutting Down"))


# Add transitions according to the state diagram
addTransition(waitSittingState, detectTouch, sendStandStatus)
addTransition(sendStandStatus, lambda wm: True, waitSittingState2)
addTransition(waitSittingState2, touchDelay, sendSitStatus)
addTransition(sendSitStatus, lambda wm: True, waitSittingState3)
addTransition(waitSittingState3, touchDelay, sayShutdownState)
addTransition(sayShutdownState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)


# Create the FSM and add the states created above
mainFSM = createFSM("mainFSM")
addStates(mainFSM , waitSittingState, waitSittingState2, waitSittingState3, 
          sendStandStatus, sendSitStatus, 
          restState, shutdownState, sayShutdownState)

# Set the initial state to waitSittingState
setInitialState(mainFSM, waitSittingState)

setPrintTransition(mainFSM, True)
Esempio n. 9
0
                           setInitialState, readWM, setPrintTransition)

# Import primitive robot behaviors
from api.pubapi import (sit, stand, rest, say, shutdown, communicate,
                        stopWalking, resetSubFSM, setCamera, setLED)

# Import functions we've written
from functions import (detectTouch, touchDelay, waitForSit, seeBall, noSeeBall,
                       closeToFeet, seeNao, oneKick, cameraDelay)

waitSittingState = createState("waitSittingState", lambda: None)
standState = createState("standState", stand)
sitState = createState("sitState", sit)
restState = createState("restState", rest)
shutdownState = createState("shutdownState",
                            lambda: shutdown("Final state reached"))

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, seeNao, sitState)
addTransition(standState, touchDelay, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

testFSM = createFSM("testFSM")
addStates(testFSM, standState, sitState, restState, shutdownState,
          waitSittingState)

setInitialState(testFSM, waitSittingState)

setPrintTransition(testFSM, True)
Esempio n. 10
0
# Create states for talking

sayHelloState = createState("sayHelloState", lambda: say("Hello World"))
sayGoodbyeState = createState("sayGoodbyeState", lambda: say("Goodbye World!"))

# Create states for waiting for touch

waitSittingState = createState("waitSittingState", lambda: None)
waitStandingState = createState("waitStandingState", lambda: None)

# Create communcationsstates

# Add transitions according to the state diagram
addTransition(waitSittingState, waitForStand, standState)
addTransition(standState, lambda wm: True, sayHelloState)
addTransition(sayHelloState, lambda wm: True, waitStandingState)
addTransition(waitStandingState, waitForSit, sayGoodbyeState)
addTransition(sayGoodbyeState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
secondFSM = createFSM("secondFSM")
addStates(secondFSM, waitSittingState, waitStandingState, standState,
          sayHelloState, sayGoodbyeState, sitState, restState, shutdownState)

# Set the initial state to waitSittingState
setInitialState(secondFSM, waitSittingState)

setPrintTransition(secondFSM, True)
Esempio n. 11
0
# Create states for function calls


# Add transitions according to the state diagram
addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, sayLetsWalkState)
addTransition(sayLetsWalkState, lambda wm: True, walkState)
addTransition(walkState, walkTime, stopWalkState)
addTransition(stopWalkState, lambda wm: True, rotateState)
addTransition(rotateState, rotateTime, uTurnState)
addTransition(uTurnState, uTurnTime, stopWalk2State)
addTransition(stopWalk2State, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
myFSM = createFSM("fsm")
addStates(myFSM, waitSittingState, waitStandingState,  standState, 
          sayLetsWalkState, sayGoodbyeState, sitState, restState,
          shutdownState, walkState, stopWalkState, rotateState, 
          uTurnState, sayRotateState, sayUTurnState, 
          stopWalk2State)
 
setPrintTransition(myFSM, True)

# Set the initial state to waitSittingState
setInitialState(myFSM, waitSittingState)


Esempio n. 12
0
# Create states

waitSittingState = createState("waitSittingState", lambda: None)
standState = createState("standState", stand)
sitState = createState("sitState", sit)
restState = createState("restState", rest)
stopWalkState = createState("stopWalkState", stopWalking)
shutdownState = createState("shutdownState",
				lambda: shutdown("Final state reached"))



# Add transitions 

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, walkObstacleFSM)
addTransition(walkObstacleFSM, detectTouch, stopWalkState)
addTransition(stopWalkState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
mainFSM = createFSM("mainFSM")
addStates(mainFSM, walkObstacleFSM, waitSittingState, standState, 
          stopWalkState, sitState, restState, shutdownState)

# Set the initial state to waitSittingState
setInitialState(mainFSM, waitSittingState)

setPrintTransition(mainFSM, True)
Esempio n. 13
0
resetLookBallState = createState("resetLookBallState", lambda: resetSubFSM(lookBallFSM))

# The main FSM

# Transitions for the mainFSM

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, lookBallFSM)
addTransition(lookBallFSM, seeBall, followBallFSM)
addTransition(followBallFSM, noSeeBall, resetFollowBallState)

addTransition(resetFollowBallState, lambda wm: True, stopWalkState)
addTransition(stopWalkState, lambda wm: True, lookBallFSM)

addTransition(followBallFSM, detectTouch, sitState)
addTransition(lookBallFSM, detectTouch, sitState)

addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, standState, sitState,
          restState, shutdownState, lookBallFSM, followBallFSM,
          stopWalkState, resetLookBallState, resetFollowBallState)
          
setInitialState(mainFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(mainFSM, True)
Esempio n. 14
0
                              lambda: setWalkVelocity(0.6, 0, 0))
watchBallState = createState("watchBallState", lambda wm: lookAtBall2(wm))
stopWalkingState = createState("stopWalkingState", stopWalking)
stopWalkingState2 = createState("stopWalkingState2", stopWalking)
setBottomCamState = createState("setBottomCamState",
                                lambda: setCamera("bottom"))
setBottomLedState = createState("setBottomLedState",
                                lambda: setLED("eyes", 1, 0, 0))
kickRightState = createState("kickRightState", lambda: kick("right"))
kickLeftState = createState("kickLeftState", lambda: kick("left"))

# FSM for following the ball

goToBallFSM = createFSM("goToBallFSM")
addStates(goToBallFSM, rotateLeftState, rotateRightState, walkToBallState,
          watchBallState, stopWalkingState, stopWalkingState2,
          setBottomLedState, setBottomCamState, kickRightState, kickLeftState,
          archRightState, archLeftState)

setInitialState(goToBallFSM, watchBallState)

# Transitions

addTransition(watchBallState, farPositiveYaw, archLeftState)
addTransition(watchBallState, farNegativeYaw, archRightState)
addTransition(watchBallState, positiveYaw, rotateLeftState)
addTransition(watchBallState, negativeYaw, rotateRightState)
addTransition(watchBallState, zeroYaw, walkToBallState)

addTransition(rotateRightState, zeroYaw, walkToBallState)
addTransition(rotateRightState, lambda wm: True, watchBallState)
addTransition(archRightState, zeroYaw, walkToBallState)
Esempio n. 15
0
addTransition(waitSittingState, waitForStand, standState)
addTransition(standState, waitForFindBall, lookBallFSM)
addTransition(lookBallFSM, seeBall, resetLookBallState)
addTransition(resetLookBallState, lambda wm: True, goToBallFSM)
addTransition(goToBallFSM, noSeeBall, resetgoToBallState)
addTransition(resetgoToBallState, lambda wm: True, lookBallFSM)
addTransition(goToBallFSM, closeToFeet, stopWalkState)
addTransition(stopWalkState, lambda wm: True, sendSitStatus)

addTransition(goToBallFSM, detectTouch, stopWalkState2)
addTransition(lookBallFSM, detectTouch, stopWalkState2)
addTransition(stopWalkState2, lambda wm: True, sendSitStatus)

addTransition(sendSitStatus, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)


secondFSM = createFSM("secondFSM")
addStates(secondFSM, waitSittingState, standState, sitState, goToBallFSM,
          restState, shutdownState, lookBallFSM,
          stopWalkState, stopWalkState2, sendSitStatus,
          resetLookBallState, resetgoToBallState)
          
setInitialState(secondFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(secondFSM, True)
Esempio n. 16
0
from followBallFSM import (followBallFSM, rotateLeftState, rotateRightState,
                           walkToBallState, watchBallState, stopWalkingState,
                           stopWalkingState2, followBallFSM)


def detectTouch(wm):
    return readWM(wm, "tactile", "middle")


waitSittingState = createState("waitSittingState", lambda: None)
sitState = createState("sitState", sit)
restState = createState("restState", rest)
standState = createState("standState", stand)
shutdownState = createState("shutdownState",
                            lambda: shutdown("Final state reached"))

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, sitState, restState, standState,
          shutdownState, followBallFSM)

setInitialState(mainFSM, waitSittingState)

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, followBallFSM)
addTransition(followBallFSM, detectTouch, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

setPrintTransition(mainFSM, True)
Esempio n. 17
0
addTransition(stopWalkingState2, lambda wm: True, setBottomCamState)
addTransition(setBottomCamState, lambda wm: True, setBottomLedState)
addTransition(setBottomLedState, lambda wm: True, lookDownState)

addTransition(lookDownState, seeBall, kickBallFSM)
addTransition(lookDownState, noSeeBall, stopWalkingState3)

addTransition(stopWalkingState3, lambda wm: True, resetLookBallState)
addTransition(resetLookBallState, lambda wm: True, lookBallFSM)

addTransition(kickBallFSM, oneKick, sendFindBallStatus)

addTransition(sendFindBallStatus, lambda wm: True, stopWalkingState4)
addTransition(stopWalkingState4, waitForSit, sitState)

addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, setBottomCamState, setBottomLedState,
          sendStandStatus, sendFindBallStatus, resetLookBallState, resetgoToBallState, resetFindNaoState,
          sitState, standState, lookBallFSM, goToBallFSM, findNaoFSM, kickBallFSM,
          restState, shutdownState, stopWalkingState, stopWalkingState2, stopWalkingState3, 
          stopWalkingState4, setTopCamState, setTopLedState, lookDownState)

# Set the initial state to waitSittingState
setInitialState(mainFSM, waitSittingState)

setPrintTransition(mainFSM, True)
Esempio n. 18
0
stopWalkingState = createState("stopWalkingState", stopWalking)
stopRotateState = createState("stopRotateState", stopWalking)

# Transitions for the findGoalFSM

addTransition(rotateLeftState, seeGoal, stopWalkingState)
addTransition(rotateLeftState, seeGoalLeft, rotateRightState)
addTransition(rotateLeftState, seeGoalSingle, stopRotateState)

addTransition(rotateRightState, seeGoal, stopWalkingState)
addTransition(rotateRightState, seeGoalRight, rotateLeftState)
addTransition(rotateRightState, seeGoalSingle, stopRotateState)

addTransition(stopRotateState, lambda wm: True, lookUpState)

addTransition(lookUpState, seeGoal, stopWalkingState)
addTransition(lookUpState, seeGoalRight, rotateLeftState)
addTransition(lookUpState, seeGoalLeft, rotateRightState)

addTransition(stopWalkingState, lambda wm: True, lookDownState)

findGoalFSM = createFSM("findGoalFSM")
addStates(findGoalFSM, stopWalkingState, lookUpState, lookDownState,
          rotateLeftState, rotateRightState, stopRotateState)
          
setInitialState(findGoalFSM, rotateLeftState)

# Prints all the completed transitions

setPrintTransition(findGoalFSM, True)
Esempio n. 19
0
rightStepState = createState("rightStepState", lambda: setWalkVelocity(0, -0.5, 0))

# Transitions for the findGoalFSM

addTransition(standState, leftFoot, leftStepState)
addTransition(standState, rightFoot, rightStepState)
addTransition(standState, betweenFeet, lookStraightState)

addTransition(leftStepState, oneStep, lookStraightState)
addTransition(rightStepState, oneStep, lookStraightState)

addTransition(lookStraightState, lambda wm: True, setTopCameraState)
addTransition(setTopCameraState, lambda wm: True, topLedState)
addTransition(topLedState, lambda wm: True, circleLeftState)

addTransition(circleLeftState, seeNao, stopWalkingState)


findNaoFSM = createFSM("findNaoFSM")
addStates(findNaoFSM, stopWalkingState, lookUpState,
          circleLeftState, circleRightState, stopRotateState, topLedState,
          setTopCameraState, lookStraightState, leftStepState, rightStepState,
          standState)
         
          
setInitialState(findNaoFSM, standState)

# Prints all the completed transitions

setPrintTransition(findNaoFSM, True)
Esempio n. 20
0
addTransition(goToBallFSM, closeToFeet, stopWalkState3)
addTransition(stopWalkState3, waitForKick, lookDownState)

addTransition(lookDownState, seeBall, kickBallFSM)
addTransition(lookDownState, noSeeBall, stopWalkState)

addTransition(kickBallFSM, oneKick, stopWalkState4)
addTransition(stopWalkState4, waitForSit, sitState)

addTransition(goToBallFSM, detectTouch, stopWalkState2)
addTransition(lookBallFSM, detectTouch, stopWalkState2)
addTransition(kickBallFSM, detectTouch, stopWalkState2)

addTransition(stopWalkState2, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)


secondFSM = createFSM("secondFSM")
addStates(secondFSM, waitSittingState, standState, sitState, goToBallFSM,
          restState, shutdownState, lookBallFSM, kickBallFSM, resetgoToBallState,
          stopWalkState, stopWalkState2, stopWalkState3, stopWalkState4,
          resetKickBallState, resetLookBallState, setBottomCameraState, bottomLedState,
          lookDownState, resetFindGoalState)
          
setInitialState(secondFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(secondFSM, True)
Esempio n. 21
0
from fsm.functions import (
	createState, createFSM,
	addTransition, addStates,
	setInitialState)	
# Import primitive robot behaviors
from api.pubapi import (sit, stand, rest, say, shutdown)

# Create states
sitState = createState("sitState", sit)
standState = createState("standState", stand)
restState = createState("restState", rest)
shutdownState = createState("shutdownState",
				lambda : shutdown("Final state reached"))

# Create a state which commands the robot to say "Hello World!"
sayState = createState("sayState", lambda: say("Hello World")) 

# Add transitions between states
addTransition(standState, lambda wm: True, sayState)
addTransition(sayState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)


# Create the FSM and add the states created above
myFSM = createFSM("fsm")
addStates(myFSM, standState, sayState, sitState, restState, shutdownState)

# Set the initial state to standState
setInitialState(myFSM, standState)
Esempio n. 22
0
                                 lambda: setCamera("top"))
lookAtBallState = createState("lookAtBallState", lambda wm: lookAtBall(wm))
rotateState = createState("rotateState", lambda: setWalkVelocity(0, 0, 0.5))
bottomLedState = createState("bottomLedState",
                             lambda: setLED("eyes", 1, 0, 0))  # Red
topLedState = createState("topLedState",
                          lambda: setLED("eyes", 0, 1, 0))  # Green
topLedState2 = createState("topLedState2",
                           lambda: setLED("eyes", 0, 1, 0))  # Green
stopWalkState = createState("stopWalkState", stopWalking)

# FSM for searching for the ball

lookBallFSM = createFSM("lookBallFSM")
addStates(lookBallFSM, shakeHeadState, stopWalkState, setTopCameraState,
          setTopCameraState2, setBottomCameraState, bottomLedState,
          topLedState, lookAtBallState, rotateState, shakeHeadState2,
          topLedState2)

setInitialState(lookBallFSM, shakeHeadState)

# Transitions

addTransition(shakeHeadState, seeBall, lookAtBallState)
addTransition(shakeHeadState, shakeHeadTime, setBottomCameraState)
addTransition(setBottomCameraState, cameraDelay, bottomLedState)

addTransition(bottomLedState, lambda wm: True, shakeHeadState2)
addTransition(shakeHeadState2, seeBall, lookAtBallState)
addTransition(shakeHeadState2, shakeHeadTime, setTopCameraState)
addTransition(setTopCameraState, cameraDelay, topLedState)
Esempio n. 23
0
# States for talking

sayShutdownState = createState("sayShutdownState",
                               lambda: say("Shutting Down"))

# Add transitions according to the state diagram
addTransition(waitSittingState, detectTouch, sendStandStatus)

addTransition(sendStandStatus, lambda wm: True, waitSittingState2)
addTransition(waitSittingState2, touchDelay, sendKickStatus)

addTransition(sendKickStatus, lambda wm: True, waitSittingState3)
addTransition(waitSittingState3, touchDelay, sendSitStatus)

addTransition(sendSitStatus, lambda wm: True, waitSittingState4)
addTransition(waitSittingState4, touchDelay, sayShutdownState)

addTransition(sayShutdownState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, waitSittingState2, waitSittingState3,
          waitSittingState4, sendStandStatus, sendSitStatus, sendKickStatus,
          restState, shutdownState, sayShutdownState)

# Set the initial state to waitSittingState
setInitialState(mainFSM, waitSittingState)

setPrintTransition(mainFSM, True)
Esempio n. 24
0
setBottomCameraState = createState("setBottomCameraState", lambda : setCamera("bottom"))
setTopCameraState2 = createState("setTopCameraState2", lambda : setCamera("top"))
lookAtBallState = createState("lookAtBallState", lambda wm : lookAtBall2(wm))
rotateState = createState("rotateState", lambda : setWalkVelocity(0, 0, 0.5))
bottomLedState = createState("bottomLedState", lambda : setLED("eyes", 1, 0, 0)) # Red
topLedState = createState("topLedState", lambda : setLED("eyes", 0, 1, 0)) # Green
topLedState2 = createState("topLedState2", lambda : setLED("eyes", 0, 1, 0)) # Green
stopWalkState = createState("stopWalkState", stopWalking)


# FSM for searching for the ball

lookBallFSM = createFSM("lookBallFSM")
addStates(lookBallFSM, shakeHeadState, stopWalkState,
          setTopCameraState, setTopCameraState2, 
          setBottomCameraState, bottomLedState,
          topLedState, lookAtBallState, rotateState,
          shakeHeadState2,topLedState2)

setInitialState(lookBallFSM, shakeHeadState)

# Transitions

addTransition(shakeHeadState, seeBall, lookAtBallState)
addTransition(shakeHeadState, shakeHeadTime, setBottomCameraState)
addTransition(setBottomCameraState, cameraDelay, bottomLedState)


addTransition(bottomLedState, lambda wm: True, shakeHeadState2)
addTransition(shakeHeadState2, seeBall, lookAtBallState)
addTransition(shakeHeadState2, shakeHeadTime, setTopCameraState)
Esempio n. 25
0
restState = createState("restState", rest)
shutdownState = createState("shutdownState",
				lambda : shutdown("Final state reached"))

# Create states for talking

sayHelloState = createState("sayHelloState", lambda: say("Hello World"))
sayGoodbyeState = createState("sayGoodbyeState", lambda: say("Goodbye World!"))
 
# Create states for waiting for touch

waitSittingState = createState("waitSittingState", lambda : None)
waitStandingState = createState("waitStandingState", lambda : None)

# Add transitions according to the state diagram
addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, sayHelloState)
addTransition(sayHelloState, lambda wm: True, waitStandingState)
addTransition(waitStandingState, detectTouch, sayGoodbyeState)
addTransition(sayGoodbyeState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
myFSM = createFSM("fsm")
addStates(myFSM, waitSittingState, waitStandingState,  standState, 
          sayHelloState, sayGoodbyeState, sitState, restState, shutdownState)

# Set the initial state to waitSittingState
setInitialState(myFSM, waitSittingState)
Esempio n. 26
0
# The main FSM

# Transitions for the mainFSM

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, lookBallFSM)
addTransition(lookBallFSM, seeBall, kickBallFSM)
addTransition(kickBallFSM, noSeeBall, resetKickBallState)

addTransition(resetKickBallState, lambda wm: True, stopWalkState)
addTransition(stopWalkState, lambda wm: True, resetLookBallState)
addTransition(resetLookBallState, lambda wm: True, lookBallFSM)

addTransition(kickBallFSM, detectTouch, stopWalkState2)
addTransition(lookBallFSM, detectTouch, stopWalkState2)

addTransition(stopWalkState2, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, standState, sitState,
          restState, shutdownState, lookBallFSM, kickBallFSM,
          stopWalkState, stopWalkState2, resetLookBallState, resetKickBallState)
          
setInitialState(mainFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(mainFSM, True)
Esempio n. 27
0
shutdownState = createState("shutdownState",
				lambda : shutdown("Final state reached"))
stopWalkState = createState("stopWalkState", stopWalking)
lookAtGoalState = createState("lookAtGoalState", stopWalking)

# The main FSM

# Transitions for the mainFSM

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, findGoalFSM)
addTransition(findGoalFSM, seeGoal, lookAtGoalState)

addTransition(findGoalFSM, detectTouch, stopWalkState)
addTransition(lookAtGoalState, detectTouch, stopWalkState)

addTransition(stopWalkState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, standState, sitState,
          restState, shutdownState, findGoalFSM, lookAtGoalState,
          stopWalkState)
          
setInitialState(mainFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(mainFSM, True)
Esempio n. 28
0
from walkObstacleFSM import (walkObstacleFSM)

# Create states

waitSittingState = createState("waitSittingState", lambda: None)
standState = createState("standState", stand)
sitState = createState("sitState", sit)
restState = createState("restState", rest)
stopWalkState = createState("stopWalkState", stopWalking)
shutdownState = createState("shutdownState",
                            lambda: shutdown("Final state reached"))

# Add transitions

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, walkObstacleFSM)
addTransition(walkObstacleFSM, detectTouch, stopWalkState)
addTransition(stopWalkState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
mainFSM = createFSM("mainFSM")
addStates(mainFSM, walkObstacleFSM, waitSittingState, standState,
          stopWalkState, sitState, restState, shutdownState)

# Set the initial state to waitSittingState
setInitialState(mainFSM, waitSittingState)

setPrintTransition(mainFSM, True)
Esempio n. 29
0
                               lambda: setWalkVelocity(0, 0, -0.15))
walkToBallState = createState("walkToBallState",
                              lambda: setWalkVelocity(1, 0, 0))
watchBallState = createState("watchBallState", lambda wm: lookAtBall(wm))
stopWalkingState = createState("stopWalkingState", stopWalking)
stopWalkingState2 = createState("stopWalkingState2", stopWalking)
setBottomCamState = createState("setBottomCamState",
                                lambda: setCamera("bottom"))
setBottomLedState = createState("setBottomLedState",
                                lambda: setLED("eyes", 1, 0, 0))

# FSM for following the ball

followBallFSM = createFSM("followBallFSM")
addStates(followBallFSM, rotateLeftState, rotateRightState, walkToBallState,
          watchBallState, stopWalkingState, stopWalkingState2,
          setBottomLedState, setBottomCamState)

setInitialState(followBallFSM, watchBallState)

# Transitions

addTransition(watchBallState, positiveYaw, rotateLeftState)
addTransition(watchBallState, negativeYaw, rotateRightState)
addTransition(watchBallState, zeroYaw, walkToBallState)

addTransition(rotateRightState, zeroYaw, walkToBallState)
addTransition(rotateRightState, lambda wm: True, watchBallState)

addTransition(rotateLeftState, zeroYaw, walkToBallState)
addTransition(rotateLeftState, lambda wm: True, watchBallState)
Esempio n. 30
0
sitState = createState("sitState", sit)
restState = createState("restState", rest)
standState = createState("standState", stand)
shakeHeadState = createState("shakeHeadState", hMShake)
shakeHead2State = createState("shakeHead2State", hMShake)
hangHeadState = createState("hangHeadState", hMHang)
shutdownState = createState("shutdownState",
				lambda : shutdown("Final state reached"))

# Add transitions

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, shakeHeadState )
addTransition(shakeHeadState, lambda wm: True, hangHeadState )
addTransition(hangHeadState, lambda wm: True, shakeHead2State )
addTransition(shakeHead2State, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
myFSM = createFSM("fsm")
addStates(myFSM, waitSittingState, standState, 
          sitState, restState, shutdownState,
          shakeHeadState, shakeHead2State, 
          hangHeadState)

setPrintTransition(myFSM, True)

# Set the initial state to waitSittingState
setInitialState(myFSM, waitSittingState)
Esempio n. 31
0
standState = createState("standState", stand)
shutdownState = createState("shutdownState",
                            lambda: shutdown("Final state reached"))
stopWalkState = createState("stopWalkState", stopWalking)
lookAtGoalState = createState("lookAtGoalState", stopWalking)

# The main FSM

# Transitions for the mainFSM

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, findGoalFSM)
addTransition(findGoalFSM, seeGoal, lookAtGoalState)

addTransition(findGoalFSM, detectTouch, stopWalkState)
addTransition(lookAtGoalState, detectTouch, stopWalkState)

addTransition(stopWalkState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, standState, sitState, restState,
          shutdownState, findGoalFSM, lookAtGoalState, stopWalkState)

setInitialState(mainFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(mainFSM, True)
Esempio n. 32
0
rotateLeftState = createState("rotateLeftState", lambda : setWalkVelocity(0,0, 0.15))
rotateRightState = createState("rotateRightState", lambda : setWalkVelocity(0,0, -0.15))
walkToBallState = createState("walkToBallState", lambda : setWalkVelocity(1, 0, 0))
watchBallState = createState("watchBallState", lambda wm : lookAtBall(wm))
stopWalkingState = createState("stopWalkingState", stopWalking)
stopWalkingState2 = createState("stopWalkingState2", stopWalking) 
setBottomCamState = createState("setBottomCamState", lambda : setCamera("bottom"))
setBottomLedState = createState("setBottomLedState", lambda : setLED("eyes", 1,0,0))


# FSM for following the ball

followBallFSM = createFSM("followBallFSM")
addStates(followBallFSM, rotateLeftState, rotateRightState, walkToBallState,
          watchBallState, stopWalkingState, stopWalkingState2, setBottomLedState,
          setBottomCamState)

setInitialState(followBallFSM, watchBallState)

# Transitions

addTransition(watchBallState, positiveYaw, rotateLeftState)
addTransition(watchBallState, negativeYaw, rotateRightState)
addTransition(watchBallState, zeroYaw, walkToBallState)

addTransition(rotateRightState, zeroYaw, walkToBallState)
addTransition(rotateRightState, lambda wm: True, watchBallState)

addTransition(rotateLeftState, zeroYaw, walkToBallState)
addTransition(rotateLeftState, lambda wm: True, watchBallState)
Esempio n. 33
0
# Transitions for the mainFSM

addTransition(waitSittingState, waitForStand, standState)
addTransition(standState, waitForFindBall, lookBallFSM)
addTransition(lookBallFSM, seeBall, resetLookBallState)
addTransition(resetLookBallState, lambda wm: True, goToBallFSM)
addTransition(goToBallFSM, noSeeBall, resetgoToBallState)
addTransition(resetgoToBallState, lambda wm: True, lookBallFSM)
addTransition(goToBallFSM, closeToFeet, stopWalkState)
addTransition(stopWalkState, lambda wm: True, sendSitStatus)

addTransition(goToBallFSM, detectTouch, stopWalkState2)
addTransition(lookBallFSM, detectTouch, stopWalkState2)
addTransition(stopWalkState2, lambda wm: True, sendSitStatus)

addTransition(sendSitStatus, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

secondFSM = createFSM("secondFSM")
addStates(secondFSM, waitSittingState, standState, sitState, goToBallFSM,
          restState, shutdownState, lookBallFSM, stopWalkState, stopWalkState2,
          sendSitStatus, resetLookBallState, resetgoToBallState)

setInitialState(secondFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(secondFSM, True)
addTransition(walkState, closeToObstacle, rotateState)
addTransition(walkState, headDelay, rightHeadState)

addTransition(rightHeadState, closeToObstacle, rotateState)
addTransition(rightHeadState, headDelay, lookDownState)

addTransition(lookDownState, closeToObstacle, rotateState)
addTransition(lookDownState, headDelay, leftHeadState)

addTransition(leftHeadState, closeToObstacle, rotateState)
addTransition(leftHeadState, headDelay, lookDownState2)

addTransition(rotateState, rotateTime, stopWalkState)

addTransition(stopWalkState, closeToObstacle, rotateState)
addTransition(stopWalkState, lambda wm: True, lookDownMoreState) 
addTransition(lookDownMoreState, closeToObstacle, rotateState)
addTransition(lookDownMoreState, headDelay, lookDownState2)


# Create the FSM and add the states created above
walkObstacleFSM = createFSM("walkObstacleFSM")
addStates(walkObstacleFSM, setBottomCamState, setBottomLedState,
          walkState, rotateState, lookDownState, lookDownState2, 
          stopWalkState, leftHeadState, rightHeadState, lookDownMoreState)

# Set the initial state to waitSittingState
setInitialState(walkObstacleFSM , setBottomCamState)

setPrintTransition(walkObstacleFSM, True)
Esempio n. 35
0
addTransition(rightStepState, oneStep, lookStraightState)

addTransition(lookStraightState, lambda wm: True, setTopCameraState)
addTransition(setTopCameraState, lambda wm: True, topLedState)
addTransition(topLedState, lambda wm: True, circleLeftState)

addTransition(circleLeftState, seeGoal, stopWalkingState)
addTransition(circleLeftState, seeGoalLeft, circleRightState)
addTransition(circleLeftState, seeGoalSingle, stopRotateState)

addTransition(circleRightState, seeGoal, stopWalkingState)
addTransition(circleRightState, seeGoalRight, circleLeftState)
addTransition(circleRightState, seeGoalSingle, stopRotateState)

addTransition(stopRotateState, lambda wm: True, lookUpState)

addTransition(lookUpState, seeGoal, stopWalkingState)
addTransition(lookUpState, seeGoalRight, circleLeftState)
addTransition(lookUpState, seeGoalLeft, circleRightState)

findGoalFSM = createFSM("findGoalFSM")
addStates(findGoalFSM, stopWalkingState, lookUpState, circleLeftState,
          circleRightState, stopRotateState, topLedState, setTopCameraState,
          lookStraightState, leftStepState, rightStepState, standState)

setInitialState(findGoalFSM, standState)

# Prints all the completed transitions

setPrintTransition(findGoalFSM, True)
Esempio n. 36
0
    startWalking, turnHead, setCamera,
    say, setLED, setWalkVelocity, stopWalking)

from followBallFSM import (followBallFSM, rotateLeftState, 
    rotateRightState, walkToBallState, watchBallState, 
    stopWalkingState, stopWalkingState2, followBallFSM)

def detectTouch(wm):
    return readWM(wm, "tactile", "middle")

waitSittingState = createState("waitSittingState", lambda: None)
sitState = createState("sitState", sit)
restState = createState("restState", rest)
standState = createState("standState", stand)
shutdownState = createState("shutdownState",
				lambda: shutdown("Final state reached"))

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, sitState, restState, standState,
          shutdownState, followBallFSM)

setInitialState(mainFSM, waitSittingState)

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, followBallFSM)
addTransition(followBallFSM, detectTouch, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

setPrintTransition(mainFSM, True)
Esempio n. 37
0
# Import functions we've written
from functions import (leftFoot, rightFoot)
 
#create states    

kickRightState = createState("kickRightState", lambda: kick("right"))
kickLeftState = createState("kickLeftState", lambda: kick("left"))
stopWalkingState = createState("stopWalkingState", stopWalking)
stopWalkingState2 = createState("stopWalkingState2", stopWalking)


# FSM for kicking the ball

kickBallFSM = createFSM("kickBallFSM")
addStates(kickBallFSM, kickRightState, kickLeftState, stopWalkingState, stopWalkingState2)

setInitialState(kickBallFSM, stopWalkingState)

# Transitions

addTransition(stopWalkingState, leftFoot, kickLeftState)
addTransition(stopWalkingState, rightFoot, kickRightState)

addTransition(kickLeftState, lambda wm: True, stopWalkingState2)
addTransition(kickRightState, lambda wm: True, stopWalkingState2)

# Prints out completed transitions

setPrintTransition(kickBallFSM, True)
Esempio n. 38
0
				lambda : shutdown("Final state reached"))
sayBallState = createState("sayBallState", lambda: say("ball!"))
sayNoBallState = createState("sayNoBallState", lambda: say("no ball found!"))
lookAtBallState = createState("lookAtBallState", lambda wm: lookAtBall(wm))


# Add transitions

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, hangHeadState)
addTransition(hangHeadState, lambda wm: True, waitStandingState)
addTransition(waitStandingState, seeBall, sayBallState)
addTransition(waitStandingState, time, sayNoBallState)
addTransition(sayBallState, lambda wm: True, lookAtBallState)
addTransition(lookAtBallState, noSeeBall, sayNoBallState)
addTransition(sayNoBallState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

# Create the FSM and add the states created above
myFSM = createFSM("fsm")
addStates(myFSM, waitSittingState, standState, 
          sitState, restState, shutdownState,
          hangHeadState, waitStandingState, sayBallState,
          sayNoBallState, lookAtBallState)

setPrintTransition(myFSM, True)

# Set the initial state to waitSittingState
setInitialState(myFSM, waitSittingState)
Esempio n. 39
0
shutdownState = createState("shutdownState",
                            lambda: shutdown("Final state reached"))
stopWalkState = createState("stopWalkState", stopWalking)
circleLeftState = createState("circleLeftState",
                              lambda: setWalkVelocity(0, 1, -0.45))
circleRightState = createState("circleRightState",
                               lambda: setWalkVelocity(0, 1, 0.45))

# The main FSM

# Transitions for the mainFSM

addTransition(waitSittingState, detectTouch, standState)
addTransition(standState, lambda wm: True, circleLeftState)

addTransition(circleLeftState, detectTouch, stopWalkState)

addTransition(stopWalkState, lambda wm: True, sitState)
addTransition(sitState, lambda wm: True, restState)
addTransition(restState, lambda wm: True, shutdownState)

mainFSM = createFSM("mainFSM")
addStates(mainFSM, waitSittingState, standState, sitState, restState,
          shutdownState, circleLeftState, circleRightState, stopWalkState)

setInitialState(mainFSM, waitSittingState)

# Prints all the completed transitions

setPrintTransition(mainFSM, True)