ROS ( is a software framework for building a modular robot software system. The ROS API is used to communicate between modules (called "nodes"). There is also a library of ROS node implementations for popular robotics hardware, and a slew of software tools that leverage the communication infrastructure to do things like visualizing the state of the robot (e.g., a 2D map view), simulating nodes (e.g., data from a GPS receiver), and remotely controlling the actuators.