Programming for Robotics - ROS

Main content

Abstract: This course gives an introduction to the Robot Operating System (ROS) including many of the available tools that are commonly used in robotics. With the help of different examples, the course should provide a good starting point for students to work with robots. They learn how to create software including simulation, to interface sensors and actuators, and to integrate control algorithms.


  • ROS architecture: Master, nodes, topics, messages, services, parameters and actions
  • Console commands: Navigating and analyzing the ROS system and the catkin workspace
  • Creating ROS packages: Structure, launch-files, and best practices
  • ROS C++ client library (roscpp): Creating your own ROS C++ programs
  • Simulating with ROS: Gazebo simulator, robot models (URDF) and simulation environments (SDF)
  • Working with visualizations (RViz) and user interface tools (rqt)
  • Inside ROS: TF transformation system, time, bags

Content: This course consists of a guided tutorial and exercises with increasing level of difficulty when working with an autonomous robot. You learn how to setup such a system from scratch using ROS, how to interface the individual sensors and actuators, and finally how to implement first closed loop control systems.

Course dates

Location: HG G1

Time: 08.15-12.00

Dates: 20.2.2017, 23.2.2017, 24.2.2017, 27.2.2017, 2.3.2017

Preparation before the course

Because the course will start already on the first day using ROS and Ubuntu, we expect you to prepare your Laptop with a working environment before the course. During the course, we will work with Ubuntu 14.04 and ROS Indigo Igloo. We highly recommend you to use a virtual machine and the provided image that already contains a preinstalled environment with the following software:

  • Ubuntu 14.04
  • ROS Indigo Igloo
  • Eclipse Neon
  • Catkin commandline tools
  • Terminator
  • Git

Install virtual machine

To run the provided image you need the VMware Workstation 12 Pro (Windows, Linux) or VMware Fusion 8 (Mac OS X). This software can be ordered on the ETH Zurich’s IT Shop:

Please follow the given instructions to download and install the software from VMware.

Download image

Download the complete folder “Ubuntu ROS-Course” from polybox:

We recommend you to have at least 20GB of available memory on your computer to run the virtual machine.

Start up virtual machine

  • Open VMware Workstation
  • Open file Ubuntu ROS-Course.vmx in the downloaded folder Ubuntu ROS-Course
  • Start virtual machine with “Power on this virtual machine”
  • To login under Ubuntu use the provided account ROS Course:
    • User: student
    • Password: Ros.2017

Course material

Video Recording of the Lectures
  Topics Material
  • ROS architecture & philosophy
  • ROS master, nodes, and topics
  • Console commands
  • Catkin workspace and build system
  • Launch-files
  • Gazebo simulator    
  • ROS package structure
  • Integration and programming with Eclipse
  • ROS C++ client library (roscpp)
  • ROS subscribers and publishers
  • ROS parameter server
  • RViz visualization


  • TF Transformation System
  • rqt User Interface
  • Robot models (URDF)
  • Simulation descriptions (SDF)
  • ROS services
  • ROS actions (actionlib)
  • ROS time
  • ROS bags
  • Debugging strategies
  • Case study: Using ROS in complex real-world applications

Setting up a developer's PC (after the course)

If you will later work on a project involving programming with ROS under Linux, we recommend a native installation (not recommended for this course). You can install the same installation as you found on the virtual machine with these instructions (PDF, 77 KB).

Page URL:
© 2017 Eidgenössische Technische Hochschule Zürich