Evolving Braitenberg Vehices

About this Project

Evolving Braitenberg Vehicles was created by Marek Michalowski, Oleg Elkhunovich and Jason Oh as a final project for Professor Brian Scassellati's Computer Science 473 - Intelligent Robotics course in the Yale University Computer Science Department. Our goal was to build a Braitenberg vehicle simulator that would allow users to evolve Vehicle 6-type creatures. We designed this simulator to be intuitive and user friendly so that it could be used for educational purposes and for further research.

Braitenberg Vehicles are simple "creatures" conceived by Valentino Braitenberg in his book Vehicles: Experiments in Synthetic Psychology. Despite the simplicity of their internal structure, these creatures are capable of exhibiting surprisingly complex behaviors. The vehicles have two stimulus receptors directly coupled with two motorized wheels. The functions describing the wires connecting the sensors to the wheels determine a particular vehicle's behavior. Braitenberg describes a number of vehicles varying degrees of complexity. Braitenberg vehicles, although simplistic, have biological appeal and were motivated by Braitenberg's neuroscience research.

In the section entitled Selection, the Impersonal Engineer, Braitenberg describes Vehicle 6, which is the product of a Darwinian model of evolution. A population of these Braitenberg vehicles evolves specific behaviors based on the fitness of individual vehicles. Our simulator allows users to specify a desired path and uses a genetic algortihm to evolve a vehicle whose path approximates the desired goal.

Our simulation was written using Macromedia Director and can be run in the web browser of any computer that has the Macromedia Shockwave player plug-in installed.

Please refer to the User Documentation for detailed instructions on how to use this simulator. You can find some experiments that we have performed to test the effectiveness of our simulator, the paper describing the project, and other materials in the Materials section. You can also find other Braitenberg vehicle simulators in the Links section.

Simulator

Documentation

There are four different screens: "Vehicle Simulation," "Vehicle Settings," "Goal Specification," and "Vehicle Evolution." Navigation between these screens is achieved by clicking on the corresponding buttons at the top of the screen.

Vehicle Simulator

The vehicle simulator design and core model is based on the simulator written by Mark Ziler. There is a button at the bottom of this "Vehicle Simulator" screen which starts and stops the vehicle. The light and the vehicle can each be dragged around the screen, and the vehicle can be additionally rotated.

Vehicle Settings

The vehicle has two light sensors that are both connected to each of the two wheels. Thus there are four wires - two direct and two crossed. The vehicle configuration is specified by the quadratic equations describing each of the four wires. These twelve coefficients can be set in the "Vehicle Settings" screen. The user can also specify the offset value for the vehicle, which controls its speed. The light intensity can also be specified here. The two reset buttons force the vehicle and the light to return to their default positions on the "Vehicle Simulator" screen.

Goal Specification

To start the evolution of a particular Braitenberg vehicle, a goal path must first be defined. This is done in the "Goal Specification" screen. The light can be dragged to a desired position and the path can be drawn by left-clicking and dragging the mouse. The path can be redrawn until the user is happy with the desired path. When a path is drawn, it is converted to its internal representation of twenty approximately equi-distant points on the path. This representation is drawn to the screen as solid lines.

Vehicle Evolution

Once a goal path is specified, evolutionary preferences can be set in the Vehicle Evolution screen. This screen allows the user to specify the number generations to be created and the number of genotypes in each population. The user can then adjust the proportion of genotypes in the population that will be left unchanged, crossbred, or mutated after every generation. Clicking on the "Start Evolutionary Process" button will start the genetic algorithm. The progress bars in the corner display the status of the simulation, and the 'c' key may be pressed to cancel the simulation.

Once the evolution simulation is complete, the most successful vehicle in the last generation is loaded into the "Vehicle Settings" screen. The paths of all the vehicles created by the genetic algorithm are drawn in red on the "Goal Specification" screen, and the winning vehicle's path is drawn in blue. The user may go to the "Vehicle Simulator" screen and simulate the winning vehicle.