Genetic algorithms converge, and once they have converged there is no going back. They cease to be able to adapt, even though the environment may be changing around them. There is a much simpler algorithm that can continue to adapt and can also be used for co-evolution, it's here: http://code.google.com/p/robotaware/downloads/list
You start with a parent then you use a special mutation function to create a child. The child replaces its parent if it is fitter. Too simple to work well?
The key here is the mutation scheme that uses the exponential function. It really gives surprisingly good results. Dynamically evolve a brain for your robot! One that can continually adapt to changing circumstances.