Meesterproef
SolarBot
SolarBot is the final Technasium project. An autonomous solarpanel cleaning robot for Concord New Energy. We used machine learning, raspberry pi, navigation simulation, custom PCB design, 3D printed mechanics, and field research into one proof of concept system.
Why this project exists (note that text below has parts summarized by AI)
Solar panels are part of the energy transition, but they lose output when dust, pollen, sand, and bird droppings block light. In large solar parks, maintenance is expensive and repetitive. Some parks are cleaned manually with brushes and osmose water backpacks; others use tractors or larger cleaning systems, but those methods do not fit every site.
The assignment was to design a robot that can work without rails, move safely on sloped PV surfaces, clean hard dirt without damaging the glass, and need as little human control as possible after startup.
Field research
The site used Astro Energy 570W panels, had uneven and wet ground, and was cleaned about every six months by people walking between rows with brushes and 10 liter osmose water backpacks. The field notes also showed that dirt remaining after rain gathers near the lower edge of panels, while bird droppings stay attached until cleaned directly.
Software and machine learning
The system uses a Siamese network style approach to compare a camera image with a clean reference image. The model turns an image into an embedding and compares those representations. The distance from the clean reference becomes a dirt score.
We made a tile based analysis so the robot can tell where dirt is. A Raspberry Pi loads the trained model for inference, stores dirty coordinates, and feeds those points into the cleaning logic. The planned route uses a nearest neighbor approach so the robot can return to the closest dirty area next without calculating every possible route.
Simulation before hardware
We first tested the navigation in simulation because mistakes in robot code can damage real hardware. The first version was a C++ simulation for coordinate math and spiral navigation. The second version used Unity to model movement, edge sensors, and the process of finding panel corners. The final simulation brought the ML model into the system. dirty spots, planned paths, real paths, and nearest neighbor route decisions could all be tested before running on the physical robot.
This became one of the main technical lessons of the project. A model is only useful when it is integrated into a system that can interpret its output, make movement decisions, and keep functioning under real constraints.
PCB and robot build
The custom PCB started as a way to clean up unstable wiring between the Raspberry Pi, motor drivers, servos, and power supply. The first board was compact, but the integrated buck converter and long thin traces created reliability problems. After expert feedback, the design shifted toward wider power routing, separated signal and power areas, power planes, and an external buck converter module.
The mechanical side was also iterative. The robot uses tracked movement so it can turn with two stepper motors. The first track design had problems with the belt climbing over the wheel sidewalls. The revised design took inspiration from tank tracks, using extra wheels to keep the band tensioned and pressed against the surface. The cleaning mechanism uses a brush and an osmose-water tank, with the final prototype built around a Raspberry Pi 5, drivers, two stepper motors, a battery, the PCB, and a 3D printed body.
Reflection
My personal goal was to learn how machine learning can be combined with mechanical engineering. By the end, I had moved from understanding a model in isolation to seeing what is required to make it useful in a robot: loading the model, processing camera data, interpreting confidence scores, planning paths, handling latency, and dealing with embedded hardware limitations.
The PCB work changed my view of engineering as well. A schematic can be logically correct and still fail in practice because of voltage drop, electromagnetic interference, trace width, or power distribution. SolarBot was not just an AI project. It was a systems project where software, electronics, physical design, and planning all had to meet.
Documents
The project documents are attached here. PDF files can be read directly on the page; DOCX and PPTX files open as original source documents.