Project Information

In IESL RoboGames 2022, I took on the challenge of navigating a simulated GCTronic E-Puck robot through an unknown maze to collect objects. The robot and its environment was simulated using Cyberbotics Webots robot simulator. The task mechanics were unique: the robot had to pick up yellow balls that represented rupees and then convert them into dollars at the center of the maze. However, there were two key constraints. First, the robot could only hold a limited number of rupees, and second, the number of rupees would depreciate over time unless converted into dollars. To address this and collect the maximum number of dollars in least time, I devised a strategy to collect the balls in most optimum order possible while minimizing distance to the center of the maze.
I used Python as the programming language of the robot and leveraged OpenCV for image recognition to identify the yellow balls in the maze. Sensory data particularly distance measurements were very noisy, so I implemented a machine learning algorithm using Scikit-multilearn. Specifically, I used a multi-label classifier chain of random forest classifiers that successfully identified blocked cells around the robot with an F1 score of 97.5%. This classifier output was crucial for generating the robot's internal map of the maze, which was displayed in real-time alongside the actual maze map. Pathfinding was another critical aspect of the project. I implemented the A* algorithm to ensure the robot took the shortest route between points on the map. To keep track of the robot's position within the maze, I integrated data from wheel encoders and a compass sensor for effective localization. Lastly, I employed PID control algorithms to control the robot's motors.
Overall, this project not only tested my technical skills in robotics, machine learning, and control systems but also presented a unique challenge in gamified environment.