Building an AI-Powered Garden Rover: Inside Geek Team’s Machine Learning Pipeline
For many students, machine learning sounds intimidating — something reserved for graduate researchers or experienced engineers. But for the members of Geek Team, it became something much more practical: a collaborative process built around experimentation, debugging, and learning by doing.
This year, Geek Team worked on an ambitious environmental robotics project: developing an intelligent rover capable of monitoring garden health through environmental sensors and machine learning predictions. The project combined robotics, software engineering, backend infrastructure, data science, dashboards, and hardware integration into one connected system designed to analyze soil and environmental conditions in real time.
Speaking with team members Ava Williams, Pramika Bhandari, Tanisha, Ananya, and Sanvi, one theme came up repeatedly: almost nobody started out knowing how to do all of this. Most of them learned the technologies while actively building the project.
For Ava Williams, a third-year Computer Science major, the project was an opportunity to explore a growing interest in machine learning.
“One of my biggest interests is the intersection of cybersecurity and machine learning and secure machine learning models,” Ava explained. “I think it’s cool that we can predict things.”
Although she had experimented with machine learning before joining Geek Team, much of her experience came from self-teaching through online resources, AI tools, and independent projects.
“I made my first ML model over the summer predicting Premier League outcomes,” she said. “That was my first experience getting my feet wet into machine learning.”
Pramika Bhandari, a third-year Data Science major, was drawn to a similar idea: using data to improve real-world systems.
“Being able to make data-driven recommendations on how to improve systems was really interesting to me,” she explained. “We can use models to predict outcomes that could improve systems.”
Together, the machine learning team worked on building a pipeline capable of analyzing environmental sensor data from the rover and generating predictions about garden health. Before development even began, the students consulted with a UC Riverside professor to verify that their chosen algorithms would work effectively for the type and size of data they expected to receive.
The pipeline itself involved several stages: preprocessing and cleaning sensor data, detecting anomalies, clustering environmental conditions, classifying garden health, and building inference scripts for deployment.
To accomplish this, the team used several machine learning approaches, including K-Means Clustering, Isolation Foresting, and Random Forest Classification.
“K-Means helped us identify different zones in the garden that might need attention,” Ava explained. “Isolation Foresting let us detect abnormal sensor readings.”
The Random Forest model was then used to classify garden conditions such as healthy, low-light stress, heat stress, or needing water.
Pramika noted that the models were selected strategically based on the size of the dataset.
“Some models wouldn’t have been efficient for the amount of data we had,” she said. “These were the most optimal.”
Much of the work happened before the model even trained. The students had to clean corrupted values, remove extreme outliers, normalize sensor readings, and prepare the data for classification.
“If you have pH on one scale and temperature on another scale, temperature could dominate the model,” Ava explained. “So we normalized everything between 0 and 1.”
The team relied heavily on Python tools like Pandas, NumPy, and Scikit-learn throughout development. But documentation alone was not enough.
“AI is a great debugger,” Ava said with a laugh.
The students frequently used AI tools to understand errors, brainstorm solutions, and accelerate learning, though they emphasized the importance of validating outputs rather than trusting generated answers blindly.
Pramika also recommended Kaggle as one of the most useful learning resources for beginners interested in machine learning.
“You can find datasets, code examples, and train your own models,” she said. “It’s definitely not impossible to learn on your own.”
One of the biggest technical challenges was that the rover itself had not yet been fully deployed during development. Instead of real environmental data, the machine learning team spent much of the year testing on mock datasets while hardware specifications continued evolving.
“We had to build the model before the robot was even built,” Ava explained.
As sensor parameters changed, parts of the pipeline had to be continuously revised. Still, the students described the experience as valuable because it reflected the reality of large engineering projects where hardware and software systems evolve simultaneously.
That collaboration extended far beyond machine learning.
While the ML team worked on predictions and classification, other students focused on integrating dashboards, APIs, servers, and hardware communication systems that would allow the rover to function as one connected platform.
Tanisha, who worked on dashboard and server integration, focused on connecting live rover data to the visualization systems.
“My main task was connecting the dashboard to the server and making sure the robot ingests live data to give machine learning predictions,” she explained.
Using ArcGIS Pro, Python libraries, and VS Code, she helped create a dashboard capable of displaying both environmental measurements and machine learning outputs in real time.
For Tanisha, one of the biggest learning experiences was working on a project that connected software with physical robotics systems.
“I had only worked on local software projects before,” she said. “This project helped me understand how software has to work together with robotics and wiring teams.”
She described the experience as feeling “like I was a real data scientist on a cross-functional engineering team.”
That same idea — learning by stepping into unfamiliar systems — appeared again in conversations about the project’s backend infrastructure.
For Ananya, the project began with learning nearly everything from scratch.
“Not FastAPI, not Docker, not MQTT,” she said. “I didn’t know how any of the pieces connected.”
Her role focused on building the backend services that sat between the rover and the rest of the system: receiving sensor data, processing it, storing it, and making it available to dashboards and mapping tools.
“The goal was simple in theory,” Ananya explained. “‘Get the data in, process it, store it, send it out.’ Getting there was a different story.”
Much of the challenge came not from writing algorithms, but from troubleshooting infrastructure itself: Docker caching old versions, Python import errors, merge conflicts, broken dependencies, and file structure problems that had no obvious fixes.
“It felt less like debugging and more like detective work,” she said.
At the same time, she was learning FastAPI, Docker, MQTT, and ROS2 simultaneously — often without prior experience in any of them.
Eventually, the backend pipeline began working piece by piece. The server started successfully. MQTT connections stabilized. The ML model executed correctly. The database accepted inserts.
“It was really satisfying to actually see the mock messages come in,” Ananya said, “and see what our rover could relay back to us in real time.”
By the end of development, the backend system was capable of receiving rover data through MQTT, running machine learning predictions, storing information in Azure SQL Edge, and serving REST API endpoints formatted for both dashboards and ESRI mapping systems.
The final layer connecting many of these systems together involved software-hardware integration.
Sanvi, a second-year Computer Science major, worked extensively on the pipeline connecting environmental sensors, the Raspberry Pi 5, and the machine learning infrastructure.
“I had to figure out what MQTT even was,” she said. “How to ingest and format data uniformly, coordinate the Mosquitto broker, and integrate everything into ROS2 launch files.”
Her work stretched across multiple parts of the rover system, including sensor integration, BLE functionality, and the mobile control application.
“SO much Python,” she laughed.
She also worked heavily with Linux terminal commands, ROS2, Adafruit CircuitPython libraries, MQTT, and Dart for mobile app development.
One of the most difficult technical problems she encountered involved the rover’s IMU sensor.
“The core issue was a timing mismatch between the I2C bus clock speed and the IMU’s data-ready rate,” Sanvi explained.
The bus was polling data faster than the IMU could complete its internal conversion cycle, resulting in corrupted sensor readings. After monitoring I2C traffic and diagnosing the timing issue, the team ultimately solved the problem by creating a separate software-defined I2C bus specifically for the IMU so they could independently configure its clock speed.
“The IMU was also really finicky on the breadboard,” she added. “Sometimes we literally had to hold it a certain way to make it work.”
Despite the technical complexity, every student emphasized that collaboration became one of the most rewarding aspects of the project.
Pramika described seeing the complete pipeline function as one of the project’s highlights.
“Seeing the data go through the server, the API, the database, and then become predictions was really cool,” she said.
Sanvi agreed, adding that the people became one of her favorite parts of Geek Team altogether.
“I made a lot of new friends from Team Tech,” she said. “The leads were really supportive.”
When asked who they would recommend Geek Team to, the students gave similar answers: anyone willing to learn.
“This year’s Geek Team challenged all of us,” Sanvi said. “Honestly anyone with curiosity and tenacity to learn something new is perfect.”
Ava echoed the same idea.
“I was very beginner when I started,” she said. “But I learned a lot, and I got stronger with ML.”
For these students, Geek Team became much more than a technical project. It became a space where classroom knowledge turned into real engineering systems — systems involving machine learning, robotics, APIs, dashboards, hardware integration, and environmental impact all working together in one pipeline.