1. A method for providing a generic robot architecture for robot control software, comprising: providing a hardware abstraction level configured for developing a plurality of hardware abstractions for defining, monitoring, and controlling a plurality of hardware modules available on a robot platform; providing a robot abstraction level configured for defining a plurality of robot attributes comprising at least one of the plurality of hardware abstractions; and providing a robot behavior level configured for defining a plurality of robot behaviors comprising at least one of the plurality of robot attributes; wherein: each robot attribute of the plurality is configured for substantially isolating the robot behaviors from the plurality of hardware abstractions; each hardware abstraction of the plurality is configured for substantially isolating the plurality of robot attributes from a corresponding hardware module of the plurality; at least two hardware abstractions are configured to provide substantially similar hardware information to at least one of the plurality of robot attributes; and the at least one of the plurality of robot attributes is configured to combine the hardware information from each of the at least two hardware abstractions to form attribute information for the at least one of the plurality of robot attributes and can disregard the hardware information from one of the at least two hardware abstractions in forming the attribute information.