VRC Season - Tipping Point

Competition code for the 2021 - 2022 VRC season, "Tipping Point".

VRC Season - Tipping Point

# TL;DR

Focus:CADingControl TheoryRoboticsSoftware Development
Stack:C++PROS
Features:
  • Autonomous routine selector with built-in, on-hardware UI
  • PID control of all robot subsystems
  • Feedforward control with trapezoidal motion profiling
Links:

This was team 1104A's robot for part of the 2021 - 2022 VEX Robotics Championship (VRC) season. For this robot, I wrote code for both automatic and manual control during specific portions of a match. The code includes PID capabilities for smooth navigation, with motion profiling for feedback- and feedforward-based control, and sensor filtering capabilities.

(yes i'm aware the robot says "1104Z" i'll get to it)

# Game Information

Compared to Change Up, this session's new game, Tipping Point was significantly more involved. In a nutshell, the main objective of the game is to score rings on mobile goals. This doesn't sound hard in theory, but the video shows how complicated it can get, really quickly.

As you can see, with components of the game like the rings themselves (whose movement is really hard to predict in code, short of simulating them), the mobile platforms, and the see-saw, writing code for this game would prove much more difficult than the previous one.

# Code and Features

Compared to last year's code, this year's code was slightly similar. I removed a few things and tried adding a few things to compensate for our lack of sensors (and it didn't really make much of a difference) but to keep it brief, here's all the features:

  • PID control of robot subsystems for controlled and sustained motion.
  • Removed the odometry code from last year; we didn't have the sensors to try them out this year.
  • Added more sensor filters (primarily for experimentation) for the smoothing of what sensors we had.
  • Wrote motion profiling code for trapezoidal profile, feedforward control. *
  • On-hardware UI selection of options using the V5 Brain touch LCD.

* This code was mainly experimental and didn't really see any action outside of testing.

In all honesty, I can't fully speak about this robot and the code all too much, because we had to donate the robot to another team after we figured out that half of our team would be unavailable due to IB exams. I see that there are hydraulics built into 1104Z's final robot, so I'm sure they made significant changes to the codebase afterwards.

Robot view 2.