Having had a good night's sleep feels so much better. After the fire alarms stopped yesterday, I had a look at the neural network input and output over time. The output was abnormally small which explained why the robots weren't moving. The robots also didn't seem to be receiving visual input. I've got one or two hours to work today before a relaxing weekend.
Aah, I printed out the minimum efficacy, maximum efficacy, and decay rate. The maximum efficacy was the same as the minimum efficacy. Yep that was it. A small bug that freaked me out on a rainy, warm, Friday night with blaring fire alarms.
I was worried that I'd made too many big changes, without testing. At the same time I couldn't really make the changes smaller in this case. More an more I'm appreciating the power of a well designed code interface.