Context:
For the 2022 FIRST Robotics Competition game, Rapid React, robots were tasked with collecting and shooting balls into a central hub through lower and upper targets. During the first 15 seconds, the robots are allowed to operate autonomously and earn more points than when they are operated by a human. In the last seconds of the game, robots can go to a Hangar and gain more points depending on how high they can reach. The video of the game at the bottom of this page may be helpful for understanding the concept better.
Shown below was the robot my team and I came up with.

Clips of our prototyping sessions

Overall concept:
The intake module (the front of the robot with green wheels) was responsible for driving motors to push the balls into the robot by steering them to the center (green wheels) then pushing inward (black wheel in the middle). The conveyor belt module would then activate to move the balls closer inside the robot where they could safely be stored. Once the conveyor belt was filled with two balls, it would move them toward the flywheel (blue wheel at the end). The flywheels, which are their own module, would speed up to a specified RPM and launch the balls toward our goal. All of this sat on top of our drivetrain module, which used a variable gear ratio and hybrid wheel system to balance force and maneuverability.

Electrical:
I was personally responsible for configuring the DC brushless motors with their respective motor controllers over the CAN bus. I debugged all communications issues and troubleshooted our firmware. I also wired all our electrical components, such as an I2C laser beam sensor, pneumatics, and the wireless router on the side.

Programming:
I spear-headed an architectural initiative to use a subsystems-commands architecture to make use of Object Orientated Programming for easier debugging and organization. Most of my time was spent fine-tuning PID coefficients for the drive train and putting in a feed-forward loop to better control the robot through code for the autonomous period. I also made a control loop for the fly-wheel and converted the driver's native measurements to RPM as to allow for granular control over the speed. These strides in automation reduced the burden on our human drivers.

Watch the robot in action!

You may also like

Back to Top