The Mallard Bane Design Process

Philosophy

Our goal is to create a robot whose world model is sufficiently complex to play Duck Hunt. Speed is a central consideration, so we wish to design a minimally complex system, in line with the position advocated by Rodney Brooks. Since the task is simple and reactiveness and speed are the primary concerns, the linkage between sensing and acting will be very direct.

Specifications

Mallard Bane should be able to track a moving duck sprite on a television screen at a distance of up to ten feet (the approximate length of a Nintendo peripheral's cord). It should be able to independently determine the dimensions of the television on which it is playing. It must be capable of successfully firing the Nintendo Zapper to hit a duck, once the duck is found and is being tracked. We can divide these goals into several smaller goals which suggest a course of action for the project.

Intermediate Goals

  • Capture and manipulate camera images
  • Control the pan/tilt head programmatically
  • Isolate image components which are moving
  • Differentiate between TV and non-TV image elements
  • Accurately gauge size and position of television
  • Mount and fire the Nintendo zapper
  • Track motion with gun
  • Hit a duck
  • Hit many fast ducks in quick succession

Proposed Architecture

We will take in image data from the camera using a TV card, and acquire a pixel buffer using the Video for Linux programming interface. This data will be passed to an image preprocessor, which isolates the image components of greatest interest (either via color or some edge detection algorithm). A series of consecutive images are analyzed to determine whether there is currently a duck target, and if so, where it is. This information is passed to the tracking unit, which keeps a best estimate of the current gun position, and adjusts the pan/tilt unit to track the duck with the gun. If the tracking unit's estimation of gun position is close enough to the image unit's estimation of duck position, the trigger device will be activated, hopefully slaying the duck.