The course aims to introduce the student to the field of autonomous navigation and mobile robotics, exploring the fundamental principles and algorithms that allow a platform to move independently through an unknown environment.
The goal is to provide a deep understanding of how robotic systems process sensory information to localize themselves, map the space, and plan collision-free trajectories. The course focuses on the essential concepts of perception and movement. The mathematical and probabilistic foundations of localization will be addressed, including Kalman filters and SLAM methods, as well as the kinematic models of mobile platforms.
To reinforce learning and provide tangible experience, the course will include practical laboratory sessions using the ROS2 (Robot Operating System) ecosystem and the development of nodes in Python/C++, where students will be able to apply the concepts in simulation environments (Gazebo) and later validate them on physical robots. Finally, various practical applications will be analyzed to understand the limitations of hardware and communication networks in real-world situations.
Titular Professors
To take the course, fundamental prior knowledge of algebra, calculus, and probability is required, which is especially necessary to understand the geometric and mathematical principles underlying navigation and localization. Likewise, it is strongly recommended that students have prior experience using Linux-based operating systems, as well as solid programming skills, preferably in Python. Additionally, it is highly advantageous to have an introductory foundation in the ROS 2 (Robot Operating System) ecosystem, as it will serve as the primary framework for developing and implementing the software practicals on mobile platforms.
The course aims to introduce the student to the field of autonomous navigation and mobile robotics, providing a solid foundation in the fundamental principles, methods, and algorithms that allow a platform to move independently through an unknown environment. Likewise, it aims to develop the ability to understand and apply essential concepts of perception, spatial localization, mapping, and trajectory planning, equipping students with the technical intuition necessary to identify and solve the problems inherent to the control and mobility of these systems. With this, the goal is to enable students to design and integrate cutting-edge technological and software solutions that contribute to the development of robust, efficient, and safe robotic systems for today's industry.
Block I. Motion Modeling
Unit 1. Kinematics of mobile robots
- Degrees of freedom and constraints
- Wheel models (fixed, castor, Mecanum, Omni)
- Forward and inverse kinematic model (Differential, Ackermann)
- Holonomy and non-holonomy
Block II. Perception and Estimation
Unit 2. Fundamentals of perception
- Sensors (proprioceptive and exteroceptive)
- Uncertainty and precision
- Gaussian model (univariate and multivariate)
- Conditional probability and Bayes' theorem
Unit 3. Localization
- Bayesian filter
- Kalman Filter (KF)
- Extended Kalman Filter (EKF)
- Particle Filter (MCL)
Block III. Mapping and SLAM
Unit 4. Mapping
- Map typologies (metric and topological)
- Occupancy grid maps (Log-odds)
Unit 5. SLAM
- Introduction to the SLAM problem
- EKF-based SLAM
- Particle filter-based SLAM (GMapping)
- Graph SLAM
Block IV. Planning and Exploration
Unit 6. Trajectory planning
- Global planning (A*, RRT, PRM)
- Local planner (DWA)
Unit 7. Autonomous exploration
- Frontier-based exploration
- Replanning criteria and goal selection
The methodology used in the Navigation Systems course is based on a theoretical-practical approach aimed at the progressive acquisition of the defined learning outcomes. The course combines theoretical lectures with a series of practical activities that the student must complete, fostering a balance that allows students to assimilate the concepts covered in the classroom and apply them in a real mobile robotics environment.
The dynamics of the in-person sessions are divided into two distinct parts. During the first part, lectures are held along with the resolution of exercises, promoting the active participation of the student to consolidate the theoretical foundations. In the second part of the class, practical continuous assessment activities are carried out.
These practicals, which can be done in pairs, are executed using both simulation environments and real robots. The theoretical content acquired in the in-person classes is thus reinforced through the completion of these activities, for which students will use their own laptops, with the prior installation of ROS 2 being a strict requirement.
As a complement to these core activities, the methodology integrates the student's independent work to foster active and applied learning. Finally, in this course, a virtual platform (eStudy) is used as the main means of communication between the student and the professor, and for course management.
The evaluation of the course is structured into two mandatory blocks: theory and practicals, each with a weight of 50% towards the overall grade. The final grade is obtained from the following elements:
- Theory (50% of the final grade): It is divided into a Midterm exam (50%) and a Final exam (50%).
- Practicals (50% of the final grade): They consist of several Practical exercises (40%) and a Final Project (60%).
To pass the course, it will be necessary to obtain a final grade equal to or greater than 5 out of 10. It is an indispensable and strictly mandatory condition to sit for the final exam and give the oral presentation of the Final Project in class (otherwise, the maximum grade on the record will be a 4.0). Grades from previous academic years are not kept. Furthermore, copying or the unauthorized use of AI in official evaluations will be strictly penalized according to academic regulations.
The following will be assessed:
- The rigor and coherence in the development of reasoning.
- The conceptual understanding of the fundamentals of mobile robotics.
- The ability to apply methods and algorithms for autonomous navigation.
- The ability to use sensors to perceive the environment and detect obstacles.
- The ability to model and solve problems in real or simulated environments.
- The correct interpretation of the obtained results.
- Clarity and structure in the presentation of procedures and solutions.
Welch, G., & Bishop, G. (2006). An Introduction to the Kalman Filter. University of North Carolina at Chapel Hill.
Thrun, S., Burgard, W., & Fox, D. (2005). Probabilistic Robotics. MIT Press.
Siegwart, R., Nourbakhsh, I. R., & Scaramuzza, D. (2011). Introduction to Autonomous Mobile Robots. MIT Press.
LaValle, S. M. (2006). Planning Algorithms. Cambridge University Press.
Corke, P. (2023). Robotics, Vision and Control: Fundamental Algorithms in Python. Springer.
Open Robotics. (s. f.). ROS 2 Humble Documentation.
Open Navigation LLC. (s. f.). Navigation2 (Nav2) – ROS 2 Navigation Stack.