Syllabus • Schedule • Academic Integrity • Piazza Page

Assignment 1: Get started with ROS

ROS, the Robot Operating System, provides a number of useful capabilities for working on robots and robotics projects. This assignment is designed to get you a functioning ROS install and provide familiarity with the underlying concepts.

Read the entire assignment before starting!

Group work?

Part 1: For part 1, you may help one another get VM software and ROS installed, help one another understand Linux, and post relevant information to Piazza. (This isn't a class about learning to install software!) However, you may not share an installation. Each student must have their own, unshared installation that you know how to use and add packages to. Each student will need a working copy of ROS, not only for this assignment, but for later assignments and for the project.

Parts 2-3: Tutorials and code must be done individually. You may not work on Part 2 or Part 3 in groups, share code, or discuss the assignment beyond the conceptual level.

Assignment

Part 1: Get ROS running under Ubuntu on a VM

  1. Download VirtualBox ISOs here (for any OS)
  2. Follow This excellent tutorial on installing Virtual Box and Ubuntu
    VM settings:
    • Memory: 4096 MB (or as much as your computer can manage)
    • Virtual CPUs: 2
    • Operating system: Ubuntu 18.04
  3. Follow this tutorial to install ROS. (Official step-by-step instructions here.)

Part 2: Do ROS Tutorials and take screenshots

Find the ROS Tutorials here.

  1. Do all of the beginner tutorials 1.1.2 through 1.1.20 (except 1.1, installation).
  2. Do the following Intermediate Tutorials: 1, 2, 4, and 5.
  3. Take screenshots showing the commands and outputs from running these tutorials:
    • 4: Building your own ROS package using catkin_make
    • 6b: The visual plot of topics from rqt_graph
    • 8a: The running rqt console, showing turtle_sim
    • 8b: Two turtles running around, with trails showing them going left, then down, then left
    • 17: The output of your rosbag info commands
    • Intermediate 4: The output of your rostopic list command

Part 3: Write simple nodes

  1. Write one subscriber and two publisher nodes using python. Both publishers should send string messages to the subscriber; the first one should send "Hello" and the second should send "World". The subscriber should print both messages, one by one in a 1 Hz loop.
  2. Take a screenshot of the activity from the subscriber (something like this).

Turning In Results

Your deliverables:

Part 1: A writeup of the process (a few paragraphs of text, in complete sentences). This should be a PDF file, 200-400 words, containing:

  • The names of anyone who helped you (in the class or not) with Part 1, and a little about how/with what.
  • The names of anyone you helped, and a little about how/with what.
  • Approximately how much time you spent on each of Part 1, Part 2, and Part 3. What this consistent with what you expected?
  • The things you found hardest and any errors/problems you ran into.
  • What sources you used to address those errors. (What web pages? Books? Discussions? TA? ...)
Part 2: All screenshots (PNG, GIF, or JPG) showing the commands and outputs from running the tutorials. This should include the 6 screenshots from the tutorials, and 1 from the publisher/subscriber. All seven images should be in a single zip file.

Part 3:Your publisher and subscriber as .py files.

Everything will be submitted through Blackboard, for a total of 4 files. Remember, file types matter!