PWS
SolarML
SolarML is our profile paper research project about using machine learning to make solar panel cleaning more efficient. The core idea is, instead of cleaning every part of a panel the same way, a robot should inspect the surface, detect the dirty areas, and spend extra time only where cleaning is actually needed.
The problem (note that text below has parts summarized by AI)
Solar panels lose efficiency when dust, pollen, bird droppings, or other dirt blocks light from reaching the cells. Large solar parks are difficult to maintain because cleaning them by hand costs time, water, money, and physical effort. The PWS research question was: how can machine learning be used to clean solar panels more efficiently?
The hypothesis was that a cleaning robot could use camera images to detect dirty areas, estimate how severe the dirt is, and then clean only the parts that need attention. That turns cleaning from a fixed routine into a targeted process.
How the detection works
The research focused on a Siamese Neural Network because the task is not just classification. The system needs to compare a new image with a clean reference image and decide how different they are. A convolutional network first converts each image into an embedding: a compact vector that represents the important visual features.
This is much more efficient than comparing raw pixels. A normal image can contain hundreds of thousands of pixel values, while an embedding can summarize the useful information in a few hundred numbers. That makes it practical to run the detection pipeline on limited hardware such as a Raspberry Pi.
The image is split into smaller tiles, each tile is compared against the clean reference, and each area receives a dirt score. In the PWS tests, clear dirt produced high difference scores, while clean panels stayed low. Light dirt and strong reflections were harder, which became one of the main lessons of the project.
From detection to movement
Detection alone does not clean anything, so the project also explored how the robot should move after it finds dirty spots. Each dirty tile becomes a coordinate. The robot then needs to visit those coordinates without wasting too much movement.
Exact Traveling Salesman Problem algorithms were researched, but they are too expensive for a small embedded system. The project chose a greedy nearest-neighbor approach instead. It starts from the robot's current position and repeatedly chooses the closest unvisited dirty spot. This does not always give the perfect route, but it is fast, readable, and realistic for a Raspberry Pi.
My contribution
My work focused on the robot-side software: mapping the solar panel, generating navigation behavior, planning cleaning paths, and integrating the detection results into robot logic. The PWS became the research foundation for the later Meesterproef, where the same idea developed into the physical SolarBot prototype.
The most useful insight from this project was that machine learning only becomes valuable when it is connected to the rest of the system. A model that detects dirt is interesting, but a robot needs coordinates, thresholds, path planning, motor logic, and real-world constraints before that detection can do work.
Documents
The full project documents are attached below. PDF files can be read directly on the page; the logbook opens as the original spreadsheet file.