Software Architectures for Robots Capable of Intelligent Autonomy: A Survey of the State of the Art