This document provides an introduction to the Robot Operating System (ROS). It discusses problems in robotics development that ROS aims to address, such as lack of standards and code reusability. The key features of ROS are presented, including its peer-to-peer communication model using topics and messages, and its use of packages and libraries to encourage code reuse. ROS uses a master to facilitate communication between nodes publishing and subscribing to topics.