Evolution of robotic controllers using genetic algorithms
This research investigates evolutionary robotics which uses evolutionary computation to generate robotic controllers. The majority of research in this field has been primarily focused on the use of software genetic algorithms to evolve robotic controllers based on artificial neural networks and fuzzy logic. Investigation into other forms of evolvable robotic controllers however is less studied, thus the focus of this research was to investigate and develop new methods of evolving controllers for evolutionary robotics. This led to the creation of three novel concepts within this field including the evolution of lookup tables for robotic control, the implementation of the robotic simulation in hardware for fitness evaluation of individuals, and advances in virtual Field Programmable Gate Arrays (FPGAs) for robotic control.
The innovative utilization of a lookup table for a robotic controller used multi-dimensional lookup tables that linked the state of the robot obtained from input sensors to the required output for the robots actuators in order for the robot to function correctly. A population of these tables (chromosomes) were evolved using genetic algorithms. Two multi-dimensional lookup table robotic controllers were successfully evolved using standard genetic algorithms.
The novel approach of implementing the robotic simulation in hardware rather than software was performed. The time required for a genetic algorithm to evolve a successful robotic controller is largely dependent on the fitness evaluation of an individual. If the robotic simulation could be performed in hardware then there will be a significant increase in performance. It was shown that hardware robotic simulations could be constructed with an improvement in evolution completion time of over two orders of magnitude greater than that of a software simulation.
The use of robotic controllers in the form of two virtual FPGAs were evaluated using two Cartesian based architectures, a fixed layer and a reducing layer virtual FPGA. The configuration bit stream which describes the circuits within the virtual FPGA was evolved by a genetic algorithm implemented in hardware. The input sensors of the robot, indicating its current state were connected to the inputs of the virtual FPGA, while the output was connected to the robot actuators. It was found that both architectures could be evolved to produce robotic controllers.