Matteo Ruzdijic
Four-wheeled autonomous rover with large off-road tires, a Raspberry Pi, and a LiDAR unit mounted on top, in front of a project poster board

Autonomous Rover

ROS 2 · SLAM · Navigation · 2026

Role
Navigation & Controls Software
Timeline
Jan 2026 – Apr 2026
Team
Team of 3
Tools
ROS 2, Python, C++, Arduino, Nav2, LiDAR SLAM

Built a ROS 2 rover that maps a room with LiDAR, localizes itself without drift, and navigates it autonomously.

The Problem

We wanted to build a fully autonomous mobile robot from the ground up. It had to localize itself and navigate an unknown space in real time, not rely on a pre-mapped route or a joystick.

My Approach

I worked with two teammates and built the ROS 2 stack bridging Python and C++ navigation nodes to low-level Arduino motor control, over a custom serial bridge I wrote myself. I integrated an SL LiDAR for 2D SLAM mapping, wrote dual-track encoder ISRs for wheel odometry, and tuned the PID motor controllers by hand. Nav2 handled path planning, and I built a joystick teleop mode for manual runs when we needed one.

Outcome

The rover localized without drift and built usable SLAM maps in real time. It navigated test environments autonomously through Nav2, no manual correction needed.

Placeholder image: rover chassis and sensor mounting
Rover chassis with LiDAR and sensor mounting
2D LiDAR point cloud showing the rover's SLAM map, with scan rays radiating out from the rover's position
2D SLAM map generated during a test run
Placeholder image: ROS 2 node graph for the navigation stack
ROS 2 node graph, navigation stack