A modular online SLAM system for cone-based autonomous racing, implemented in ROS 2 and C++.
Overview
This project develops an online, landmark-based graph SLAM system tailored to Formula Student Driverless. It combines high-rate odometry integration with keyframe-based graph optimization and cone landmark mapping.

Highlights
- online landmark-based graph SLAM
- continuous pose output between graph updates
- GTSAM backend with iSAM2 and fixed-lag smoothing variants
- uncertainty-aware cone data association
- keyframe-based smoothing, mapping, and loop closure
Runtime Visualization
The system is designed to be inspected while running, with ROS 2 topics visualized in Foxglove for perception, mapping, localization, and planner behavior. This makes it possible to compare the onboard camera view, cone detections, planned path, graph state, and timing diagnostics in the same debugging workflow.

Implementation Focus
The SLAM stack emphasizes a practical online formulation for Formula Student courses: maintaining a consistent cone map, smoothing vehicle poses over keyframes, and keeping a usable pose output available between graph updates for downstream planning and control.
Technologies
C++, ROS 2, GTSAM, Eigen, factor graphs, SE(2), Docker.
Status
Bachelor’s thesis / active development.