Project introduction
In the first lesson of this course, we were introduced to our exciting project—the Micro-Mouse. The Micro-Mouse project is a thrilling autonomous robotic competition. Our mission is to design and construct a compact robot capable of efficiently navigating through a maze in the shortest possible time. This endeavor involves integrating various sensors and developing sophisticated algorithms to manage the maze, enabling the robot to make autonomous decisions.
Group members
To tackle this challenge, we’ve assembled a dynamic team with diverse expertise:
- Ilir Bylykbashi – Software engineer
- John Frederick Lærum – Software engineer
- Farah Abdillahi – Software engineer
- Thomas Frimann – Mechanical engineer
- Daniels Blomnieks – Mechanical engineer
Setting the basis
Today, on 21.08.2023, we took our first steps toward a successful collaboration. We established a communication and collaboration platform, opting for Microsoft Teams due to our collective familiarity with it. Our collaboration strategy includes both physical and virtual meetings. Initially, we plan to meet in person at least once a week to kickstart the project. The frequency of physical meetings will adapt as needed to effectively work on the robot. Virtual meetings through Teams will facilitate idea sharing and collaborative discussions.
Investigation
The software engineers in our group have thought of different aspects as to how to solve this task.
Algorithm Research: As for solving the maze, our goal is to implement the flood-fill algorithm which is often used for maze solving and mapping. The algorithm is implementable in both MicroPython and Embedded C++, and we must consider our options to choose the system that best suits us.
The flood-fill algorithm explores the maze systematically, ensuring that the robot can autonomously navigate through it, memorize patterns, and adapt to the layout.
While the flood-fill algorithm is a strong candidate, we have also considered other algorithms during our research. The choice of the flood-fill algorithm aligns well with our project’s goals due to its efficiency in exploring complex maze structures.
Hardware considerations
Hardware Options: We’re currently evaluating three options for our hardware platform:
- Micro:bit V2 with C++: This option offers a quick start and familiarity with C++ programming. However, we’re mindful of potential performance trade-offs compared to other platforms.
- Micro:bit V2 with MicroPython: MicroPython provides ease of use, but we’re assessing its impact on performance and control over hardware compared to C++.
- Arduino Nano with C++ (Arduino IDE): The Arduino Nano is a versatile choice with a vast community and library support. It provides direct hardware control but requires a deeper understanding of C++ programming.
Requirements
Our brainstorming sessions have already generated some promising ideas to elevate our project:
Part A objectives
- Maze Navigation: Ensure the robot can autonomously navigate the maze, memorize patterns, and adapt to the layout.
- Dimensional Accuracy: Strive for precision in adhering to the official maze dimensions or come as close as possible.
- Timed Completion: Aim to have the robot complete the maze within a predefined time frame.
- Autonomy: The robot should not require reprogramming for specific mazes. It must operate independently and work without external intervention.
- Basic Sensors: Implement essential sensors, such as IR sensors for wall detection and basic maze-solving.
- Motor Control: Focus on basic motor control to enable the robot to move forward, turn, and make simple decisions based on sensor input.
- Error Handling: Implement error detection and handling mechanisms to address issues like sensor malfunctions or unexpected robot behavior.
Part B objectives
- Advanced Pathfinding: Develop and implement more sophisticated pathfinding algorithms.
- Sensor Fusion: Combine data from multiple sensors to create a more robust obstacle detection and mapping system.
- Speed Optimization: Fine-tune the robot’s motor control for faster maze completion times while maintaining accuracy in navigation.
- Machine Learning Integration: Explore the integration of machine learning techniques to improve the robot’s decision-making and adaptability in maze-solving.
Part C Objectives
- Competitive Maze Solving: Focus on achieving competitive maze-solving times and strategies.
- Error Handling: Implement error detection and handling mechanisms to address issues like sensor malfunctions or unexpected robot behavior.
- External Sensors: Consider incorporating external sensors, such as a camera to provide the robot with advanced perception capabilities.
- Data Analysis and Visualization: Implement data analysis tools and visualization techniques to gain insights from your robot’s performance data.
Summary
As we venture into the Micro-Mouse project, our diverse team is eager to construct an autonomous maze-solving robot. We’re considering the flood-fill algorithm and hardware options like Micro:bit V2 and Arduino Nano. Stay tuned for updates on our journey through the Micro-Mouse maze.
This week’s project update was provided by Ilir Bylykbashi.