Davious is DNA’s 2022 robot, named after our Mentor Dave. Dave originally mentored for his son, but has continued to be a valued mentor even after his son graduated. Dave has spent hours with the students helping them build the best bot they can, but still claims he has learned more from the students than we have from him. Below is a documentation of the struggles DNA went through to make Davious, and how we have overcome them.

Design

Our team, Denfeld Nation Automation (DNA), has worked tirelessly to create a robot for this year’s competition. Our robot is capable of doing all functions in the game, and we are very proud of its performance. The early stages of our robot was a hard journey of constant revision, but thanks to the work of prototyping, coding, and Computer Aided Design (CAD), we proudly created an all around strong robot.

Prototyping

We started the build season drawing up ideas and building prototypes of our robot. The very first prototype we made was our climbing arms, we tried to get to the traversal bar. We used a system of stationary hooks with double jointed arms that reached to the high bar once the stationary hooks were on the mid bar. When we went to test this design it didn’t work the way we were planning, therefore, the stationary hooks did not unhook from the bar properly. 

We went to our second and final design inspired by the U of M’s Hermes robot climb, where the arms have a hook on each side facing inward. The arms will grab the mid bar with the first set of hooks, and then the winches will begin to pull arms down and raise the robot off the ground, pulling the second set of hooks up to the high bar. Once the second set of hooks reaches the high bar, the first set of hooks slide off the mid bar pulling down on the second set of hooks, securing our robot onto the high bar. 

We were also building the shooter prototype. We took ideas from previous robots, using two flywheels to compress the ball and fire it. The intake used wheels on the front of the robot to pull balls into the conveyor system.

CAD

When designing our robot, the CAD team acquired the basic design of a giant ramp that dumped cargo into the bottom hoop, with two stage folding arms, and it transitioned to an internal shooter with one stage climbing arms. The design of our robot changed as prototype models were made, our models were improved, and ideas were tested. Our CAD team was responsible for making the cutlist which had exact measurements of our robot, and was welded by our build captain. We also used the CAD field this year to help set up our auto program without having a physical field. 

Coding

Our code is programmed in Java, using a command based method. The code is separated into multiple subsystems for each part of the robot. We created equations to control the speeds and positions of our motors used in the drivetrain. If the encoders on our motors are measuring a velocity less than the predicted velocity, more power will be applied to the motors. Thus, if we are stopped and our wheels are not spinning at the correct speed, more power will be applied until we push our obstacle out of the way. Our shooter has a button that allows us to spin our flywheels to the correct speed to consistently shoot cargo into the high goal from a set position, allowing our operator to make a consistent shot.

After our design was finalized it was time to build!

The Final Robot

After we designed and prototyped our robot, it could put three cargo in auto, intake quickly, shoot accurately, and climb to the high bar. From our climb system, to our shooter, everything had been done to the best of our ability.

Climb System

Our climb features a single stage winch system that is able to pull the robot up one bar, then it pulls the secondary hooks up to the high bar. Once our climber arm has reached the next bar, the first hooks slip off on their own. Our climb pulls the mid bar inside of our shooter system with a very tight tolerance, rubbing up against our top flywheel and passing by our. Thanks to the winch set up we can climb in under 15 seconds.

Final Code

The code of our robot uses a Proportional Integral Derivative (PID) controlled drive system to ensure our robot is traveling at the exact speed our drivers give it. Our joysticks declare the speed, and the PID system will apply more or less power to match, this allows us to push other robots out of the way with ease, as the PID system will apply more power as needed. This system was greatly simplified by using a PID controller library, allowing us to provide an input and a goal, and returning a calculation.

At the start of the match, we have 15 seconds for a fully autonomous period. Our robot’s autonomous period is able to score 3 balls consistently, getting us a total of 14 points at the start of the match. If our human player is able to throw a ball into the high goal, that also adds another 4 points, for a total of 18 points.

Intake and Shooter

The intake of our robot uses mecanum wheels to pull cargo into the center conveyor, allowing us to quickly and consistently pick up cargo. The inner conveyor uses a laser sensor to detect when a ball is being loaded, when the sensor is active, it activates the conveyor, pulling the ball inside. Our shooter uses flywheels on both the top and bottom of the ball to apply more compression, shooting the balls further and with more power. This system gives us a very fast and consistent cycle time to score lots of points.