DASH-2 is the second in the series of
DASH machines for the IEE Micromouse competition. The
previous year's DASH-1 achieved fifth in the intermediate
class. DASH-2 builds on this experience.
DASH-2 uses two wheels in a
wheelchair arrangement. Forwards movement is
by driving both wheels forwards. It turns by driving one
wheel forwards and one backwards. The wheels are mounted
on shafts driven by a worm and gear arrangement from
separate DC motors. The motors are driven from an
H-bridge using bipolar upper elements and power FET lower
elements. Both bipolars ON lets the motor free-wheel,
both FETs ON gives a braking action.
Each motor shaft has a disk with 8
holes in it. A LED and phototransistor work with these to
give a notional shaft position.
The mechanical system and drive
electronics are from Swallow Systems PIXIE
robot.
The electronics uses an Intel 80C31
microprocessor with memory expanded to 32K RAM and 32K
EPROM. Two external interrupts are used to measure motor
revolutions. Four I/O bits are used for the motor drive.
DASH-2 has increased the clock speed from 12 MHz to
14.7456 MHz over DASH-1.
As well as the speed improvement this
also allows 4 times faster downloading via the serial
comms port.
DASH-1 had only 6 sensor inputs and
this was a serious problem. DASH-2 has 10 sensor inputs
and this is still not enough! Next year I anticipate
still more sensors to solve particular positioning
problems.
The sensors are based on Hamamatsu
photo I.C.s. These make very easy reflective light
sensors. The LEDs used with them are all high-brightness
visible red types. This makes debugging the sensor
positions MUCH easier. The sensors use modulated light
and are very tolerant of sunshine or fluorescent
light.
The software is written in
Microprocessor Engineering's FORTH 83. Without its
interactive features, DASH-2 would not have been ready in
time.
Work on DASH-2 only started on 21st
June. I used DASH-1's software as a starting point and
built another robot based on PIXIE with the unnecessary
bits removed and an extra 32K RAM added. The extra
sensors came from multiplexing 4 old inputs to give 8 new
ones.
The intention was to improve the
positioning control by using the extra sensors. This has
allowed a significant speed increase. The positioning is
still not perfect especially when there are
"pathological" cells with no maze walls.
DASH-1's RS232 level shifters in a pod
connected to the UART socket give a long lead for
connection to the host.
Software development used DASH-1's
code to start with. This includes a FORTH compiler. It
was then a case of bursts of interactive development on a
practice maze followed by burning a new EPROM. The
current EPROM is number 8 beyond DASH-1.
The algorithms used fall into four
parts. The main function that has changed is wall
following and positioning the mouse. There are three
vertical sensors each side that correspond to; too close,
just right and too far from the respective wall. There
are horizontal and vertical sensors on the front of
DASH-2. These are used to detect if it is near a wall and
for positioning relative to that wall
respectively.
Another function is navigation i.e.
keeping track of where the mouse is. This can cause
problems in pathological cases where the mouse has a long
run of continuous walls. This year's change is that there
are horizontal sensors at each side to detect where side
walls start and finish. Every time there is a gap on
either side, DASH-2 corrects its position.
The third function is to find the
centre of the maze. DASH-2 uses three weighted rules. It
likes to carry straight on, it likes to get closer to the
centre and it likes to boldly go where it
has not gone before. These rules overlay the basic idea
of not hitting walls!
The last function is to optimise the
route from start to centre. This is done continuously as
DASH-2 moves. By the time it reaches the centre it knows
its best route, of the cells visited, for the return
path.
These main functions are coordinated
to follow a scheme of:- find the centre, return to the
start by a good route, go back to the centre by a good
route, return to the start fast, get to the middle
fast.
After DASH-2 has traversed 80 cells,
it panics and starts to travel fast. Fast travel can
cause positioning and navigation problems. This speedup
feature is a left-over from last year but it may prove
useful!
There are some known problems with
DASH-2. It cannot turn very repeatably due to backlash in
the drive train and wheel slip. This may be solved by
adding more sensors so that it can position itself more
accurately.
The software is not well structured.
The next version may use the multi-tasker to run the
maze-solver and centre-finder as separate tasks. The
terminal task will also run separately to allow
interactive debug DURING a test run.
How it
went
In competition, DASH-2 performed
reliably but not fast. It found the centre successfully
on both runs and ran about twice as fast as
DASH-1.
The competition had also moved on so
DASH-2 only improved to third place. From here on we have
to compete in the advanced class with serious contenders
like MIT. It will be several years before we are
competitive in this class.