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
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.
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.
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.