Skip to content

GetPoplog/popracer

Repository files navigation

****************************************
* PopRacer AI Programming Team Project *
*      School of Computer Science      *
*       University of Birmingham       *
*                (2005)                *
****************************************
*               READ ME                *
*              (AREADME)               *
****************************************

Updated A.Sloman 20 May 2009; 18 Jan 2020

Project Report

http://www.cs.bham.ac.uk/research/projects/poplog/popracer/popracerreport.pdf (1.4MB).

Mark Rowan's article about Popracer in the Networks magazine: http://www.tamias.co.uk/popracer

The video mentioned there is available here on Youtube: https://m.youtube.com/watch?v=tt-e5biErrQ

About

  • PopRacer was a project developed by a team of students (Team PopCorn) in 2005, for the AI Programming course at the School of Computer Science, University of Birmingham.

  • PopRacer simulates artificially intelligent virtual 'cars' which learn to drive around a track.

  • The cars are powered by small neural networks which control their behaviour.

  • The cars 'learn' by evolving their neural networks using a genetic algorithm.

  • PopRacer can be extended and modified easily, due to the modular nature of its design.

  • PopRacer was developed in Pop-11, and utilises the graphical libraries the language provides.

Team Members

  • Michael Brook
  • Mark Rowan (http://www.tamias.co.uk/)
  • Peter Zeidman
  • Damien Clark
  • Anushka Gunawardana
  • H. Francis Tedom Noumbi

Tar file containing all this material

http://www.cs.bham.ac.uk/research/projects/poplog/popracer.tar.gz (about 1.4MB)

Running

Ensure Poplog is installed. Execute pop11 main.p

See 'userguide.pdf' for an explanation on how to use PopRacer.

Architecture

PopRacer is made up of 6 files:

main.p - Runs PopRacer simEngine.p - The Main Simulation Engine, powers PopRacer and provides the GUI. nnga.p - The Neural Network and Genetic Algorithm Module. physicsEngine.p - The Physics Engine bezierDraw.p - The Track Editor bezier.p - The bezier engine, generates the bezier polynomial.

Known Issues/Bugs

  • There are a number of graphical artifacts which appear during the execution of PopRacer, possibly due to the graphics libraries having to switch 'context' between windows.

  • The bezier drawing module needs improvement and refining, particularly in regard to the way in which the polynomial (which defines the curves) is generated.

  • The genetic algorithm module could be improved to use roulette wheel fitness proportionate selection, currently we select the top two when breeding.

  • The physics engine could be improved so that friction is calculated for each wheel, to prevent the cars from snaking around the track.

13/06/2006

Addition by A.Sloman 13 Jun 2006

Two files with saved populations are provided

demo1.p
demo2.p

A saved file can be loaded into the program before the 'run' command is given.

To the shell type (in the popracer directory):

    pop11 main

When the program starts, the 'help' command gives more
information. To load demo1 type this to the popracer prompt:

    loadcars demo1

(without '.p')

then to start the program type to the prompt:

    'run'

rearrange the three windows to make all visible. Click on
the animate button to turn on animation, the click on 'start'.

If you do it without the 'loadcars' command you'll see the
difference made by the evolution before the demo1 file was
saved.

13 Jun 2006

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors