Simulator programmed in Python with PyGame.
It has an evolutionary alogirthm implemented that trains the robots in several rooms at each generation and uses the average fitness as robot fitness to select. It can use one or two points crossover, mutation and elitism.
It also has localization implemented using landmarks with known correspondence and using Kalman Filter to correct the measurement noise.