Course Description


The aim of this course is to understand how to build robot systems that can sense their environment to then perform an action. To do this, robots must have the ability to receive information from their environment but also an understanding of themselves within it. Importantly, how can we capture this information greatly influences our subsequent actions both in terms of the availability of actionable data but also the processing required to interpret. By exploring these trade-offs we will explore in depth the sensory systems used to capture information and in turn develop models that enable robots to cooperate with its environment in different ways.

In this course, we will discuss a range of sensing and cognitive control strategies. This theory will then be used to design robotic systems to perform manipulation tasks to cope with unstructured environments such as localising objects for grasping.

Learning Outcomes

  • Understand the main concepts related to robotic manipulation and sensing.
  • Develop methods for tackling uncertainty in robotic manipulation systems.
  • Read scientific literature in robotics to choose approaches for a particular problem.
  • Implement state-of-the-art algorithms on simulated manipulators and sensors.


  • Representing Poses in Robotics
  • Robot Kinematics for Manipulation
  • Visual & other Exteroceptive Sensing
  • Force/Torque & other Proprioceptive Sensing
  • Sensing-based Grasping
  • Visual Sensing Uncertainty and Failures
  • Machine Learning for Manipulation
  • Human-Robot Interaction and Collaboration

Theory Prerequisites

Coding Prerequisites

  • Previous programming experience: C++, ROS, Python.
  • Motivation to work hard.
  • An introductory course on ROS from ETH can be found here.

Syllabus Structure

  • One 2-hours lecture will discuss background theory.
  • One 1-hour lecture for research reading and presentation from the students.
  • One 2-hours lab session will focus on simulated experiments on manipulators and sensors for grasping purposes.



The Moodle page for the course: here.

Methods of assessment

  • Homework 1: 10%
  • Homework 2: 10%
  • Homework 3: 10%
  • Micro Project (Research Report): 15%
  • Mini Project (Research Presentation):20%
  • Final Project and presentation: 35%

Working Groups

Unless specified differently, the research presentations, practical sessions, homework assignments, and final project will be done by students that they form groups (not necessary the same groups for every category). The pairs will be assigned randomly and based only on some requirements such that at least every group has an Ubuntu 16.04LTS, ROS Kinetic system to work on.

  • Research Presentation: 3-4 students (total: 10 teams)
  • Coding HW: 2-3 students (total: 15-20 teams)
  • Research Report: 1 student
  • Project and Report: 2-3 students (total: 15-20 teams)

Academic Integrity

The UCL academic integrity policy applies to your work in this course for: written homework, coding work, and coding assignments. Cheating and other acts of academic dishonesty will be referred to the corresponding UCL office: here.

Instruction Staff

Dimitrios Kanoulas ( d [dot] kanoulas [at] ucl [dot] ac [dot] uk )
Office hours: Thursday, 10:30-12:30pm, GS5.09, or by appointment.

Mohammad Hammid: M [dot] Hamid [at] cs [dot] ucl [dot] ac [dot] uk
Lydia Neary-Zajiczek: lydia [dot] zajiczek [dot] 17 [at] ucl [dot] ac [dot] uk
Valentina Soana: V [dot] Soana [at] cs [dot] ucl [dot] ac [dot] uk