Autonomous Cube Game Robot (ME588)

Project Description: This was a five-person project for my Mechatronics course in Spring 2023. The team was tasked with building a fully autonomous robot to play a game that involved finding, harvesting, sorting, and stacking 1” colored foam cubes. 

Software Used: Autodesk Inventor, Arduino (programming)

My Role: I was one of three members focused on designing the robot, where I was focused on attempting to intake and sort cubes.

Other Roles: Two of our team members managed coding the finite state machine for our robot. One of the other members working on design focused on the main body and drive system, while the third took on a mechanism to stack the cubes based on sensing their color.

Big Wins: I constructed a solid, adaptable prototype for my subsystem and was able to improve and iterate through multiple ideas and eventually overcome most of the challenges I faced.

Challenges: Cubes proved to be a very difficult object to manipulate, especially when trying to handle them in bulk instead of giving them individual focus. Cubes “rolling” through my system was a substantial challenge and made the handoff for stacking too hard in the end. We got too close to the deadline and had to handover a simple chassis to our programmers so they had time for implementation and debugging. It seemed like the professor also realized the excessive challenge of giving us loose cubes when every group reverted to a push bot strategy for their final grade to hit the minimum goals of collecting and delivering cubes.

Key Takeaways: Collective time management is important, but at least we knew when to quit and get a satisfactory baseline prototype working.

Here’s a video of my final prototype for the cube intake and conveyor system. This iteration bounced when pulling cubes in and didn’t offer enough control of releasing the cube at the top unfortunately. Bouncing was an issue for our plan to drive autonomously using encoders to navigate the field. The following images show the development cycle of this project.

Above is my initial sketches of ideas for how our team’s robot could do the tasks of collecting, sorting, and stacking cubes. After using a drill to test ideas and do rough prototyping, we settled on the conveyor based design below, drawn by a teammate.

Here was my first take on the conveyor system assembly from the prior sketch. I made it modular with a distinct upper and lower half, which was a great forward-thinking decision for when I had to iterate on the top half. The bottom of this assembly also had two wedges that allowed us to easily test our capability of intaking up steeper ramps of known angles

After testing some other TPU belt designs, such as square teeth, with no luck, I redesigned the top belt cradle to use compliant fins to try and gently pull cubes in without jamming due to cube rotation. This worked a lot better than the initial design, which was shown in the first video.

Despite the intake improving with each iteration, the cube sorting/stacking wasn’t coming together for my teammate and deadlines were rapidly approaching, so we ended up stripping our design down to the bare essentials to meet expectations for the project. This was the final CAD for our robot.

This was the final assembly for our robot. It got the job done, but it wasn’t pretty… (I was not in charge of wiring).