Lab #1: Introduction to ROS

       Introduction

The main objective of this lab is to familiarize you with the Robot Operating System (ROS). This lab will serve as a building block for the upcoming lab assignments and projects. The lab should be completed individually. I recommend you take your time: if you breeze through it, the next few labs will be much harder.

Warning: this will be the most borning lab of the entire class. There's a ton of information in the assignment and you'll need to do your best to absorb it. Of course, you'll also be able to refer back to this information throughout the semester. But without this core knowledge of ROS, we wouldn't be able to do fun projects on the physical robots.

Objectives

Upon successful completion of this lab, you will be able to:

  1. Demonstrate knowledge of ROS nodes, messages, and services.
  2. Demonstrate knowledge of ROS tools.
Assignment
  1. If you are not familiar with Linux, read through the following for commonly used terminal commands: https://help.ubuntu.com/community/UsingTheTerminal. When you encounter Linux problems, I suggest you 1) Google, 2) Ask other students, and 3) Talk with our department's Linux User Group.
  2. Read the ROS/Introduction wiki: http://ros.org/wiki/ROS/Introduction
  3. Install ROS on your computer. I suggest you install the version called "Hydro." I suggest you follow the directions at this walkthrough, which will get you set up with the default pacakages for this class: https://github.eecs.wsu.edu/pages/flukolo/Cpts483-Intro-To-Robotics/getting-started/. You can either install ROS directly on your computer if you have Linux, or you can use something like Virtual Box.
  4. Now that ROS is installed, complete the ROS tutorials (beginner level) at http://www.ros.org/wiki/ROS/Tutorials.
  5. After finishing the beginner tutorials, answer the questions in the questionnaire in a new file and submit the answers via Angel. The answers must be in either plain text format, or in a .pdf file.
  6. Read through the Intermediate Level tutorials. There's nothing to hand in for this part, but this knowledge will come in useful later.