Module aims

This module focuses on mobile robotics, emphasising practical algorithms for navigation, all based around real hardware and tested in the real world. Key elements are: 

1) Wheeled locomotion, motor control, and motion calibration
2) Outward-looking sensors for behavioural control loops
3) Probabilistic localisation using particle filtering
4) Advanced use of sensors for place recognition, occupancy mapping and planning
5) An introduction to Simultaneous Localisation and Mapping.

This course is intensively practical, and all the key methods you learn will be tested on robots you build and program from scratch in groups using kits based around the Raspberry Pi single board computer and Lego Mindstorms components.

Learning outcomes

Upon successful completion of this module you will be able to:

  • build, program and experiment with practical robots
  • calibrate and model imperfect motors and sensors
  • use knowledge of the essentials of feedback control to implement sensor/ motor control loops
  • use probabilistic methods to implement 2D localisation and mapping functionality on a mobile robot
  • evaluate algorithms for relocalisation, mapping, and planning in the context of a mobile robot navigation system

Module syllabus

  • What is a robot? Applications and state of the art in mobile robotics. Case study on robotic floor cleaners.
  • Robot Motion: wheel kinematics. Motors, gearing and PID control. 2D coordinates and rigid kinematics. Motion uncertainty.
  • Sensors: sensor types and processing. Sensor/ motor control loops with feedback. Reactive behaviours.
  • Motivation for probabilistic methods in robotics. Probabilistic representation of uncertain motion using particles.
  • Monte Carlo Localisation: a full algorithm of probabilistic localisation within a known map, using odometry and sonar.
  • Place Recognition, Occupancy Mapping and Dynamic Window planning.
  • Introduction to Simultaneous Localisation and Mapping (SLAM).
  • Review and Competition: all students take part in groups in a challenge race to complete a timed robotics objective.


Essential geometry (vectors, rotations, trigonometry).
Essential probability theory.
Programming: you will write a lot of code in Python.
Willingness to work in groups with robot kit hardware, which is not always reliable.

Teaching methods

In this module we emphasise “learning by doing”, and from the start of the course you will be given a robot kit to work with in groups in the extended practical sessions and in your own study time. Every week, once new methods have been introduced in lectures, you will be set a practical task and will need to build and program robots from scratch to achieve a set of objectives. The robot kits are designed such that a simple robot can be built and programmed to move within a few hours, but we focus on the challenge of going beyond the capabilities of toys towards robots which can move precisely and repeatable in the challenging real world. This involves getting to grips with the sometimes frustrating but essential issues of tuning and calibration of motors and sensors which are so important in any practical system. You will then be able to progress quickly to implementing for yourself highly satisfying methods such a probabilistic localisation using a particle filter. Our kits allow such methods to be visualised on-screen in real-time which will greatly aid your intuitive understanding. Most importantly, you will have implemented the full journey from an algorithm in paper to a working demonstration on a robot you have built yourself. The course always finishes with a competition, where the groups go head to head against the clock on a challenge. Finally, the course regularly features a guest lecture on robotics in industry.

An online service will be used as a discussion forum for the module. 


The coursework element counts for 30% of the total, and takes the form of weekly in-lab practical assessments by demonstration and discussion in groups. Since the practical work is the core part of the course, the final individual examination, which counts for 70%, is closely based on methods covered in the practical exercises, with questions which focus on the implementation of practical techniques.                                                   

The weekly practical sessions are highly interactive, and you will regularly get advice and feedback from the course leader and Graduate Teaching Assistants (GTAs). More formally, in practical assessments you will present and demonstrate your week’s work in the lab and receive immediate feedback and marks on the spot, with advice for improvement and time to ask questions. We also give whole class feedback on practicals in the following lecture.   

Reading list

Module leaders

Professor Andrew Davison