Multi-Robot Escape Room

Multi-Robot Escape Room

Solving an escape room challenge using multiple connected robots

December 2022
C++MQTT

Project Overview

In this project, we employed MQTT on the ESP32 platform to solve a randomly-configured escape room challenge. The task involved several steps, each executed asynchronously by a specially configured Romi robot:

  1. One robot roamed the room to locate and transmit an April tag message, identifying the position and orientation of the escape room's exit. This robot navigated past a "see-saw" ramp, detecting ramp movement with an IMU using a Gyro/Accelerometer complementary filter. This detection helped determine the April tag's location in the escape room's grid space.

  2. Another robot, equipped with an IR receiver, pressed a button, then read and transmitted a message from an infrared LED. This message served as the "passcode" for the escape room door.

  3. The third robot interpreted the MQTT data from robots 1 and 2, moved to the correct grid position and orientation, and ultimately opened the escape room door using IR LED transmission.

All robots used a mix of proximity sensors, ultrasonic sensors, and dead-reckoning (sensor fusion) for navigating the unknown layout of the escape room.

Technical Implementation

This project allowed our team to develop multiple robot state-machines using C++ to address the challenge. We integrated various sensors for movement and planning, connected to MQTT, and employed camera/IR technology to tackle the specific sub-challenges mentioned above.

This project was completed as part of WPI's RBE2002: Unified Robotics II course.