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; and providing a robot abstraction level configured for defining a plurality of robot attributes comprising at least one of the plurality of hardware abstractions, wherein the plurality of robot attributes provide a software framework for building robot behaviors from the plurality of robot attributes and wherein each robot attribute of the plurality is configured for substantially isolating the robot behaviors from the plurality of hardware abstractions.