#FORMAT python from pyrobot.brain.behaviors import * from pyrobot.brain.behaviors.core import * from time import * from phissioncamera import * camera = phissioncamera() class MotionCatch(State): def onActivate(self): print "Activating MotionCatch State" self.motion_thresh = 1000 camera.motion_Filter() sleep(1) def update(self): max_blob = camera.getMaxBlob() if(max_blob.mass > self.motion_thresh): camera.SpotColorTrackHSV_Filter(max_blob.cx, max_blob.cy, 15, (12, 60, 200) ) self.goto('ColorTrack') class ColorTrack(State): def onActivate(self): print "Activating ColorTrack State" sleep(1) self.track_thresh = 1000 def update(self): max_blob = camera.getMaxBlob() print "-------------------" print "mass =", max_blob.mass print "(x,y) = ", max_blob.cx, max_blob.cy if(max_blob.mass < self.track_thresh): self.goto('MotionCatch') class state1(State): def update(self): self.goto('MotionCatch') def INIT(engine): brain = FSMBrain(engine) brain.add(state1(1)) brain.add(MotionCatch()) brain.add(ColorTrack()) brain.camera = camera camera.setup(1,320,240) return brain