Пример #1
0
    def __init__(self):
        self.IMAGE_WIDTH = 320
        self.IMAGE_HEIGHT = 240

        # PID parameters
        self.KP = 0.035
        self.KI = 0.045
        self.KD = 0.005

        self.prev_errx = 0
        self.prev_erry = 0

        self.integral_x = 0
        self.integral_y = 0

        self.curr_yaw = 90
        self.curr_pitch = 90

        self.last_obs = time.time()

        # Open the camera
        self.capture = cv.CreateCameraCapture(0)
        cv.SetCaptureProperty(self.capture, cv.CV_CAP_PROP_FRAME_WIDTH,
                              self.IMAGE_WIDTH)
        cv.SetCaptureProperty(self.capture, cv.CV_CAP_PROP_FRAME_HEIGHT,
                              self.IMAGE_HEIGHT)

        # Union-Find Connected Comonent Labeling
        self.detector = BlobDetector()

        # Kalman filter
        self.filter = KalmanFilter()

        # Open the serial port to the arduino
        print 'Opening serial port  ...'
        self.serial = serial.Serial('/dev/ttyACM0', 19200)
        time.sleep(2)
        print 'Moving servos to initial position ...'
        self.serial.write('90s90t')
        time.sleep(1)