We officially kicked off the Wumpus project! The first task was getting our development environments set up, so we configured our IDEs and got acquainted with MicroPython. It was exciting to dive into this lightweight but versatile language, and we spent time experimenting with the robot to understand its capabilities. It was mostly exploratory work today, but it gave us a sense of the tools and hardware we’ll be working with moving forward.
We continued experimenting with the robot, testing its movements, sensors, and general responsiveness. Alongside this, we began digging deeper into the Wumpus game itself, trying to understand its mechanics and how we could translate that into something our robot can navigate. There was a lot of brainstorming, and by the end of the day, we had a clearer vision of how the game rules might shape our approach.
Today was more structured as we started drafting an initial algorithm for the robot to play the Wumpus game. We also delved deeper into game mechanics and thought through potential challenges, such as how the robot might handle obstacles or interpret sensory input effectively. Some hardware limitations and quirks started to emerge, so we flagged those for further testing. It felt like real progress as we moved closer to a functional plan!
Today we continued to fine-tune our algorithm, completing it in Java. We were able to create a basic program that was able to navigate/understand the pit layout and implemented "objects"/"enums" for each type of obstacle the robot may face in the maze. We also started to work more on the robot itself by understanding the Arduino board and started working on the program to drive itself in an "8" pattern.
We continue to work on our Java program finalizing it. In the end we were able to complete the easy problem sets and 2 medium problem sets. We also started to refine the "pathing" algorithm by debugging possible alternatives than the default path it took by computing adjacent tile values by the signals the robot gets as it moves along the maze. This was huge in us allowing us to confidently avoid pits and find the gold more safely. We also did some housekeeping so we could easily input maze problems with a text file instead of hardcoding the maze in the code itself. We also implemented unittests so we can mass-test multiple mazes at once and understand how our algorithm worked for the bulk of the provided problems.
We finished up the website and used Minecraft to visualize our algorithm’s logic, which turned out to be both engaging and insightful. By creating a Wumpus World-inspired grid in Minecraft, we were able to simulate the robot’s decision-making process in a more interactive and tangible way. Each cell represented a potential hazard, the gold, or bedrock, and the robot’s path was visualized step-by-step as it navigated the environment. This helped us better understand how the rules and logic played out in real-time and gave us a fresh perspective on how our system works.
Seeing the robot avoid “pits” (holes) or the “Wumpus” in the Minecraft world added a layer of immersion to our project. It also made it easier to spot areas where the logic could be improved, like when the robot hesitated near ambiguous zones. Overall, the Minecraft visualization was a fun way to test our project while offering a creative and memorable conclusion to our work.
Presentation Day!
Presentation Day was a success! After finalizing our algorithm, we tackled a major bug in our code related to finding the shortest path home. The issue stemmed from the program failing to properly register the state change after finding the gold. Instead of transitioning to “return home” mode, it remained in “exploring” mode, continuing to search for additional dangers or gold. Once we identified the problem, we implemented a fix in the logic to correctly register the action of capturing the gold. This improvement significantly sped up the solution time, reducing it from approximately 36 seconds to just 16 seconds.
During the presentation, we put our algorithm to the test and were able to solve all the medium puzzles and even the hardest ones Bram threw at us! Our solution performed with both accuracy and efficiency, leaving us feeling proud of the work we accomplished.