Introduces students to the Robot Operating System (ROS) as well as to many of the available tools commonly used in robotics. Lectures focus on theory and structure, whereas laboratory sections will focus on applications and implementations. Students learn how to create software and simulations, interface to sensors and actuators, and integrate control algorithms. The course works through exercises involving a number of autonomous robots (i.e., ground and air vehicles) that students will eventually use in their subsequent RAS minor courses. Topics include: ROS architecture, console commands, ROS packages, simulation environments, visualizations, autonomous navigation, manipulation, and robot vision.