AutoLife - Autonomous Mobile Robos for Artificial Life
The goal of project AutoLife is the exploration of Artificial Life
aspects with autonomous mobile robots. We are investigating the group behavior
and the emergent intelligence of groups of robots ("robot swarms").
Programming techniques traditional parallel processing techniques,
learning, and genetic algorithms. This project is directed by
Thomas Bräunl and sponsored by
We also use ten mini robots for a laboratory course at the Univ. Stuttgart.
Students are asked to solve a number of tasks, teaching them the basics
of parallel processing, real time processing, and robotics.
For our new hardware/software development of mobile robots with
on-board vision system, see the
We are using the "Rug Warrior" robots, designed at the MIT.
The robots are available as assembly kits from
JOKER Robotics, Stuttgart.
The mini robots have a circular base of about 15cm. The robot is controlled
by a Motorola MC68HC11 micro controller. Software can be downloaded
via a RS-232 link. The parallel programming language IC (interactive C) is
available as public domain software for IBM PC, Apple Mac, or Unix
The complete mobile robot assembly guide is now publically available via ftp.
It contains the complete description of electronics and mechanical assembly
plus programming in Interactive C.
Starting in spring 1995, a graduate level lab course has been conducted by
Thomas Bräunl at the
Computer Science Department of the Univ. Stuttgart. The mobile robots
had been assembled previously by the lab assistants, so the students'
assignments consisted in programming the robots to perform various tasks.
Please note, that several sample programs listed below need further library
files. In order to run this software, copy the whole course software from our
lab ftp directory.
- Assignment #1
Due to manufacturing tolerances, the mobile robots two wheel motors do
not turn at the same speed, when applying the same voltage. Therefore,
a simple program for driving straight may lead in fact to a curve.
In order to remedy this situation, the shaft encoders have to be read
periodically and the wheel speeds have to be amended.
- Assignment #2
The brightest spot had to be searched within the robot environment. The
robot should use its photoresistors to search for brightness, but should
also avoid walls and obstacles. This should be done using the infra-red
sensors, so the bumpers would only be an emergency stop.
Solution 1 lets the robot turn a full circle (360 deg.) and drives then
in the direction of the brightest spot. Solution 2 drives near the
wall, "tacking" when it comes too close (for there are only two infra-red
sensors), and stops when it reaches the light source.
- Assignment #3
The robot had to drive through a previously unknown maze. The goal
is known to be one square to the right of the starting position.
After searching through the maze and finding the goal square, the robot
shall play a tune and move back to the starting square at the
- Assignment #4
A robot programmed by the lab assistants drives a very slow course,
stops at random - but does not halt longer than 5 seconds.
The students had to program a second robot that was to follow the
first robot. The robot in front can be detected by either infra-red
sensors or bumpers. A standing robot cannot be distinguished from a
solid obstacle (such as a wall) - besides the fact that a wall remains
standing after 5 seconds, while the guide robot starts moving
Bringing together several student robots with the guide robot in the same
terrain shows an interesting flocking behavior of this robot herd.
Thomas Bräunl, The Univ. of Western Australia,
Department of Electrical and Electronic Engineering
Crawley, Perth WA 6009