Our robot was designed to follow a black line on white tiles. The line is constantly interrupted by various types of obstacles: physical barriers, solid objects blocking the robot's path, line breaks, intersections, intersections with mandatory directions marked by green tape, ramps, and underpasses.
Once it completes the course, the robot must enter the evacuation zone, a rescue area where victims are located: 2 live victims (represented by silver balls) and 1 deceased victim (represented by a black ball). The robot must rescue all the victims and bring them to the safe zone.
The purpose of this category is to simulate a dystopian scenario where, following a catastrophe, humans are unable to reach potential victims in need of rescue. Modern technologies have advanced to unprecedented levels, making it crucial to start training both young individuals and robots from an early age. By doing so, they can develop the necessary skills that can later be applied to realistic scenarios. This training is vital to ensure that future generations are well-prepared to handle emergency situations and effectively utilize cutting-edge technology to save lives. The goal is to foster a generation of innovators and rescuers who are adept at navigating and overcoming complex challenges in times of crisis.
Our robot was a Lego Mindstorms EV3. We chose it for its versatility in construction, allowing us to easily build and modify it according to our needs, as well as for its programmable nature. Contrary to what many might think, even though it is a block-programmed robot, it poses a significant challenge in developing the algorithm. The blocks can be a major limitation in development, so finding a way to circumvent these restrictions requires both time and knowledge of the language.
Furthermore, for European competitions, we installed a Linux-based operating system on the robot to run MicroPython and program it using lines of code. Despite the considerable physical limitations, we managed to create an algorithm fine-tuned to navigate the entire course and rescue the victims.
Technical Description Paper
The most crucial part of our code was the algorithm for the evacuation zone. We used MicroPython, a lightweight version of Python without unnecessary libraries, to perform a form of supervised learning.
Our robot's database contained a series of measurements of the evacuation zone: initially without any elements inside, then with the safe zones (triangles) at all corners, and finally with the exits at all edges. Once the robot enters the evacuation zone during the competition, it takes measurements of the current context. By comparing this data with the information in its database, it can recreate a model of the evacuation zone as configured for the competition.
Additionally, by utilizing the standard deviation, it can recognize spikes in the measurements that correspond to the shape of the balls, allowing it to locate and subsequently rescue them.
During this experience, we acquired a range of valuable skills. We enhanced our programming abilities, particularly in MicroPython, and gained a deeper understanding of algorithms and their practical applications.
Our problem-solving skills were significantly sharpened as we navigated the challenges of developing a functional robot.
We also improved our engineering skills through the construction and modification of the Lego Mindstorms EV3, learning how to optimize its physical design for better performance.
Additionally, we developed a strong sense of teamwork and collaboration, as effective communication and coordination were essential to our success. This project also taught us the importance of perseverance and adaptability, as we had to continuously refine our approach in response to unexpected obstacles.