In Saxony, all students attending secondary school have to write a so-called Facharbeit. It’s the final report of a somewhat scientific research they have to conduct themselves. This shall prepare them for subsequent academic studies and a potential career in research. The subject and the specific topic are thereby self-chosen.

In the years before my Facharbeit, I showed interest in programming. I was especially fascinated by a little two-wheeled robot I bought myself. So I decided to pick computer science as the subject for my research and came up with the question: Is a simple two-wheeled robot capable of solving/leaving a maze.

Robotics – Problem Solving Methods for Mazes

The modular wooden grid.

My research was split into multiple tasks. At first, I had to investigate the theory behind maze solving methods. I came across multiple algorithms ranging from the simple wall following techniques to the methods of Pledge and Trémaux. Next, I had to build a modular maze for testing purposes. I decided to go with I-, L-, and T-shaped pieces made from 5mm thick wooden strips following a regular 20x20cm grid.

My modified PRO-BOT128.

Next, I had to prepare the robot. I bought a PRO-BOT128 beforehand, so this was the, rather inappropriate, choice for my research. The robot has a cylindrical shape with two tiny wheels to create a differential drive. It features a rudimentary infrared anti-collision system, two encoder units, an optical sensor to follow a line, and a microphone. It is driven by an encased ATmega128 which I had to program using BASIC.

Implementing the main functionalities worked quite well, but then multiple problems occurred. The odometry system was pretty inaccurate which made driving along a fixed grid nearly impossible. It required a switch to forked light barriers and a lot of tweaking to achieve somewhat stable results. Next, the on-board infrared sensor for wall detection was intended as a binary sensor, which simply notifies the presence of a wall. For my use case, I had to rethink it to be able to detect walls in three different directions and to estimate their distance.

Some test and respective diagrams to figure out the odometry problems.

In the end, I wrote a 16-page report about all my findings and successfully defended my research in school. An above-average grade rewarded my hard work.

Retrospective, the task was not that hard overall. But the technical difficulties and my lack of experience made this a complex challenge for me at that time. I learned a lot about long-term research projects and self-reliant work but also about robotics, hardware, and programming. Later, in my first semester of academic studies, I was confronted with a similar topic during RoboLab. I guess, that some previous experience in this helped a lot in this new challenge.