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.

**************************************************************** 
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.

---------------------------
Graf, Mezger, Braunl, 2001
