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.
Group work instructions
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!) That said, make sure you have your own installation that you know how to use. Each student will need a working copy of ROS, not only for this assignment, but for later assignments and for the project. You must turn in your own individual writeup.Part 2: Tutorials and code must be done individually. You may not work on this in groups, share code, or discuss the assignment beyond the conceptual level. Each student must turn in their own results.
Assignment
Part 1: Get ROS running under Ubuntu
You have two choices, depending on whether you have a computer that runs Ubuntu. You can either:
- Download and install ROS on a Linux system. For this class we will be using ROS Kinetic Kame, which runs on Ubuntu Wily and Xenial.
- Install Ubuntu Xenial, then ROS, on a VM. We strongly recommend VirtualBox.
- Install VirtualBox (for any OS)
- Recommended VM settings:
- Memory: 2048 MB
- Display Name: ROS Ubuntu VM
- Guest OS: Ubuntu
- Virtual CPUs: 2
Part 2: Do ROS Tutorials and write simple nodes
- Do all the "Beginner" Tutorials: 1 through 20.
- Do the following "Intermediate" Tutorials: 1, 2, 4, and 5.
Do the following exercise:
Write one subscriber and two publisher nodes using python or C++.
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.
Example:
Publishers
Subscriber Here is an example of what you should be seeing (with Hello and World replaced by "one" and "two"). |
Turning In Results
Your deliverables:- A writeup of the process (a few paragraphs of text, in complete sentences). This should be a PDF file, 200-400 words, containing:
- How and on what you did Part 1. (What computer/OS you used, what VM software if any.)
- 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 step of the process.
- The things you found hardest and any errors/problems you ran into.
- What sources you used to address those errors. (Stack overflow? Books? ..?)
- Screenshots (PNG, GIF, or JPG) showing the commands and outputs from running the tutorials. Turn in screenshots of:
- 4: Building a ROS Package
- 6b: The visual plot of topics
- 8a: The running rqt console
- 8b: Two turtles running around (with trails)
- 17: The output of your rosbag info command
- Intermediate 4: The output of your rostopic list command
- Your publisher and subscriber, as either .py or .cpp files.
- Upload a single zip file named yourlastname-asst1.zip. It should contain:
- One PDF file containing the writeup of your process. (Make sure it addresses the questions above.)
- Six PNG, GIF or JPG screenshots, named 4.xxx, 6b.xxx, 8a.xxx, 8b.xxx, 17.xxx, and I4.xxx.
- All necessary files for your publisher and subscriber.