ROS will be the main software framework for your coursework and projects in this course. It serves as a middleware architecture for communicating information between sensors, computational processes, actuators, and possibly other robots. The ROS ecosystem also includes many packages that implement common robotics tasks and interface with common sensors, networks, actuators, simulators, and visualization tools.
After completing this milestone, you will be able to
- Install ROS on your local machine.
- Execute basic ROS commands at the command line.
- Describe basic properties of the ROS architecture, such as the purpose of and distinction between packages, nodes, publishers, subscribers, topics, services, clients, parameters, ...
ROS is an open source project with many components. It is normally installed from source code which must be compiled on your local machine. Please get started on this step early, because it can take several hours to get all the various packages downloaded, compiled and installed even if everything goes smoothly.
ROS can be a computational resource hog. If you have access to multiple machines, we recommend using one with a GPU, larger screen, more memory and/or more powerful processor if possible.
ROS has a large user community. If you run into problems, search for troubleshooting help online before posting to the course discussion forum.
Please make sure you install the version of ROS called ROS Melodic Morenia (ROS Melodic for short). Do not install ROS 2.
Installation instructions depend on your operating system (OS).
Ubuntu Linux has been the OS of choice for ROS since the beginning, so if you have access to a machine on which you can run it natively, we recommend this choice. Ubuntu 18.04 (Bionic) is the favoured version for ROS Melodic. Follow the guide here.
ROS has recently extended official supported for Windows. The installation guide is a bit long to follow and requires extra caution. However, I believe ROS can be installed on any 64-bit Windows PCs so you can ignore the requirement "ROS for Windows requires 64-bit Windows 10 Desktop or Windows 10 IoT Enterprise." I have kept a file of notes from my own experience on my Dell XPS 14 running Windows 10 which you may find useful.
Although ROS is not officially supported on MacOS, there have been many successful cases of installation on MacOS. The guide is here.
Alternatively, use a virtual machine by following this guide offered by EPFL.
In addition to installing ROS, you will need to learn the structure of and how to interact with the ROS framework. ROS has provided a list of tutorials that you can follow.
- To complete this Milestone, work through the "Beginner Level" tutorials (aka Core ROS Tutorials 1.1) items 1-8 and 10-13.
- We will cover items 17-18 in a later Milestone.
- You are welcome to do the remaining tutorials on your own, but at this point we expect to use the Publisher/Subscriber model rather than the Service/Client model for homework assignments.
- Feel free to use whatever text editor you prefer.
To demonstrate that you have completed this Milestone, you need to be able to show (through a screen share) that you can:
- Initialize ROS Core on your local machine.
- Launch your publisher/subscriber pair from tutorial 13 and demonstrate that they are communicating.
- Execute another command (which we will specify) on your local machine that demonstrates ROS Core is operating.
- Explain what another ROS command (which we will provide) does.
- Execute a command to perform a basic ROS task which we will specify.
- Answer a question about the basic ROS architecture.
The assessment will be time limited, so make sure your local machine is properly set up in advance, and have at least four terminal windows open and ready to execute ROS commands. You may use written sources (including internet searches) to answer the questions, but the time limitations will not permit extensive searching and reading. It will be possible to answer the questions in a sentence or two.
More details about assessment meetings will be announced shortly.