The work for this robot was part of the Mobile Computer course at the KIT.
The task was to program a robot that can complete an unseen parkour on its own,
the parkour consists of a fixed trajectory, an obstacle, a gap and of course a line the robot has to follow.
Here's a video of the robot completing the parkour:
To implement the functionality needed to complete the parkour a microservice architecture is utilized. Every functionality like velocity reading, motor controls and line sensor readings are implemented as cooperative tasks, that get scheduled periodically by a scheduler.
The robot consists of two stages. The first is a calibration stage, where the readings for the light sensors for the wheel encoder and the line are normalized based on lighting and mechanical peculiarity. This ensures the robot behaves the same in different lighting conditions and after some mechanical decay
The second stage is the mission control stage where we have different handlers for all possible scenarios (e.g. line following or obstacle avoidance). The connection of all those handlers can be described by the following state machine:
TODO: