Maze-solving algorithms
As the robot navigates around the maze, it uses its distance sensors to observe the walls around it, save the maze in memory, and make a decision on the path to take next. The robot's navigation consists of using a depth-first search to determine which cell within the maze to navigate to, while using a breadth-first search through the explored map to find the shortest path to the destination.
The PCB
The robot's PCB was designed to be extensible, both without modifiying the PCB for smaller changes and changing the schematic and PCB design for more drastic modifications. For example, the maze configuration of the robot uses analog infared distance sensors, but if using ping sensors are more preferable, they can be replaced by swapping the sensors, re-wiring both the trigger and echo pins to the previous ADC pin and reconfiguring it to be used as a GPIO pin, controlling a ping sensor in single wire mode. If the hardware or port layout needs to be further adapted to design needs, it can be done through modifiying the open-source PCB to suit ones needs.
Additional Extensibility
Because all structural components of the robot are 3D printed with open designs, all of the sensor mounts and the chassis can be redesigned or reconfigured to suit a different task or sensor configuration. The current, maze-solving configuration consists of 6 short-ranged mini IR rangefinders, 2 pointing at every side of the robot except the back.