skip to primary navigationskip to content

Department of Computer Science and Technology



Course pages 2022–23

Introduction to Robotics

Principal lecturer: Dr Amanda Prorok
Additional lecturers: Dr Robert Harle, Dr Fumiya Iida, Dr Fulvio Forni
Taken by: MPhil ACS, Part III
Code: L310
Hours: 16
Format: In-person lectures
Class limit: max. 20 students
Prerequisites: C++ or Python; Basic probability/calculus; Basic physics (kinematics); Must feel comfortable working with a Linux environment.


This course teaches the foundations of autonomous mobile robots, covering topics such as perception, motion control, and planning. It also teaches algorithmic strategies that enable the coordination of multi-robot systems and robot swarms. The course will feature several practical sessions with hands-on robot programming. The students will undertake mini-projects, which will be formally evaluated through a report and presentation.


Lectures (2 lectures per week):

  1. Introduction (A. Prorok) -- Oct. 7
    a. Why study robotics?
    b. The basics of mobile autonomy
    c. History of robotics research
  2. Architectures (A. Prorok) -- Oct. 14
    a. Autonomy and sensor-actuator loops
    b. Reactive vs deliberative decision-making (and control)
    c. Control architectures
  3. Introduction to kinematics (F. Forni and F. Iida) -- Oct. 21
    a. Motion models; robots with non-holonomic constraints
    b. Kinematics; forward and inverse kinematics
    c. Open-loop vs closed-loop control; intro to PID control.
  4. Introduction to dynamics (F. Iida and F. Forni) -- Oct. 28
    a. Dynamics models
    b. Open-loop and closed-loop control
    c. PID control applied to dynamic systems.
  5. Perception and Localization (R. Harle) -- Nov. 4
    a. Sensors and sensor models, odometry
    b. Maximum likelihood estimation and sensor fusion
    c. Noise and belief representation
    d. Bayes rule, Bayes filter, Particle Filter, KF
    e. Grid localization and map representations
  6. Navigation and Planning (A. Prorok) -- Nov. 11
    a. Basic concepts
    b. Reactive navigation (without a roadmap)
    c. Deliberative planning (with a roadmap)
    d. Planning in multi-robot systems
  7. Multi-Robot Systems (A. Prorok) -- Nov.18
    a. Introduction to Multi-Robot Systems (MRS)
    b. Centralized vs decentralized architectures
    c. Collective movement (formations, flocking)
    d. Task assignment
  8. Introduction to Advanced Robotics (A. Prorok) -- Nov. 25
    a. Introduction to reinforcement learning methods
    b. Model-based vs model-free approaches
    c. Open robotics problems

Pre-recorded material is available here:


By the end of the course students should:

  • understand how to control a mobile robot;
  • understand how a robot perceives its environment;
  • understand how a robot plans actions (navigation paths);
  • know paradigms of coordination in systems of multiple robots;
  • know classical multi-robot problems and their solution methods;
  • Know how to use ROS (Robot Operating System,

Assessment - Part II Students:

For undergraduate students, the assignments will be 100% coursework and consist of two elements: (1) experimental work using a robot simulator and real robots, and (2) theory / understanding. The exercises will require data collection and analysis. The balance between practice and theory will depend on the exercise topic. Each student will submit a written report. Students will be expected to be able to demonstrate any results reported in their hand-in.
Assessment: Each assignment will compose 45% of the final mark; the remaining 10% of the mark will be determined by the student's performance in a 1-on-1 presentation with either the lecturer or a senior assessor. The mark for each assignment will be determined in part by the score achieved in the written report, and in part by the performance of the student during a questioning session. The lecturers will hold an in-person questioning session with each student to discuss their submissions. Submissions are non-anonymous.

Assignment 1: Covers material from Lectures 1-4
Assignment 2: Covers material from Lectures 5-8

Presentation: One-on-one presentation of assignments.

Recommended reading

Siegwart, R., Nourbakhsh, I.R. and Scaramuzza, D. (2004). Autonomous mobile robots. MIT Press.
Thrun, S., Wolfram B. and Dieter F. (2005). Probabilistic robotics. MIT Press.
Mondada, F. and Mordechai B. (2018) Elements of Robotics. Springer
Siciliano, B. and Khatib, O. (2016) Springer handbook of robotics. Springer.
Mesbahi, M. and Egerstedt, M. (2010) Graph theoretic methods in multiagent networks. Princeton University Press.

Assessment - MPhil / Part III Students:

  • A practical exercise based on lectures 1 - 4 (30% of mark)
  • A practical exercise based on lectures 5 - 8 (30% of mark)
  • A project report and presentation (40% of mark).

Further Information

Due to infectious respiratory diseases, the method of teaching for this module may be adjusted to cater for physical distancing and students who are working remotely. Unless otherwise advised, this module will be taught in person.

Current Cambridge undergraduate students who are continuing onto Part III or the MPhil in Advanced Computer Science may only take this module if they did NOT take it as a Unit of Assessment in Part II.

This module is shared with Part II of the Computer Science Tripos. Assessment will be adjusted for the two groups of students to be at an appropriate level for whichever course the student is enrolled on. Further information about assessment and practicals will follow at the first lecture.