endAll = False PROX_THRESHOLD = 40 FLOOR_THRESHOLD = 50 fsm = FSM(["free", "turnLeft", "turnRight", "exit"], "free", failActionSilently=True, verbose=True) fsm.addTransition( "obstacleLeft", "free", "turnLeft", ) fsm.addTransition("obstacleRight", "free", "turnRight") fsm.addMultipleTransitions("noObstacle", ["turnLeft", "turnRight"], "free") fsm.addTransition("line", "free", "exit") def freeCb(): tankDrive(50, 50) def turnLeftCb(): tankDrive(-50, 50) def turnRightCb(): tankDrive(50, -50)