CM3118: Introduction to Computational Robotics
| School | Cardiff School of Computer Science and Informatics |
| Department Code | COMSC |
| Module Code | CM3118 |
| External Subject Code | 100170 |
| Number of Credits | 20 |
| Level | L6 |
| Language of Delivery | English |
| Module Leader | Dr Juan Hernandez Vega |
| Semester | Autumn Semester |
| Academic Year | 2025/6 |
Outline Description of Module
This module aims to provide a general introduction to the computational and algorithmic aspects of robotics, with a particular emphasis on how robots plan actions (i.e., make decisions) in navigation and manipulation tasks. Such tasks represent some of the current challenges to deploy robots in situations in which they must interact and collaborate with humans, e.g., when navigating social spaces (i.e., environments shared with people), or when handing over objects/tools to human teammates. The students will study robots as (semi-)autonomous systems that continuously sense the surroundings, plan actions, and act. The module will provide a general overview of different aspects of the robot sense- plan-act loop, but it will mostly focus on how robots plan actions. The students will learn about the most common algorithms that solve different variations of the robot planning problem, while also getting a practical understanding of other correlated problems, such as robot localisation and mapping.
The students will understand the aforementioned challenges and learn about some available algorithmic solutions via instructor-led and hands-on/tutorials sessions, in which the students will also familiarise themselves with computational libraries (e.g., the Open Motion Planning Library) and middleware (e.g., the Robot Operating System) that are commonly used in robotics. Such theoretical and practical sessions will be complemented with guest lectures from both industry and academia. The students will also learn about the potential opportunities as computer scientists and robotics software engineers in the growing market of autonomous and robotic systems.
On completion of the module a student should be able to
-
Explain and describe robots as (semi-)autonomous systems that operate under the sense-plan-act loop.
-
Understand the most relevant computational and algorithmic aspects in robot navigation.
-
Understand the most relevant computational and algorithmic aspects in robotic manipulation.
-
Propose algorithmic solutions to some of the common robot planning problems.
-
Modify software control software architectures that are implemented in commonly used middleware for robotics.
-
Implement algorithmic solutions for the robot planning problem by using existing computational libraries for robotics.
How the module will be delivered
The module will be delivered within (1) class comprising a mixture of instructor-led class presentation and discussion, demonstration, videos, and guest lectures, and (2) hands-on/tutorials comprising activities in labs in which the students will have the opportunity to use off-the-shelf examples of the different algorithmic solutions studied during the lectures. This will also allow the students to familiarise themselves with widely used computational libraries and middleware that are considered standard in both academia and industry. To do so, the students will have the support of a teaching associate with experience in computational robotics, and well as existing online documentation, scientific articles in ACM/IEEE Digital Libraries and recommended reading textbooks. Students will be expected to attend all timetabled sessions and engage with online material.
Skills that will be practised and developed
Students will be introduced to some of the fundamental aspects of computational robotics with hands-on/tutorial sessions that will require students to use some of the standard libraries and middleware. Such tools have become a must in many job applications for postgraduate position in academia, as well as in computer research scientist and robotics software engineer positions in industry. Additionally, students will learn from the experience shared by guest speakers invited from industry and other academic institutions.
In summary, the module will allow students to expand their CV and experience portfolio to apply for industry and or research applications (e.g., MRes, MPhil, PhD).
How the module will be assessed
The module will be assessed by two individual courseworks, which will be set during the semester. The coursework will be split in two parts: one covering the material related to Mobile Robot Navigation (50%) and one covering the material related to Robot Manipulation (50%) (see Syllabus content). The coursework will involve solving some practical computational robotics problems in simulated environments, which will require building on the examples discussed during the hands-on/tutorial sessions. The coursework is intended to assess the students’ ability to apply algorithmic solutions (including coding) to solve some of the challenges of autonomous and robotic systems.
Assessment Breakdown
| Type | % | Title | Duration(hrs) |
|---|---|---|---|
| Written Assessment | 50 | Exercise: Mobile Robot Navigation | N/A |
| Written Assessment | 50 | Exercise: Robot Manipulation | N/A |
Syllabus content
PART1: Introduction and Foundations
Instructor-led (theoretical) sessions:
-
Introduction to the module
-
Coordinate frames and transformations
-
General concepts in robotics (e.g., odometry, sensors, actuators, degrees of freedom, holonomic and non-honolonomic systems, etc.)
Seminars:
-
Applications of Robots and Autonomous Systems
Hands-on (practical) sessions:
-
Ubuntu Linux Installation (virtual machines or native installation)
-
Basic Ubuntu Linux commands
-
Robot operating system (ROS) installation
-
Basic tutorials of ROS
-
ROS tools (RViz, rqt)
-
The tf library in ROS
-
Software architectures with ROS
PART2: Mobile Robot Navigation
Instructor-led (theoretical) sessions:
-
Bayes Filters
-
Localisation
-
Simultaneous localisation and mapping (SLAM)
-
Configuration space (C-Space) and Path Planning definition
-
Navigation without a map:
-
Reactive navigation (Bug Algorithms and Artificial Potential Fields)
-
Navigation with reinforcement learning
-
Navigation with a map:
-
Navigation with search-based algorithms (e.g., BFS, DFS, Dijkstra’s, A, D)
-
Navigation with sampling-based algorithms (e.g., RRT, RRT*)
-
Navigation for non-holonomic mobile robots (Hybrid A*, Kinodynamic RRT)
Seminars:
-
Path planning for mobile robotic systems (industry)
Hands-on (practical) sessions:
-
Simulation of simple mobile robots and their sensors in ROS
-
Implementation and tests of Bugs algorithms
-
Using localisation libraries (e.g., AMCL) in ROS
-
Using SLAM libraries (e.g., Gmapping) in ROS
-
Implementation and tests of search-based path planning methods in ROS
-
Implementation and tests of sampling-based path planning methods in ROS
-
Using the Open Motion Planning Library (OMPL)
-
Implementation and tests of navigation for non-holonomic robots in ROS
PART3: Robot Manipulation
Instructor-led (theoretical) sessions:
-
High dimensional C-Spaces
-
Search-based approaches for robot manipulation
-
Optimisation-based approaches for robot manipulation
-
Sampling-based approaches for robot manipulation
-
Reinforcement learning for robot manipulation
Seminars:
-
Path planning for robot manipulation systems (industry)
Hands-on (practical) sessions:
-
Using the Search-based planning library (SBPL) in ROS
-
Using MoveIt! (Manipulation framework) in ROS
-
Using Robowflex (Manipulation framework)