A comparison of controller architectures and learning mechanisms for arbitrary robot morphologies