Soccerdemos
************

This directory contains a modified version of the 1998-soccerprogram, 
good for a SoccerBot with EyeBot Mk3/Mk4 using a panning camera.
Also, in order to improve image processing capabilities, features of 
the libvision library have been included.
By Birgit Graf, 2000
****************************************************************

Soccerdemo.c: Demo for soccer playing robot. Robot drives to the ball 
and kicks it when it is close enough
Soccer.c: More complex version, uses different player positions, 
operation areas
Vis_Test.c: Test of libvision library (define colour of target, find 
it in the picture, calculate global position depending on camera 
properties)
SoccerVis.c/SoccerVisT.c: Demo for soccer playing robot. Robot drives 
to the ball and kicks it when it is close enough.
Uses Libvision library (SoccerVis.c: for ball detetction and position 
calculation, SoccerVisT.c only for ball detection - position calculation 
is done using a lookup table)
Test.c: Switch on/off PSD sensors while displaying camera picture

Makefile: 
make (for soccer.hex)
make demo (for soccerdemo.hex)
make vt (for test of libvision library 
make vis (for soccerVis.hex)
make test (for test.hex)


c- / headerfiles and mutual dependances
********************************************

global.c
Contains global definitions and variables which are used by the
different program components to communicate data and results. 

Headerfile includes <eyebot.h> and other libraries

general.c 
Contains functions for general use.

servos.c 
Contains functions to init, release and move servos for camera and 
kicker.
Simulate kicker/camera by setting flags <sim_camera> and <sim_kicker>

sensors.c 
Contains functions read sensors.
Simulate sensors by setting flag <sim_psds>

Needs <driveglobal> to check whether wheels have stalled and to stop 
robot in case of an emergency.

imageglobal.c
Contains global image processing routines.

Needs <driveglobal> to check robot position.

image.c
Contains application specific image processing process, includes 
<imageglobal.c>

imageVis.c
Contains image processing process which uses funktions from Libvision 
library. Interface to Libvision library.
imageVis.c: uses Libvision library for ball detection and position
calculation, imageVisT.c only for ball detection - position 
calculation is done using a lookup table.

Needs <servos>: move camera and kick ball when it is close

driveglobal.c
Contains global functions to init and release motors, control overall 
robot movement and set and read robot position.
Simulate motors by setting flag <sim_motors> 

drive.c / drivedemo.c
Contains application specific drive routines/ drive process for soccer 
and soccerdemo programs.

Needs <imageglobal>: get coordinates of previously detected ball / 
find goal
Needs <servos>: kick ball


Usage:
********

If application specific routines are not required (like e.g. for test), 
it is enough to include <imageglobal> and <driveglobal> and link 
corresponding object files to program.


