Newsgroups: comp.robotics
Path: brunix!news.Brown.EDU!noc.near.net!lard.ftp.com!bloom-beacon.mit.edu!usc!cs.utexas.edu!uunet!pipex!uknet!gdt!mapsajw
From: mapsajw@sunlab1.bath.ac.uk (S A J Winder)
Subject: Hobby robot with vision
Message-ID: <CBCLs6.Brv@sunlab1.bath.ac.uk>
Organization: School of Mathematical Sciences, University of Bath, UK
Date: Fri, 6 Aug 1993 17:26:29 GMT
Lines: 86

ROBOT VISION....

I've been reading this group now for a couple of years and one
of the things I find most interesting is when people describe
the robots they are working on. So I thought I'd describe mine...

I've been putting this little robot together in my spare time for
about a year and its an entirely self-interest, self-funded project. I
wanted to make a wheeled robot with true computer vision and see what
I could get it to do.  This thing (incidentally, called Nelson after
the one-eyed British admiral) has two separately driven wheels and two
idling ball-bearing castors (front and back). It has four plug-in
vertically mounted boards containing all the electronics and, best of
all, it has a small wide angle CCD camera mounted up front on top of a
radio-control type servomotor, so that the camera can look 90 degrees
to each side.

The whole thing measures 5"x5"x7" and was designed to fit in a
micromouse maze.

I wanted it cheap and easy to build, so everything is made from
off-the-shelf components, nothing hard to get hold of (except perhaps
the transputer). The boards are all pink-wired on square pad eurocard
offcuts with 64 way eurocard type connectors mating with a backplane
that is part of the robot base.

Processor board: This is Nelson's brains and uses a 32 bit Inmos
transputer running at 20MHz connected to a megabyte of RAM. For anyone
who hasn't worked with transputers, they are really cool for robotics
because you don't need much support electronics and the chip contains
a microcoded multitasking kernel that implements neat process
scheduling and inter-process communication. It can also boot up over a
serial link.  The chip even has a few K of fast internal RAM that can
be used to run time-critical code.

Analog frame-grabber board: This board digitises the composite video
coming from the CCD. Features include two phase-locked loops and a
7-bit flash ADC. Most of the timing is done in a SAA1043 sync
generator chip. The output from this board is a 7bit+overflow pixel
bus and a load of timing signals. This board was hard work to design.
Theoretically I could have built a frame grabber that ran directly
from a CCD chip, but getting hold of one and working out how to drive
it proved rather troublesome, plus this way, I can digitise pictures
from other cameras, TV, video etc.

Digital frame grabber board: This board has a 128K of static RAM in
which it stores grabbed images, under processor control. The hard work
is done in the logic, so the processor only has to set a bit in a
register to start the grab and wait for an event (interrupt) to
indicate the frame (or field) has been grabbed.

PSU and IO board: I used a switched mode supply to reduce power
consumption in dropping to 5v. The (continuous PWM) motor drivers are
L6203?  bridges (probably overkill), there is an 8 channel ADC sensing
among other things, motor current and there are 4 optical gap units
sensing drive shaft rotation and also position feedback on the camera
servo. So far there are 8 microswitch crash detectors, but this is in
a state of flux. I've included the electronics but not the sensors for
a bidirectional IR comms link (I may not bother with this but it
seemed a good idea at the time) (interestingly, the CCD can see a lit
IR LED and so theoretically, can spot an IR beacon) and it also has a
2x16 character LCD display on the top, plus some status LEDs and push
buttons.

Anyway, the hardware's all built and tested and I've been writing
software for a couple of months (in transputer assembler). Programs
are loaded over a 20Mbit/s serial link from a PC (soon to be an
Archimedes laptop), then you can remove the cable and let it go. One
of the fun things you can do is get the robot software to framegrab
and send it down the serial link to the PC and get some code there to
paint the 320x200+ picture on a MCGA screen. It manages about 5
frames/s this way.

The whole thing has cost me about $500(equiv) over about a year, which
isn't bad. If there's any interest I can post more about the
problems/software/hardware/constructional aspects. Hopefully it should
be doing something worthwhile by the time of the UK robot olympics.

P.S. I'd be interested to hear from anyone else who has built a
hobby-type robot with vision.

Simon.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Simon A.J. Winder             Computer Vision Research
 sajw@uk.ac.bath.maths    University of Bath Computing Group
 Tel: +44 (0)225 826183   /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
