This document provides an overview of ROS and Gazebo for robot simulation. It introduces ROS as a framework for robot software development that encourages code reuse. Key ROS concepts covered include nodes, topics, services, and packages. The document demonstrates creating simple ROS packages and nodes that publish, subscribe and use custom messages. Gazebo is introduced as a 3D physics simulator for robot control and environment simulation. Example demonstrations are provided on using Gazebo and ROS for SLAM with the PR2 robot in Rviz. Resources for further learning about ROS and Gazebo are also listed.