Vex Robotics

Overview

Although my high school was relatively small in size (~800 students), our VEX robotics program was both well funded and had a great track record, with multiple past teams making it to the world championships. Being interested in electronics and engineering, I took full advantage of this program and between grades 10-12 I participated in it actively as an extracurricular activity, often staying 5-6 hours after school for weeks on end to work on my team's robot, especially during the competition season. This post highlights the work and achievements of my team during the 2019-2020 year specifically, as this was our most successful year.

The VEX game during the 2019-2020 season was called "Tower Takeover" and involved collecting and stacking multicolor cubes, in addition to scoring cubes in small elevated goals, which multiplied the score of a certain cube color. The game also had a fully autonomous period at the start of each match in which the robots had a preset amount of time to score points without human input. Throughout the year, our robot went through many iterations, with each change making the robot more maneuverable, lighter, beefing up certain mechanical and autnonous systems, and improving the overall design. Our robot was designed as a "Tray Bot", which was the nickname given to the design where a robot would pre-stack the blocks, on a tray, at an angle, before pushing the tray forward and stacking the blocks in the process in one of the stacking locations on the field.

Our robot was initially designed to stack 6 blocks, but eventually we were able to desing an unfolding system, through many iterations, which allowed it to reliably stack 11-12 blocks. The tournament rules prohibited robots over a certain size, (18 inches cubed), and as such, our robot would fold up into this size before unfolding during the autonomous period of the game. This required that many systems, such as the intakes and tray, were designed to be folded by hand and clipped in place, with elastics that would flip them out during the autonomous period and custom locking mechanisms which would hold those systems reliably for the rest of the game. (You can see this in the autonomous demo videos where the robot first unfolds itself)

My role in this project was the primary programmer for our team, but I was also responsible for 1/3 of the mechanical design and construction of the robot as well. Some of the best systems I designed were the intake and intake locking mechanisms, and a reinforced iteration of our crossbar linkage which was a crucial part of the design and moved the intake arms up and down. I also coded all of the driver control and autonomous code for the robot, with the autonomous control going through many iterations before it could reliably score 3 cubes.

VEX robotics tournaments are structured with a few dozen tournaments held throughout BC each year, with the winning teams (only 40 slots) qualifying for provincials out of hundreds (~1000) in BC. Our team qualified for provincials by winning the BCIT "Last Chance" tournament, which was the last tournament held before provincials.

Provincials

In the Tower Takeover provincials, my team ended up placing 1st out of all BC teams in the qualifying rounds. The qualifying rounds were pre-finals games which established your team's credibility and let you have an earlier choice of partner team before the actual playdowns and finals of the tournament. This alone was a massive achievement for our team, being completely unexpected by other teams, and we achieved it in a rather clever way.

During the pre-tournament testing time of provincials, I noticed that the field size and layout was slightly different than that of previous tournaments. I realized this as the complex autonomous systems of the previously leading teams, which historically and reliably scored the most autonomous points, were regularly failing during testing.

Additionally, most of these teams used light and nimble aluminum robots which could complete autonomous very quickly and reliably, but were not very powerful and would not score as much in-game points, relying on their autonomous points for the overall win. Due to our lesser budget, my team only had access to steel parts for our frame, making our robot much heavier but also more powerful and robust than the other teams.

In this moment, we decided to scrap our complicated autonomous system and I coded a bulletproof simple autonomous system, that did not rely on field design at all. Due to these last minute changes, we ended up being one of the only teams scoring autonomous points in our first games, and due to our weight and size we could effectively "bully" the other robots in the in-game portion and we ended up winning the majority of our games in both driver control points and autonomous points.

This success led to our team being first place in the qualifying rounds of the entire provincial tournament. Although the other teams eventually fixed their autonomous systems and we lost the qualifying game for Worlds, our team was very proud of our performance as we were not only counted out at provincials, most teams didn't expect us to even qualify for provincials in the first place. The fact we beat all of these extremely well-funded teams in the qualifying rounds of the tournament, as one of, if not the biggest underdog, was a massive achievement for our team, which we were all very proud of.

Gallery

Project image 2 Project image 3 Project image 1 Project image 3 Project image 1 Project image 1 Project image 1 Project image 1

Video Demo

Technologies Used

C++ Simple C Robot Coding Mechanical Robot Design Autonomous Code
← Back to Projects