System Overview
This robot combines a leaf-sweeping roller and removable box with manual and autonomous ROS2 control.
A Jetson Nano handles navigation; an ESP32 regulates encoder-equipped motors through Micro-ROS. Reported results include indoor mapping, moderate navigation accuracy, and responsive manual collection, with outdoor inconsistencies and roller, storage, and computing limitations.
Tech Stack
Autonomous Navigation
Full autonomous operation with LiDAR-based path planning
Leaf Collection
Effective leaf collection using roller mechanism
Dual Control
Both autonomous and manual control modes
Project Demo

Engineering Features
Built an autonomous and manually controlled leaf-collection robot using the ROS2 framework, combining a Jetson Nano for navigation with an ESP32 for real-time motor and encoder control.
Implemented LiDAR-based SLAM to generate 2D maps, detect obstacles, and enable autonomous path following.
Integrated encoder-based odometry with LiDAR data to achieve accurate localization and smooth autonomous movement.
Designed and tuned the motor-control and roller-collection mechanism to ensure reliable leaf pickup.
How it works
Build a map
Combine LiDAR-derived motion and wheel odometry in Cartographer, inspect the occupancy grid in RViz, and save the map.
Choose a control mode
Set a navigation goal through Nav2 or use keyboard teleoperation; both paths supply velocity commands to the Robot Core node.
Drive with encoder feedback
Convert velocity commands into motor RPM targets and send them over serial Micro-ROS to the ESP32 for feedback-based PWM control.
Sweep leaves into storage
Operate the roller to sweep leaves into the collection box, which can be detached for emptying and cleaning.
Build artifacts

Inside the build
Open a technical note to explore the control logic, integration, and design choices.
Separate navigation from motor regulation
The Jetson handles ROS2 navigation while the ESP32 reads encoder counts and regulates motor RPM. A 20 ms measurement interval feeds speed estimates back to ROS2 and a local controller. Reported tuning uses proportional and integral terms without a derivative term, with signed PWM determining speed and direction.
Two odometry inputs for mapping
Robot Core converts encoder feedback into wheel odometry, while RF2O estimates motion from LiDAR scans. Cartographer uses these inputs to build the occupancy grid. The saved map then supports Nav2 localization and planning, with RViz exposing goals, planned paths, and the robot's estimated pose.
A serviceable roller and collection box
Plastic strings attached to the roller sweep leaves toward the box. The roller is split for printing, and its motor uses a separate L298N driver with on/off control. A flexible box tip sits near the ground, while an adjustable holder and handle support positioning and removal of the collection box.
Evidence & limitations
Indoor mapping and navigation results
The results chapter reproduces a generated map and describes autonomous navigation with moderate accuracy. Mapping worked in controlled indoor conditions, while outdoor operation showed inconsistencies associated with uneven surfaces and varying conditions.
Manual collection and system integration
The report describes prompt keyboard response, stable manual movement, and leaf pickup into the box in narrow and open campus spaces. It also reports reliable communication between the ESP32, Jetson Nano, and sensors during testing.
- Leaf collection robot report
PDF pages 13-17, 22-23: hardware; 27-29: control and navigation; 30-31: results and limitations.
- Project demonstration
Linked from the supplied portfolio.
Want to see more work?
I have more projects across robotics, embedded systems, and software engineering.
View All Projects