In Saxony, all students attending secondary school have to write a so-called Facharbeit. Its the finale 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 is 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 in multiple task. 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 purpose. 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, a 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 quit well, but then multiple problems occured. The odometry systems was pretty inaccurate which made driving along a fixed grid nearly impossible. It require 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 in experience was 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.