MASLAB Team 5

🏆 2024 Competition Winner

Miguel Flores-Acton
Miguel Flores-Acton
Anshul Gupta
Anshul Gupta
Andy Yu
Andy Yu
About Us
In the MIT Mobile Autonomous System Laboratory during IAP 2024, Miguel, Anshul, and Andy joined together to develop an end-to-end robot for the competition. This entailed designing the printed circuit board (PCB), programming the STM32 processor in C and the Intel NUC in Python, implementing computer vision models, and computer-aided designing (CAD) and manufacturing every subsystem. Read more about our journey below.
Project Timeline
collapseexpand

CAD Begins

The first version of the wheel assembly is made in OnShape.


Base CAD and Wheel Assembly Test

The first iteration of the robot base is made, and the new wheel assembly design is tested.


Fine Tuning Base CAD

Different bearing mounts and example blocks are made in OnShape. We start getting familiar with OnShape variables.


Gate Mechanism CAD

The gate mechanism is made and animated in OnShape.


Control Circuitry Design Begins

The schematic for the custom PCB is drafted. KiCAD is eventually chosen over Altium.


Control Circuitry Schematic Finalized

The peripherals are configured, and the pins are assigned.


Board Placements and Routing Begins and Finishes

The component placements are drafted and finalized along with the routing. A silkscreen layer is added before the board is ordered.


Github init

The team GitHub is created and the PCB files are put into its first repository.


STM32CubeIDE Configured

STM32CudeIDE is automatically configured for the STM32 chip on the PCB.


First Day and OpenCV

The official start of MASLAB. Additional parts are created using CAD, and we start working with OpenCV after connecting the NUC to a monitor.


3D Printing and First Chute Design

A plethora of parts are printed and picked up. The first iteration of the chute is also visualized in OnShape.


Lift Mechanism and PCB

The lift mechanism is created and animated with CAD. The custom PCB arrives.


PCB Testing, Base Plate, HSV

We test our PCB, laser cut our base plate, and realize that HSV (Hue, Saturation and Value) works better for us than RGB.


Printing, Cutting, Assembling, and Testing

More parts are 3D printed and laser cut, enabling us to assemble a good portion of the robot. The lifting mechanism moves.


Gate Mechanism, Camera Connection, STM32

The gate is mounted and tested against different cube orientations for its correction ability. We test our OpenCV code with a camera and gather test images/videos. Miguel continues his work with the PCB in STM32CubeIDE.


Double Stack Pivot and Camera Mount

We decide to have two chutes/stackers and the preliminary design is made in OnShape. The camera is mounted and articulated, which prompts us to continue testing our OpenCV code.


Open CV Trouble? Block Lifter Designed

Our OpenCV doesn't do well when blocks overlap/are close to each other. We choose to ignore that case. The first block lifter design is made, and the stacker mount is printed for the first of too many times.


Proof of Concept and C Code Established

After laser cutting the rails, the "sort by turning" method we envisioned is shown to be feasible. All of the baseline C code is written.


Crude Movement

The robot is able to perform actions with crude movement code.


Refining and Gyroscope Installation

The movement code is continuously refined in C, the CAD is "finalized" multiple times, more parts are manufactured, and a gyroscope is implemented.


Lifting Procedure, New Lifting Mechanism, Fine Tuning

The robot runs its lifting procedure, the stacker mount is printed for the fourth time, and parameters are fine tuned.


Late Night Runs and Comp Day

Late night in 26-100 executing test runs, refining parameters/code, and finishing the physical build of the robot. The robot competes...