Robust face tracking with cheap hardware
(or: How to build a desktop autosentry)

Aim of this project was to teach a usb-controlled softair-turrent (see below) to: The Software is running on a PIII/300 (my old laptop) because i needed a portable solution. The camera is utter crap (noisy as hell), i tried my best to add tricks to improve recognition: skin-color-searching for example, you can see the software tries to track a picture on the wall as face for a brief moment because it has a skin-like color (and seemingly a face-like structure). For the sake of my neighbours mental health it does not really shoot when it successfully aimed at my head, you only hear the shoot-relay clicking (watch video below to hear it shooting).

The sentry-hardware itself is nothing new (see 1). I wanted one for total party mass destruction, so i ordered the USB Rocket Launcher (produced by the company DreamCheeky), added a softair-gun (10 Euros, shoots 6mm plastic balls), a webcam (6 Euros), a laser-pointer (2 Euros) and viola: A pc-controlable weapon of mass destruction for about 50 Euros, ready to annoy your co-workers.

I placed the end-switches for the vertical movement at different positions, resulting in a total vertical freedom of about 70 degrees (compared to the 25 degrees the device normally has).

As the control-Software is utter crap (and does not run under Vista) and other programs (1 2) require special hid drivers (which are not available for vista) or crash often... Here is a revised control-program by me: mntsentry.exe. Seemingly there are two different models out there, if your launcher fires endlessly on program startup you can try this alternative version.

It works under Win98 up to Vista, monitors the maximal-movement-switches (and thereby keeps you from destroying those cheap plastic gears) and recognizes if the device is unplugged or replugged.

Controls: Cursor keys (normal or numpad) to move, space to fire, control for special slow-motion mode.

You can script this program. It accepts the following Commandline-parameters:
mntsentry.exe <duraction in milliseconds> [left] [right] [up] [down] [fire] [slow]

You can create a little batch-program like this:
@echo off
mntsentry.exe 2000 left up
mntsentry.exe 7000 right slow
mntsentry.exe 6000 fire
mntsentry.exe 800 right
mntsentry.exe 6000 fire
mntsentry.exe 800 right
mntsentry.exe 6000 fire

Update: See what happens when the VSR8000 vacuuming robot dares to enter the camera-range of the sentry. The sentry is not amused and gazes skeptical at any move of the moving disc.

Add a webserver and the minisentry is ready to be controlled with an iphone:

Created on 13.10.2007 | Tags [ ]