Past Projects

The Dynamical Complexity of Swarms, Flocks and Shoals

This project was done during my Masters under the supervision of Murray Shanahan, again I have to thank him for letting me work on this very interesting project. The purpose of this study was to observe the correlation between the natural flocking behaviour exhibited by birds and the measured dynamical complexity. Where dynamical complexity is a measure of the integrated and segregated activity of a system. If a system is overly segregated or integrated then it demonstrates a low dynamical complexity. A high dynamical complexity is achieved when the system is able to balance both integrated and segregated activity.
This project involved developing a flocking model, measuring the behaviour of different birds in a meaningful way such that the resulting data uniquely identifies how the measured birds behaved and then analysing the causal density of the resulting data.
The model that was developed was an extended version of the original Boids Algorithm . This extended model compensated for some of the limitations in the boids version. It also allowed for a more direct realt time control over the bird's behaviour.
The analysis itself was done by using Granger-causality to determine which birds held the most influence over the behaviour of the flock. From this it was then possible to measure the causal density of the behaviour which reflected the dynamical complexity.
A small video of the resulting simulation environment which was developed in shown below:

Technical Overview:
The model was developed in Java with a Processing 3d front end in order to visually observe the behaviour.
The analysis of the resulting data was performed with the aid of the MATLAB GCCA toolbox developed by Anil Seth.

If you would like to use the model from this project or read the documentation the of this project then please send me an email stating as to why you would like to use this project.

RoboFido: The Simple Minded Hunter Seeker

RoboFido was a project I did for my Honours year back in South Africa. The robot itself was the basic Lego NXT kit. The design was that of a simple tripod scheme with a rotating sonar sensor serving as it's head, a light sensor which it used to find its coloured objective and a touch sensor for it to recover when it hit any obstacles.
The primary purpose of this project was to develop an autonomously navigating robot that could explore an unknown environment whilst looking for an objective of a certain colour. The challenge is that due to financial constraints no sophisticated hardware was availiable, otherwise a camera and a more sophisticated robot could have been used. The robot used a basic A* navigation algorithim as well as some very simple SLAM methodologies.
An application was also developed to be able to remotely control the bot from a distance using a bluetooth connection. The purpose of this remote control was to allow any user very simple control over the robot. This interface was also useful to me as the developer as it aided with the initial challenge of calibrating the bot. A snap shot of the user interface is given below.

Technical Overview:
Used Microsoft Robotics Studio to provide an underlying communication platform to make it possible to control the robot over bluetooth. The studio was also used in the development of preliminary simulations before moving onto the physical platform.
Primary Coding was done in C#
Front end interface was designed using Windows Presentation Foundation

*Warning the code has not been maintained or used since October 2009
Source Code
Design Documentation