TEAM MEMBERS & SOCIALS Theseus- Canada Baichen Luo - Team Lead (Electronics & Computer Vision) Leo Tiralongo - Mechanical Design & Electrical Assembly Christopher Shu - Software Architecture & Navigation Lucas Cai - BFS Algorithm Programmer Documentation link: https://github.com/Arsur24/Theseus/tree/main [St Andrew’s College — RoboCup Junior Rescue Maze Code link: https://github.com/Chrisyyyys/Robocup-Junoir-Theseus INTRODUCTION DISTANCE SENSING CHASSIS & MATERIALS POWER SYSTEM What sets the Theseus Maze Robot apart from competitors utilizes a fusion of information from disparate sensors to accurately and reliably traverse the maze. Instead of using a single type of sensor to control movement, data from the gyro, TOF and magnetic encoder sensors are combined to allow for smooth and precise movement through the maze. The robot uses a state machine as its software architecture for navigating The power system is divided into two branches: the maze, and uses a 2-D Array consisting of our own custom tile bitset to map out its route. To detect victims, a a high-current motor rail and a regulated powerful FOMO network was trained on over a thousand augmented images through an edge impulse pipeline electronics rail. The motor rail powers the drive to detect victims. We also have many hardware innovations, including a suspension system for smoother motors through the Carobot V3 motor shield, movement in uneven terrain as well as a rotating dispenser allowing for selective dispensing on both sides of the The robot uses an array of VL53L0X time-of-flight distance sensors. while the dispensing stepper motor is supplied robot. However, our team has placed most of our efforts into improving the software, as we believe that better These sensors emit infrared light and estimate distance from the navigation, movement and detection would give us the advantage over a team with custom hardware, but with light’s return time. They are preferable to basic reflective infrared via a 5V buck converter. The OpenMV cameras sensors because their measurements are less dependent on the worse code. visible colour of the wall. are powered from a dedicated regulated supply The README identifies the VL53L0X as the principal distance to prevent voltage transients from causing sensor and emphasizes the organizational advantages of using I²C devices. camera resets. The regulated logic rail supplies The sensors are positioned around the chassis to provide forward the distance sensors, IMU, and colour sensor. obstacle detection, wall measurement in all 4 cardinal directions, and to keep the robot centered in the maze. The Arduino GIGA R1 operates on 3.3V logic, Because multiple VL53L0X modules normally start with the same The chassis is 3D printed in PLA for its light weight and ease of production. The robot follows a layered architecture, with I²C address, they are connected through a TCA9548A/Qwiic I²C each layer serving a dedicated purpose. In V1, the motors were positioned on the base plate, which limited the available so all high-current devices are driven through multiplexer. The multiplexer electrically separates the sensors into space and caused wiring issues that made fitting the top plate difficult. In V2, the motors were moved beneath the base dedicated driver electronics rather than directly independent channels. The controller selects one channel, reads that sensor, and then switches to the next channel. plate, which now houses the dropper mechanism. This freed up the mid layer significantly, allowing for cleaner wiring and from GPIO pins. better organization of electronics. The suspension uses a dead axle design, where a fixed shaft supports the front wheels through press-fit bearings, preventing torsional stress under repeated use. Cable strain relief posts with capped ends are built into the chassis to prevent tension on motor connections. DRIVE SYSTEM / MOTORS RESCUE KIT DEPLOYMENT MECHANISM ORIENTATION (IMU) COLOR SENSING A downward-facing TCS34725 colour sensor The robot uses an Adafruit BNO055 nine-degree-of-freedom IMU(picture below) for heading measurement inspects the floor beneath the robot via I2C. It . provides red, green, blue, and clear-light An earlier version used the MPU6050(Picture above). However, the measurements. The clear-light channel is [Color Sensor Pho We decided to use 195:1 polulu 12v gearmotors for their high MPU6050 primarily provides raw acceleration and angular-velocity data. particularly useful for detecting low-reflectance torque, which allows the robot to easily travers obstacles such as The rotating turntable was selected because it can deploy kits from either side of the robot. This provides a competitive advantage because Determining heading requires integrating the angular velocity over time, black hazard tiles, while RGB ratios distinguish ramps and steps.The Polulu the robot does not need to rotate 180 degrees before deploying a kit. which accumulates error and produces drift. The BNO055 performs encoders(https://www.pololu.com/product/1523) produce two coloured tiles from simple reductions in overall onboard sensor fusion and can directly report orientation. alternating square waves, A and B, when overlapped creates 20 Earlier dispenser designs had several problems. Mounting the motor inside the mechanism wasted space, the guide failed to engage because brightness. The sensor also detects blue obstacle pulses per rotation. In our code, we are only measuring when pin it had insufficient clearance, and the original high chutes caused rescue kits to bounce away from the target. tiles, triggering a mandatory 5-second stop as A rises, so thats 20/2( the number of waves A produces per rotation) divided by 2( only the rising). The final design uses a stepper motor mounted beneath the dispenser with a press-fit connection to the turntable. The turntable has 19 mm by required by the rules. 19 mm openings for the 10 mm rescue kits. Approximately 1 mm of clearance prevents binding, while 8 mm by 4 mm triangular guides direct kits into the chutes. Two steep chutes extend beyond the wheels, helping kits land within the required 150 mm scoring area. The stepper motor rotates the turntable in approximately 22-degree increments. The control system selects the left or right chute based on the detected victim, connecting the sensing, software, and mechanical systems. CAMERA & VISION SOFTWARE FLOWCHART To detect the lettered victims, we use a Edge Impulse pipeline to train a FOMO detector to recognize victims(More information The robot uses a state machine as its on the model could be found here). One major advantage of core software architecture, navigating FOMO is that it uses x30 less processing power compared to tile by tile through the maze. The maze similar models, such as Yolo v5. FOMO works by creating a probabilistic heat map of the image at a certain convolution is mapped using a 2D array of custom layer, which is around x8 smaller than the original image. tile bitsets, storing wall data, victim Based on the probability of each pixel, the model is able to find records, and exploration states. the location of victim. Breadth-first search calculates the A total of 450 images, with 150 images of each letter, was return path to the starting tile. The taken on the K210 camera. Before training, the images were Arduino GIGA's dual-core processor preprocessed, first by binarizing them, and after Baichen wrote divides responsibilities: the M7 core a preprocessing script on google Collab that produced a rotated and scaled version of each of the images, tripling the dataset to handles navigation, PID motor control, over 1300 images. The model was trained on a batch size of mapping, and BFS, while the M4 core 32, with a scheduled learning rate that has a maximum of 0.001 continuously monitors the OpenMV over 40 epochs. After training, the model was found to have a cameras for victim detections. 96.2% accuracy, which is very high. The confusion matrix could be found below: SOFTWARE & NAVIGATION RESULTS & ACHIEVEMENTS FUTURE IMPROVEMENTS In future versions, we plan to use a In our first friendly competition on Raspberry Pi to provide additional The robot software uses a hybrid architecture combining high-level maze navigation with reactive movement February the 28th, our robot processing power for advanced correction. High-level navigation determines which tile the performed much better than in vision models such as YOLOv11 robot should visit, records the maze, and calculates a previous years, achieving a score of and potentially integrate LiDAR- return route, and low-level reactive systems operate during between 110-200 with detection movement to maintain alignment, avoid collisions, detect based SLAM for improved alone( the dispenser system was victims, identify hazardous tiles, and respond to ramps. localization and mapping. We would not attached yet). In our qualifier run, the robot did slightly worse( 95- also like to increase modularity by The program uses a tile-based state machine. The maze is designing a custom PCB to simplify divided into 300 mm tiles, and the robot completes a 130 points) due to an unforeseen logic error, and the robot running wiring and sensor integration. structured sequence whenever it reaches a new tile. It senses its surroundings, updates its internal map, selects a out of power midway throughout the Finally, we are interested in direction, turns and aligns itself, detects victims, moves run. However, in a testing run, the developing a tracked drivetrain, one tile, confirms the result, and repeats. This structure robot was able to detect victims which could improve performance helps keep the robot’s physical location synchronized with reliably, dispense rescue kits and on ramps and steps while providing its stored map. return to its starting point. We were an exciting engineering challenge in able to achieve first place in the both mechanical design and control. York regional Robocup Junior competition.