Overview
Mobile Robotics covers the geometry and estimation a robot needs to build a map and localise itself in it. The course runs from rigid body transforms through LIDAR mapping, point cloud registration, pose graph optimization, camera modelling, two view geometry, bundle adjustment, and stereo. Assignments and the project are code, not derivation write-ups: the derivations happen in class so that the code you write afterwards is something you can debug.
Prerequisite: linear algebra and probability, plus enough Python to handle numpy and a point cloud library. Some math revision is scheduled mid-course (least squares, SVD, Levenberg-Marquardt).
Instructor
K. Madhava Krishna, Robotics Research Center, IIIT Hyderabad. Office hours by appointment.

Teaching assistants
Tarun Ramakrishnan, Krish Pandya, Akash Kumbar.
Logistics
Lectures: Mondays and Thursdays, 2:05 PM to 2:30 PM.
Slides, class notes and some resources will be on Moodle.
| Channel | Use it for |
|---|---|
| Moodle announcements | Deadline changes, room changes, material uploads |
| TA office hours | Assignment debugging, project scoping. Timings will be announced on Moodle |
| Anything personal: extensions, medical, grade queries |
Schedule
Topics per lecture are tentative. Rows might shift when a derivation takes longer than the slot allows.
| # | Date | Unit | Topic | Resources |
|---|---|---|---|---|
| 1 | Jul 30 | Introduction | Course outline, what a mobile robot has to estimate, sensor suite and how each sensor fails | Introduction Slides; Stachniss, mobile robotics online training |
| 2 | Aug 3 | Coordinate transforms | Frames, rotation matrices, translation, homogeneous transforms | Coordinate Transforms; Craig, ch. 2 |
| 3 | Aug 6 | Coordinate transforms | Rotation matrix derivation in vector form, rotation about an arbitrary axis | Rotation Matrix Derivation Vector Form; RotationAribitraryAxis |
| 4 | Aug 10 | Coordinate transforms | Euler angle conventions, worked examples, gimbal lock | Euler Examples; Gimbal Lock PDF and video; Euler angles and gimbal lock, GuerrillaCG |
| 5 | Aug 13 | Coordinate transforms | Quaternions, axis-angle, conversion between representations | Quaternion And Euler Angles; RotationMatrixAxisAngleConversion; Sola, quaternion kinematics for the error-state Kalman filter |
| 6 | Aug 17 | Coordinate transforms | Frame conventions in practice: gripper contact frames, ECEF and ENU | More On Coordinate Frames; Gripper Contact Frames; ECF-ENU Transform |
| 7 | Aug 20 | Mapping with point clouds | LIDAR measurement geometry, accumulating points from scans and poses | LIDAR Point Accumulation; LIDAR Point Mapping/Accumulation Lecture Slides; KITTI raw data |
| 8 | Aug 24 | Mapping with point clouds | Occupancy grids from range data, inverse sensor model, log-odds update | Occupancy Maps from LIDAR Data; Occupancy Mapping Class Notes; Stachniss, occupancy grid maps |
| 9 | Aug 27 | Mapping with point clouds | Dynamic obstacles in occupancy maps, obstacle avoidance on the resulting grid | Occupancy Mapping Dynamic Obstacles; Occupancy Mapping Obstacle Avoidance Video; Dynamic Obstacle Occupancy Map Video |
| 10 | Aug 31 | Mapping with point clouds | 3D map representations: voxel grids, octrees, TSDF, meshes | Mapping Representations; 3D Mapping Lecture Video; OctoMap |
| 11 | Sep 3 | Math revision | Linear least squares, normal equations, weighting and covariance | Linear And Non Linear Least Squares; Stachniss, least squares |
| 12 | Sep 7 | Math revision | Nonlinear least squares, Gauss-Newton, Levenberg-Marquardt | NLS Solved Example; The LM Algorithm; Madsen, Nielsen and Tingleff, methods for non-linear least squares |
| 13 | Sep 10 | Math revision | SVD, pseudo-inverse, homogeneous systems and constrained least squares | SVD-ClassNotes; SVD-ClassNotesContd |
| 14 | Sep 14 | ICP | Registration problem, correspondence search, the ICP loop and when it diverges | ICP-Intro; ICP Introduction NPTEL PPT; Stachniss, ICP with unknown data association |
| 15 | Sep 17 | ICP | Closed-form point-to-point solution by SVD, full derivation | ICP-SVD-Derivation; ICP Derivation Last Bits; IPB Bonn, ICP point cloud alignment slides |
| 16 | Sep 21 | ICP | Variants, outlier rejection, LIDAR to camera calibration posed as registration | LIDAR-Camera Calibration; Rusinkiewicz and Levoy, efficient variants of ICP; Open3D ICP tutorial |
| Sep 24 | Mid-semester exam | |||
| 17 | Sep 28 | Point cloud SLAM | ICP odometry, error accumulation, why open-loop trajectories drift | ICP SLAM; slambook-en, ch. 9.1, sliding window |
| 18 | Oct 1 | Point cloud SLAM | Loop closure detection, building the pose graph, information matrices | Loop Closure and Pose Graph Optimization; Grisetti et al., a tutorial on graph-based SLAM; Stachniss, graph-based SLAM using pose graphs |
| 19 | Oct 5 | Point cloud SLAM | Solving the pose graph with Ceres, parameterizing rotations for the solver | Ceres Tutorial PPT; Ceres Tutorial Code; Ceres pose graph example; g2o |
| 20 | Oct 8 | Camera modelling | Image formation, the pinhole model, perspective projection | Image Formulation; Pin Hole Camera; slambook-en, ch. 4.1, pinhole model and distortion |
| 21 | Oct 12 | Camera modelling | Intrinsics, extrinsics, the 3x4 projection matrix | Camera Modelling Class Notes; CameraProjection; Stachniss, Photogrammetry I and II playlist |
| 22 | Oct 15 | Camera modelling | Lens distortion, alternative derivations of the projection model | Camera Modelling NPTEL Slides; Camera Modelling and Other NPTEL Stuff; OpenCV camera model |
| 23 | Oct 19 | Camera modelling | Monocular reconstruction, scale ambiguity, drone based car reconstruction | Monocular Reconstruction; Drone Based Car Reconstruction |
| 24 | Oct 22 | Camera calibration | Homogeneous coordinates, homogenizing the pixel coordinate system | Homogenous Coordinate System; Homogenizing the pixel coordinate system; Hartley and Zisserman, ch. 2 |
| 25 | Oct 26 | Camera calibration | DLT, decomposing P into K, R and t, calibration in practice | Camera Calib NPTEL Slides; Camera Calib Stachniss Slides; Stachniss, direct linear transform; Zhang, a flexible new technique for camera calibration; OpenCV calibration |
| 26 | Oct 29 | Two view geometry | Resection, the epipolar constraint, essential and fundamental matrices | Resection and Introduction to Epipolar Geometry; Hartley and Zisserman, ch. 9; slambook-en, ch. 6.3, epipolar constraint and essential matrix |
| 27 | Nov 2 | Two view geometry | Eight point algorithm, normalization, recovering pose from E | 8 Point Algorithm and Reconstruction; Hartley and Zisserman, ch. 11; Hartley, in defence of the eight-point algorithm |
| 28 | Nov 5 | Two view geometry | Triangulation, detecting moving objects from epipolar violations | Moving Object Detection Paper |
| 29 | Nov 9 | Bundle adjustment | Reprojection error, Jacobian sparsity, the Schur complement, visual SLAM backends | BA or Backend for Visual SLAM; Triggs et al., bundle adjustment, a modern synthesis; Stachniss, the basics about bundle adjustment; Ceres bundle adjustment example |
| 30 | Nov 12 | Stereoscopy | Stereo geometry, disparity, depth from a calibrated pair | Stereo Geometry; slambook-en, ch. 4.1.3, stereo cameras |
| 31 | Nov 16 | Stereoscopy | Rectification, correspondence along scanlines, dense stereo | Rectification for Stereo Class Notes; Stereo Rectification CMU Notes; CMU 16-385, stereo rectification slides |
| 32 | Nov 19 | Learned reconstruction | Time permitting. The line from cross-view completion pre-training to feed-forward pointmap and pose regression: CroCo, DUSt3R and MASt3R, VGGT, VGGT-Omega, D4RT. Where the geometry from the rest of the course sits inside these models, and what they still get wrong | CroCo; DUSt3R; MASt3R; VGGT; VGGT-Omega; D4RT |
Grading
| Component | Weight (Tentative) |
|---|---|
| Assignments | 30% |
| Mid-semester exam | 20% |
| End-semester exam | 20% |
| Project | 30% |
Project weight splits as follows.
| Project component | Weight (Tentative) |
|---|---|
| Timeline document | 5% |
| Mid submission | 7% |
| Final submission and demo | 18% |
Important dates
| Item | Date |
|---|---|
| Assignment 1 released | Aug 13 |
| Assignment 1 due | Aug 27 |
| Project timeline document due | Sep 3 |
| Mid-semester exam | Sep 24 |
| Project mid submission due | Sep 28 |
| Assignment 2 released | Oct 5 |
| Assignment 2 due | Oct 19 |
| Assignment 3 released | Oct 29 |
| Assignment 3 due | Nov 12 |
| Final project submission due | Nov 23 |
| Project demos | Nov 26 |
| End-semester exam | TBD |
Project
Teams of two to three. The project runs the whole semester and is submitted in three parts on Moodle: a timeline document, a mid submission, and a final submission with a demo.
The timeline document fixes what you are building, the dataset or robot you are building it on, and who does what by when. Pick a problem where you can show a metric, not a video alone: trajectory error against ground truth, map consistency after loop closure, reprojection error before and after bundle adjustment, disparity error on a stereo benchmark.
Bring your own problem if you have one. A topic you found yourself, in a lab, in a paper you liked, or on a robot you already work with, is preferred over anything on the list below. The list exists so that nobody is stuck without a starting point.
Aim the final submission at a venue. A semester is enough to get a workshop paper or a short paper out of a good project, and past projects have grown into ICRA, IROS, RA-L and CVPR or ICCV workshop submissions. If that is the target, say so in the timeline document and pick the evaluation protocol the venue expects (a public benchmark, a named metric, ablations against a baseline) from day one rather than adding it in November. The TAs will read drafts.
Starting points:
- LIDAR odometry and mapping on a public sequence, with loop closure and pose graph optimization.
- Occupancy mapping with dynamic obstacle handling, evaluated against a labelled sequence.
- LIDAR to camera calibration, including an error analysis of how the estimate degrades with fewer correspondences.
- Monocular visual odometry with scale recovery from a known constraint.
- Structure from motion on a small image set, ending in bundle adjustment.
- Dense stereo depth, comparing block matching against a learned baseline.
- Moving object detection from epipolar geometry in a driving sequence.
Anything else is fine if it uses the geometry taught here. Clear it with a TA before the timeline document is due.
Policies
Late submissions: each student has five late days for the semester, usable on assignments in whole-day units. Once they run out, late work loses 20% per day and is not accepted after five days. Project deadlines do not take late days.
Collaboration: discuss ideas with anyone. Write your own code and your own text. Copying code from a classmate, a previous year’s submission, or an unattributed online source counts as plagiarism. Using a library is fine and using a model to write code is fine, provided you cite it in the README and you can explain every line in a viva.
Grade queries: raise them within one week of the grade being published, to the TA who graded the component.
References
Books
- J. J. Craig, Introduction to Robotics: Mechanics and Control. Frames, rotations and homogeneous transforms, ch. 2.
- R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision. Camera models, epipolar geometry, triangulation, bundle adjustment. The sample chapters on the book page cover most of what the two view unit needs.
- S. Thrun, W. Burgard and D. Fox, Probabilistic Robotics. Inverse sensor models, occupancy grid mapping, SLAM.
- R. Szeliski, Computer Vision: Algorithms and Applications. Image formation, stereo, structure from motion. Free PDF on the book page.
- X. Gao, T. Zhang, Y. Liu and Q. Yan, 14 Lectures on Visual SLAM (slambook-en). Written for people implementing SLAM: transforms, camera models, feature matching, backend optimization with Ceres and g2o, loop closure. Code is in the repository.
Lectures
- Cyrill Stachniss, lecture channel and mobile robotics online training. Occupancy mapping, ICP, pose graph optimization, calibration and bundle adjustment, in notation close to what is used in class.
- Cyrill Stachniss, Photogrammetry I and II, University of Bonn. Camera modelling, DLT, calibration, bundle adjustment.
- Kris Kitani and others, 16-385 Computer Vision, CMU. Slide decks for two view geometry, rectification and stereo matching.
- NPTEL slide decks on camera modelling and ICP, on Moodle.
Papers
- J. Sola, Quaternion kinematics for the error-state Kalman filter, 2017. The reference for quaternion conventions, composition and the exponential map.
- K. Madsen, H. B. Nielsen and O. Tingleff, Methods for Non-Linear Least Squares Problems, DTU lecture notes, 2004. Gauss-Newton and Levenberg-Marquardt, with the damping parameter update rules.
- S. Rusinkiewicz and M. Levoy, Efficient Variants of the ICP Algorithm, 3DIM 2001. Sampling, matching, weighting and rejection strategies, compared on convergence speed.
- G. Grisetti, R. Kummerle, C. Stachniss and W. Burgard, A Tutorial on Graph-Based SLAM, IEEE ITS Magazine, 2010. Pose graph construction and least squares solution.
- Z. Zhang, A Flexible New Technique for Camera Calibration, TPAMI 2000. The planar target method behind the OpenCV calibration pipeline.
- R. Hartley, In Defence of the Eight-Point Algorithm, TPAMI 1997. Why normalization decides whether the eight point algorithm works.
- B. Triggs, P. McLauchlan, R. Hartley and A. Fitzgibbon, Bundle Adjustment: A Modern Synthesis, 2000. Cost functions, sparsity, gauge freedom, numerical conditioning.
Learned reconstruction
- P. Weinzaepfel et al., CroCo: Self-Supervised Pre-training for 3D Vision Tasks by Cross-View Completion, NeurIPS 2022. Where the line starts: mask one of two views of a scene and reconstruct it from the other, which forces the network to learn correspondence and relative pose. CroCo v2 (ICCV 2023) and the code are in the same repository, and the DUSt3R encoder is initialized from this pre-training.
- S. Wang et al., DUSt3R: Geometric 3D Vision Made Easy, CVPR 2024. Pointmap regression from an image pair, without known intrinsics.
- V. Leroy, Y. Cabon and J. Revaud, Grounding Image Matching in 3D with MASt3R, ECCV 2024. Dense matching on top of DUSt3R, with code.
- J. Wang et al., VGGT: Visual Geometry Grounded Transformer, CVPR 2025. Cameras, depth and point tracks from one forward pass, with code.
- J. Wang et al., VGGT-Omega, CVPR 2026. Scaled up training for static and dynamic scenes, project page.
- Efficiently Reconstructing Dynamic Scenes One D4RT at a Time, CVPR 2026. Video encoded once into a latent scene, then queried for depth, tracks and camera parameters, project page.
Software
- Ceres Solver for nonlinear least squares, pose graphs and bundle adjustment.
- g2o as an alternative graph optimization backend.
- Open3D for point cloud IO, registration and visualization.
- OpenCV for calibration, feature matching and stereo.
- OctoMap for octree occupancy maps.
Datasets
- KITTI for LIDAR, stereo and odometry ground truth. The odometry benchmark is the usual target for project evaluation.