ROS and experimental robotics

I'm the teaching instructor, with my colleague Fabien Vérité, of a teaching unit mainly dedicated to ROS (a software framework for Robotics) and its use in a simulated or experimental context. This unit is proposed in the "Automatique, Robotique" Master, 1st year, and is common to the "Intelligent System", "Advanced Systems and Robotics" and "Mechanical Systems for rehabilitation" paths.

This teaching unit mainly relies on a pre-installed virtual machine provided by the teachers at the very beggining of the semester (it is not available in this repository, but can me made available upon request). A short how-to is provided to explain how to use this VM, based on standard Ubuntu 20.04 and Ros Kinetic installations. Fur students working with macOS, an alternative installation method based on RoboStack is proposed in the unit Github repository

The students have access to about 30 turtlebot 3 burger. Each robot emits a wifi hotspot with a SSID turtlebotX_wifi, with X the number of the robot sticked on the higher plate. The way to interact with the robot through ROS (wifi connection, network parameterization of the VM, etc.) is indicated in the turtlebot guide document.

Pedagogical approach

The unit is mainly rooted on the ABCD (Activity Based Curriculum Design) method. Basically, this approach relies on:

  • A student-centered learning: teaching activities are designed in accordance with students' needs to achieve learning objectives;
  • Evaluations that are integrated into the learning process;
  • Active Learning: lecture design includes participatory methods that encourage the learning ability of future professionals, shared among the following activities:
    • Acquisition
    • Investiation/research
    • Practice/training
    • Discussion
    • Production
    • Collaboration

In addition, we tried to be careful about well-formulated learning objectives:

  • concise and precise
  • quantifiable (by the student and for assessment)
  • focused on skills with aligned evaluations which:
  • are part of the learning process;
  • and should only assess the learning objectives e.g. "don’t test the application of a skill if it has not been taught".

Then, our main pedagogical objective is to "make students familiar with ROS and ready to develop with it". Our second objectives are:

  • develop an application based on a set of specifications
  • confront the differences between simulation and a real robot
  • apply theoretical knowledge of robotics and exploit all competencies from past/actual teaching units: in Python, Signal/image processing, Automatic control.


Our repository contains the source files of the LateX-generated PDF file used during the practicals sessions. An enriched version, listing all the answers of each question is also available upon request. The unit is split in 3 different parts:
  • Part 1, an introduction to ROS: this is where all the students actually discover ROS and its root concept. Students must carefully follow online tutorials, helped with a guide and a forum available on the Sorbonne Université Moodle unit page;
  • Part 2, URDF and simulations with ROS: this is where the students start to work with gazebo, a physical simuator used to gather realistic sensorimotor data from simulations;
  • Part 3, project: the students now work on their own, on simulation and with a real turtlebot 3 burger system. They all have different challenges to reach, like navigating by following color lines, avoiding obstacles, navigating in a corridor, etc.

This article was updated on April 17, 2024