from fsm.functions import ( createState, createFSM, addTransition, addStates, setInitialState, readWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, communicate) # Import functions we've written from functions import (detectTouch, touchDelay) ## CREATE STATES ## standState = createState("standState", stand) restState = createState("restState", rest) shutdownState = createState("shutdownState", lambda : shutdown("Final state reached")) # Create states for waiting for touch waitSittingState3 = createState("waitSittingState3", lambda : None) waitSittingState2 = createState("waitSittingState2", lambda : None) waitSittingState = createState("waitSittingState", lambda : None) # Create communcationsstates sendStandStatus = createState("sendStandStatus" , lambda: communicate("puff", "Stand"))
setPrintTransition) # Import primitive robot behaviors from api.pubapi import (startWalking, turnHead, setCamera, kick, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (averageLook, lookAtBall, largestBall, positiveYaw, negativeYaw, zeroYaw, switchCamera, entryTime, currentTime, cameraDelay, closeToFeet, leftFoot, rightFoot, farNegativeYaw, farPositiveYaw, lookAtBall2, seeGoal) #create states rotateLeftState = createState("rotateLeftState", lambda: setWalkVelocity(0, 0, 0.15)) rotateRightState = createState("rotateRightState", lambda: setWalkVelocity(0, 0, -0.15)) archLeftState = createState("archLeftState", lambda: setWalkVelocity(0.65, 0, 0.15)) 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))
# Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, 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)
startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import FSM from lookBallFSM import (lookBallFSM) from kickBallFSM import (kickBallFSM) # Import functions we've written from functions import (detectTouch, seeBall, noSeeBall) # Create states 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")) stopWalkState = createState("stopWalkState", stopWalking) stopWalkState2 = createState("stopWalkState2", stopWalking) resetKickBallState = createState("resetKickBallState", lambda: resetSubFSM(kickBallFSM)) resetLookBallState = createState("resetLookBallState", lambda: resetSubFSM(lookBallFSM)) # The main FSM # Transitions for the mainFSM addTransition(waitSittingState, detectTouch, standState)
if currentTime(wm) - entryTime(wm) >= 5: return True else: return False def uTurnTime(wm): if currentTime(wm) - entryTime(wm) >= 17: return True else: return False ## CREATE STATES ## sitState = createState("sitState", sit) standState = createState("standState", stand) restState = createState("restState", rest) walkState = createState("walkState", startWalking) stopWalkState = createState("stopWalkState", stopWalking) stopWalk2State = createState("stopWalk2State", stopWalking) rotateState = createState("rotateState", lambda: setWalkVelocity(0, 0, 0.5)) uTurnState = createState("uTurnState", lambda: setWalkVelocity(1, 0, 0.2)) shutdownState = createState("shutdownState", lambda: shutdown("Final state reached")) # Create states for talking sayLetsWalkState = createState("sayLetsWalkState", lambda: say("Hej Yousif!")) sayRotateState = createState("sayRotateState", lambda: say("spinn!")) sayUTurnState = createState("sayUTurnState", lambda: say("u turn!"))
# Import the FSM functions from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (detectTouch) # Create states 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")) 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)
addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (seeBall, noSeeBall, shakeHeadTime, largestBall, averageLook, lookAtBall, rotateTime, entryTime, currentTime, cameraDelay, headTurning, lookAtBall2) #Create States shakeHeadState = createState("shakeHeadState", lambda wm: headTurning(wm)) shakeHeadState2 = createState("shakeHeadState2", lambda wm: headTurning(wm)) setTopCameraState = createState("setTopCameraState", lambda : setCamera("top")) 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")
from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (detectTouch, seeGoal, seeGoalLeft, seeGoalRight, seeGoalSingle, lookForGoal, seeBall, oneStep, leftFoot, rightFoot, betweenFeet, seeNao) # Create states circleLeftState = createState("circleLeftState", lambda: setWalkVelocity(0, 1, -0.45)) circleRightState = createState("circleRightState", lambda: setWalkVelocity(0, 1, 0.45)) lookUpState = createState("lookUpState", lambda wm: lookUp(wm)) stopWalkingState = createState("stopWalkingState", stopWalking) stopRotateState = createState("stopRotateState", stopWalking) setTopCameraState = createState("setTopCameraState", lambda: setCamera("top")) topLedState = createState("topLedState", lambda: setLED("eyes", 0, 1, 0)) # Green lookStraightState = createState("lookStraightState", lambda: turnHead(0.25, 0)) standState = createState("standState", stopWalking) leftStepState = createState("leftStepState", lambda: setWalkVelocity(0, 0.5 ,0)) rightStepState = createState("rightStepState", lambda: setWalkVelocity(0, -0.5, 0)) # Transitions for the findGoalFSM addTransition(standState, leftFoot, leftStepState) addTransition(standState, rightFoot, rightStepState)
# Import the FSM functions 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)
from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking, communicate) # Import FSM from lookBallFSM import (lookBallFSM) from goToBallFSM import (goToBallFSM) # Import functions we've written from functions import (detectTouch, seeBall, noSeeBall, closeToFeet, seeGoal, oneKick, waitForSit, waitForStand, waitForKick, waitForFindBall) # Create states 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")) stopWalkState = createState("stopWalkState", stopWalking) stopWalkState2 = createState("stopWalkState", stopWalking) resetLookBallState = createState("resetLookBallState", lambda: resetSubFSM(lookBallFSM)) resetgoToBallState = createState("resetgoToBallState", lambda: resetSubFSM(goToBallFSM)) # States for communication robot = "david" sendSitStatus = createState("sendSitStatus" ,
# Import functions we've written from functions import (detectTouch, touchDelay, waitForSit, seeBall, noSeeBall, closeToFeet, seeNao, oneKick, cameraDelay) # Import FSM from lookBallFSM import (lookBallFSM) from goToBallFSM import (goToBallFSM) from findNaoFSM import (findNaoFSM) from kickBallFSM import (kickBallFSM) ## CREATE STATES ## standState = createState("standState", stand) sitState = createState("sitState", sit) restState = createState("restState", rest) shutdownState = createState("shutdownState", lambda : shutdown("Final state reached")) stopWalkingState = createState("stopWalkingState", stopWalking) stopWalkingState2 = createState("stopWalkingState2", stopWalking) stopWalkingState3 = createState("stopWalkingState3", stopWalking) stopWalkingState4 = createState("stopWalkingState4", stopWalking) waitSittingState = createState("waitSittingState", lambda: None) resetLookBallState = createState("resetLookBallState", lambda: resetSubFSM(lookBallFSM)) resetgoToBallState = createState("resetgoToBallState", lambda: resetSubFSM(goToBallFSM)) resetFindNaoState = createState("resetFindNaoState", lambda: resetSubFSM(findNaoFSM)) setBottomCamState = createState("setBottomCamState", lambda: setCamera("bottom")) setBottomLedState = createState("setBottomLedState", lambda: setLED("eyes", 1.0, 0.0, 0.0)) # Red setTopCamState = createState("setTopCamState", lambda: setCamera("top"))
# Import primitive robot behaviors from api.pubapi import ( startWalking, turnHead, setCamera, kick, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (averageLook, lookAtBall, largestBall, positiveYaw, negativeYaw, zeroYaw, switchCamera, entryTime, currentTime, cameraDelay, closeToFeet, leftFoot, rightFoot, farNegativeYaw, farPositiveYaw, lookAtBall2, seeGoal) #create states rotateLeftState = createState("rotateLeftState", lambda: setWalkVelocity(0,0, 0.15)) rotateRightState = createState("rotateRightState", lambda: setWalkVelocity(0,0, -0.15)) archLeftState = createState("archLeftState", lambda: setWalkVelocity(0.65, 0, 0.15)) 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
# Import the FSM functions from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown) # Import functions we've written from functions import (waitForStand, waitForSit) ## CREATE STATES ## sitState = createState("sitState", sit) standState = createState("standState", stand) 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) # Create communcationsstates # Add transitions according to the state diagram
def rotateTime(wm): if currentTime(wm) - entryTime(wm) >= 5: return True else: return False def uTurnTime(wm): if currentTime(wm) - entryTime(wm) >= 17: return True else: return False ## CREATE STATES ## sitState = createState("sitState", sit) standState = createState("standState", stand) restState = createState("restState", rest) walkState = createState("walkState", startWalking) stopWalkState = createState("stopWalkState", stopWalking) stopWalk2State = createState("stopWalk2State", stopWalking) rotateState = createState("rotateState", lambda: setWalkVelocity(0, 0, 0.5)) uTurnState = createState("uTurnState", lambda: setWalkVelocity(1, 0, 0.2)) shutdownState = createState("shutdownState", lambda: shutdown("Final state reached")) # Create states for talking sayLetsWalkState = createState("sayLetsWalkState", lambda: say("Hej Yousif!")) sayRotateState = createState("sayRotateState", lambda: say("spinn!"))
# Import the FSM functions from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (detectTouch, seeGoal, seeGoalLeft, seeGoalRight, seeGoalSingle) # Create states rotateLeftState = createState("rotateLeftState", lambda: setWalkVelocity(0, 0, 0.7)) rotateRightState = createState("rotateRightState", lambda: setWalkVelocity(0,0, -0.7)) lookUpState = createState("lookUpState", lambda wm: lookUp(wm)) lookDownState = createState("lookDownState", lambda: turnHead(0, 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)
# Import the FSM functions from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, communicate) # Import functions we've written from functions import (detectTouch, touchDelay) ## CREATE STATES ## standState = createState("standState", stand) restState = createState("restState", rest) shutdownState = createState("shutdownState", lambda: shutdown("Final state reached")) # Create states for waiting for touch waitSittingState4 = createState("waitSittingState3", lambda: None) waitSittingState3 = createState("waitSittingState3", lambda: None) waitSittingState2 = createState("waitSittingState2", lambda: None) waitSittingState = createState("waitSittingState", lambda: None) # Create communcationsstates robot = "goliath" sendStandStatus = createState("sendStandStatus", lambda: communicate(robot, "Stand"))
from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (detectTouch, seeGoal, seeGoalLeft, seeGoalRight, seeGoalSingle) # Create states rotateLeftState = createState("rotateLeftState", lambda: setWalkVelocity(0, 0, 0.7)) rotateRightState = createState("rotateRightState", lambda: setWalkVelocity(0, 0, -0.7)) lookUpState = createState("lookUpState", lambda wm: lookUp(wm)) lookDownState = createState("lookDownState", lambda: turnHead(0, 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)
# Import the FSM functions from fsm.functions import ( createState, createFSM, addTransition, addStates, setInitialState, readWM) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown) # Define the event function which detects touch def detectTouch(wm): return readWM(wm, "tactile", "middle") ## CREATE STATES ## sitState = createState("sitState", sit) standState = createState("standState", stand) 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)
setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (seeBall, noSeeBall, shakeHeadTime, largestBall, averageLook, lookAtBall, rotateTime, entryTime, currentTime, cameraDelay, headTurning) #Create States shakeHeadState = createState("shakeHeadState", lambda wm: headTurning(wm)) shakeHeadState2 = createState("shakeHeadState2", lambda wm: headTurning(wm)) setTopCameraState = createState("setTopCameraState", lambda: setCamera("top")) setBottomCameraState = createState("setBottomCameraState", lambda: setCamera("bottom")) setTopCameraState2 = createState("setTopCameraState2", 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)
# Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import FSM from findGoalFSM import (findGoalFSM) # Import functions we've written from functions import (detectTouch, seeGoal) # Create states 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")) 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)
# Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import FSM from lookBallFSM import (lookBallFSM) from kickBallFSM import (kickBallFSM) # Import functions we've written from functions import (detectTouch, seeBall, noSeeBall) # Create states 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")) stopWalkState = createState("stopWalkState", stopWalking) stopWalkState2 = createState("stopWalkState2", stopWalking) resetKickBallState = createState("resetKickBallState", lambda: resetSubFSM(kickBallFSM)) resetLookBallState = createState("resetLookBallState", lambda: resetSubFSM(lookBallFSM)) # The main FSM # Transitions for the mainFSM
from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (startWalking, turnHead, setCamera, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (averageLook, lookAtBall, largestBall, positiveYaw, negativeYaw, zeroYaw, switchCamera, entryTime, currentTime, cameraDelay, closeToFeet) #create states 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")
# Import the FSM functions from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (startWalking, turnHead, setCamera, kick, say, setLED, 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)
setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import FSM from findGoalFSM import (findGoalFSM) # Import functions we've written from functions import (detectTouch, seeGoal) # Create states 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")) 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)
createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, hMShake, hMHang) # Define the functions for world model def detectTouch(wm): return readWM(wm, "tactile", "middle") # create states waitSittingState = createState("waitSittingState", lambda : None) 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 )
from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking, communicate) # Import FSM from lookBallFSM import (lookBallFSM) from goToBallFSM import (goToBallFSM) # Import functions we've written from functions import (detectTouch, seeBall, noSeeBall, closeToFeet, seeGoal, oneKick, waitForSit, waitForStand, waitForKick, waitForFindBall) # Create states 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")) stopWalkState = createState("stopWalkState", stopWalking) stopWalkState2 = createState("stopWalkState", stopWalking) resetLookBallState = createState("resetLookBallState", lambda: resetSubFSM(lookBallFSM)) resetgoToBallState = createState("resetgoToBallState", lambda: resetSubFSM(goToBallFSM)) # States for communication robot = "david"
addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import ( startWalking, turnHead, setCamera, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (averageLook, lookAtBall, largestBall, positiveYaw, negativeYaw, zeroYaw, switchCamera, entryTime, currentTime, cameraDelay, closeToFeet) #create states 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, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (detectTouch, seeGoal, seeGoalLeft, seeGoalRight, seeGoalSingle, lookForGoal, seeBall, oneStep, leftFoot, rightFoot, betweenFeet) # Create states circleLeftState = createState("circleLeftState", lambda: setWalkVelocity(0, 1, -0.45)) circleRightState = createState("circleRightState", lambda: setWalkVelocity(0, 1, 0.45)) lookUpState = createState("lookUpState", lambda wm: lookUp(wm)) stopWalkingState = createState("stopWalkingState", stopWalking) stopRotateState = createState("stopRotateState", stopWalking) setTopCameraState = createState("setTopCameraState", lambda: setCamera("top")) topLedState = createState("topLedState", lambda: setLED("eyes", 0, 1, 0)) # Green lookStraightState = createState("lookStraightState", lambda: turnHead(0, 0)) standState = createState("standState", stopWalking) leftStepState = createState("leftStepState", lambda: setWalkVelocity(0, 0.5, 0)) rightStepState = createState("rightStepState", lambda: setWalkVelocity(0, -0.5, 0))
# Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, communicate, stopWalking, resetSubFSM, setCamera, setLED, turnHead, setWalkVelocity) # Import functions we've written from functions import (closeToObstacle, closeToFeet, rotateTime, walkDelay, obstacleToLeft, obstacleToRight, headDelay) # Import FSM # Currently none # Create state #resetLookBallState = createState("resetLookBallState", lambda : resetSubFSM(lookBallFSM)) setBottomCamState = createState("setBottomCamState", lambda: setCamera("bottom")) setBottomLedState = createState("setBottomLedState", lambda: setLED("eyes", 1.0, 0.0, 0.0)) # Red walkState = createState("walkState", lambda: setWalkVelocity(0.6, 0, 0)) rotateState = createState("rotateState", lambda: setWalkVelocity(0, 0, -0.4)) stopWalkState = createState("stopWalkState", stopWalking) leftHeadState = createState("leftHeadState", lambda: turnHead(0.5, 0.2549)) rightHeadState = createState("rightHeadState", lambda: turnHead(-0.5, 0.2549)) lookDownState = createState("lookDownState", lambda: turnHead(0, 0.0549)) #0.1149 ok lookDownState2 = createState("lookDownState2", lambda: turnHead(0, 0.0549)) lookDownMoreState = createState("lookDownMoreState", lambda: turnHead(0, 0.2549)) # Add transitions addTransition(setBottomCamState, lambda wm: True, setBottomLedState) addTransition(setBottomLedState, lambda wm: True, lookDownState2)
# Import the FSM functions from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import ( startWalking, turnHead, setCamera, kick, say, setLED, 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)
addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, 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)
startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import FSM from lookBallFSM import (lookBallFSM) from kickBallFSM import (kickBallFSM) from goToBallFSM import (goToBallFSM) # Import functions we've written from functions import (detectTouch, seeBall, noSeeBall, closeToFeet, seeGoal, oneKick, waitForSit, waitForStand, waitForKick) # Create states 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")) stopWalkState = createState("stopWalkState", stopWalking) stopWalkState2 = createState("stopWalkState2", stopWalking) stopWalkState3 = createState("stopWalkState3", stopWalking) stopWalkState4 = createState("stopWalkState4", stopWalking) resetKickBallState = createState("resetKickBallState", lambda: resetSubFSM(kickBallFSM)) resetLookBallState = createState("resetLookBallState", lambda: resetSubFSM(lookBallFSM)) resetgoToBallState = createState("resetgoToBallState", lambda: resetSubFSM(goToBallFSM)) resetFindGoalState = createState("resetFindGoalState", lambda: resetSubFSM(findGoalFSM)) setBottomCameraState = createState("setBottomCameraState", lambda: setCamera("bottom")) bottomLedState = createState("bottomLedState", lambda: setLED("eyes", 1, 0, 0)) # Red
def entryTime(wm): return readWM(wm, "time", "entry") def currentTime(wm): return readWM(wm, "time", "current") def time(wm): if currentTime(wm) - entryTime(wm) >= 20: return True else: return False # create states waitSittingState = createState("waitSittingState", lambda: None) waitStandingState = createState("waitStandingState", lambda: None) sitState = createState("sitState", sit) restState = createState("restState", rest) standState = createState("standState", stand) hangHeadState = createState("hangHeadState", hMHang) shutdownState = createState("shutdownState", 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)
# Import the FSM functions from fsm.functions import (createState, createFSM, addTransition, addStates, setInitialState, readWM, writeWM, setPrintTransition) # Import primitive robot behaviors from api.pubapi import (sit, stand, rest, say, shutdown, startWalking, turnHead, setCamera, resetSubFSM, say, setLED, setWalkVelocity, stopWalking) # Import functions we've written from functions import (detectTouch) # Create states 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")) 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