Professional Documents
Culture Documents
7-8-19 (Design/Planning)
Game Analysis.
Today we met and watched the new game video. We took a few notes and
discussed possible strategies.
Objects:
o Cubes: 66 total-22 of each color. 2 orange are pre-loaded to red, 2
green are pre-loaded to blue. 2 purple are given to the autonomous
winner to be placed into the field during driver control. Cubes are 5 ½
inches.
o Towers: 7 towers-2 are alliance specific. Alliance towers are 18.5
inches. Neutral towers are 18.7 in. (2), 24.7 in. (2), and 38 in (1).
o Scoring zones: Surrounded by a 1-inch triangle bump. The small goal
is 10 X 10 In, Big goal is 10 X 15.5 In.
4
Scoring:
o (1+However many cubes of that color are in towers) points for each
scored cube.
o 6 points for autonomous bonus-3 for each team if a tie.
Other important rules:
o No expansion limit.
o SG1: There is not starting tile this year, you just place your robot
against the wall. We will need a good liner-upper for autonomous.
o SG2: You must stay on your side during autonomous.
o SG3: You can’t touch another robot in their protected zone, and you
can’t enter the inner protected zone.
o RSC1: In skills, all cubes count as the same color.
Design Brief
Problem statement: We need to score more points than the opposing
alliance by scoring cubes in goals and placing cubes in towers.
Design statement: Design, build and compete with a robot that is able to
efficiently and effectively score points in the 2019-20 Vex robotics competition,
tower takeover.
Constraints:
The robot must be within an 18”x18”18” size limit (at the start of the
match) (G4).
The robot can only be made with Vex material (R5)
The robot can have no more than 8 V5 smart motors (R17)
The robot must be able to handle minor bumps by other robots (G12)
The robot cannot intentionally detach parts (G5).
5
7-11-19 (Design/Planning)
Today we brainstormed ideas for our robot. The robot will have 2-3 systems, the
drive, cube intake thingy, and possibly lift. Today we wrote down and rated
possible systems
Mecanum drive
o A standard 4-directional drive, but the special mecanum wheels
allow it to go sideways.
o Pros:
Can move on 2 axis. (Go forward, backward, left, right and
diagonal, making it very easy to drive).
o Cons:
Not as fast.
Not very compact.
We would need more wheels.
Idea X-drive Rank H-drive Rank Mecanum Rank
drive
Compact- Pretty compact 2 Definitely 3 Not compact 1
ness compact
Fast? Faster than the 3 Medium fast. 2 Medium fast. 2
other two.
Easy to Yes, you can go 3 Not as easy to 2 Yes, you can go 3
drive in all maneuver, but in all directions
directions. we have a lot
of experience
with H-drive
Cost (do Yes, we need 1 No. 3 Yes, we need 1
we need more omni mecanum
to buy wheels. wheels
more?)
Total 9 10 7
Looks like we’ll be going with the H-drive
8
9
Cube Intake/Lift
Criteria/Constraints: The cube intake/lift needs to be able to easily pick up cubes
and stack a lot of them at a time. Then it needs to deposit that stack in the zones
efficiently, and without tipping it over. It needs to be able to easily take cubes in
and out of towers. It would be nice if it could stack on top of cubes that have
already been scored. It would also be great if it could pick up the pre-built stacks.
DR4B with conveyer belt stacker:
o This would be two vertical conveyors that pick the cube up off of the
ground.
o Pros:
Probably could pick up cubes pretty easily.
Could stack on scored cubes.
Could get cubes easily in and out of towers.
o Cons:
To score cubes, the lift would have to be lifted up very
tediously.
Can’t grab pre-made stacks.
DR4B with rollers:
o This would be two rollers that pick cubes up off the ground and
stacks them in a vertical channel.
o Pros:
Can easily pick up cubes.
Could stack on scored cubes.
Could get cubes easily in and out of towers.
o Cons:
To score cubes, the lift would have to be lifted up very
tediously.
Can’t grab pre-made stacks.
10
11
Tray stacker
o A very complex design: There would be a tilting tray with rollers to
suck cubes in. The rollers could open and close and are on a lift to put
cubes in towers.
o Pros:
Can pick up cubes easily.
Could probably get cubes in and out of towers.
Can easily let the cubes go.
Can stack a lot of cubes
o Cons:
Can’t grab pre-built stacks.
Can’t stack on existing scored cubes.
DR4B Claw stacker with “door”
o A claw stacks cubes in a vertical channel, which can open the front to
let cubes out.
o Pros:
Can pick up cubes
Can score on other scored cubes
Can easily score the cubes
Can grab pre-built stacks
Could probably score in towers
o Cons:
Might be a bit heavy for the lift
12
13
7-22-19 (Design/Planning)
Today we discussed possible strategies with our robot, and also took apart the old
robot. Next week, we will start building
Driver control (matches): This game is going to have a lot of strategies involved.
We know that towers will play a huge role in who wins a match. We will probably
want to try to monopolize and use one or two colors. But what order should we
use?
We could stack during the first minute or so of the match, and then do
towers.
We could get a jump start on towers, and then try to do cubes after.
We could stack and our partner could stack (or vice versa)
It definitely depends on who our partner is, but we both think that the 3 rd option
would be the best strategy.
15
Driver skills: We think that we should spend the first 20-30 seconds getting
towers, hopefully at least five. Since all cubes are the same color (RSC1). Then we
can score as many cubes in zones as possible.
Autonomous/Prog Skills: The simplest thing to do, at least at the beginning would
be to create some programs that drive forward and pick up the pre-built stacks.
We could make four of these programs, one for each stack, as shown in the
diagram.
The tray is angled, rollers grab the The tray comes forward, rollers let go
cubes. of the cubes.
Wins
75%
The tournament in Groton this weekend went very well. When we first
arrived, we hastily coded an autonomous program that pushed a cube into a
zone. We went 5-1 in qualifying matches placing us in 3rd and allied with 6844B.
We then made it to the semi-finals before losing to the #2 seed alliance. We also
won skills with a programming score of 1 and a driver score of 16.
The robot performed very well at the beginning, however towards the end
of the tournament the intakes really started to lose their compression. By the
final few matches, there were some times the intakes wouldn’t even have enough
compression to grab a cube. They also had trouble folding out one match. Also,
we felt that only being able to stack three cubes gave us a slight disadvantage.
So in short, the things we want to improve are:
Tension on the intakes
More consistent folding out of the intakes
22
10-27-19 (Improvements)
Today we focused on two of the issues we identified on Saturday: Intake
compression and folding out. Both of which we thought could be solved by
making the intakes fold down instead of out. One small problem we faced was
that now the intakes would not spread apart when the tray tilted forward, so the
bottom cube would catch on the rollers.
To solve this, we coded a macro on Thomas’ controller that moved the
intake back and the robot back very slowly at the same time. This way we could
let the cube go without the stack tipping over
11-3-19 (Improvements)
Today we built a second stage for our tray, in the hopes that it could hold
6-7. Finding a way to be able to fold the tray into 18 inches and still be able to flip
out was very challenging. The solution was a very complicated process where the
intakes spit the tray out.
11-7-19 (Improvements)
We practiced at Harrisburg’s field today. When we
first tried stacking, the rollers only had enough
compression to lift 3 cubes, so we put on the longer flaps.
We also added spacers to the intake joints to push them
closer together. After these modifications, the intakes are
easily able to stack 6 cubes.
24
25
11-10-19 (Improvements)
Win-Loss Chart-Mitchell
Ties
11%
Losses Wins
33% 56%
The tournament this weekend in Mitchell went very well. We went 4-2-1 in
qualification, placing us in 7th. We allied with 9050A as the 4 seed. We beat the 4
seed, and then lost by three to the #1 seed. We didn’t do as well in skills, getting
only 10 and placing us in 5th place. We also received the judges award.
The robot performed well in towers but stacking large numbers of cubes
didn’t work very well. We found that a lot of times when trying to stack, the 2 nd
cube would sometimes get caught on the rollers while stacking and knock the
stack over. Also, even though the intakes were flipping down, they still bent
outward quite a bit due to the screws bending. One other issue we had was
sometimes the fast roller out-take button made the cubes fall out when scoring
towers and the slow out-take was too slow.
To-do:
Fix our intakes so they don’t get caught as much
Decrease slop of the intakes
Make a medium-out-take button
26
27
11-24-19 (Improvements)
Today we started working on the issue of the intakes getting caught on the
nd
2 cube. We needed to decrase friction of the intakes, while maintaining the
compression. The intakes were made of mixed tread, some of wich was made to
be very grippy.
We decided to try to take off the tread and replace it with normal chain.
We also replaced the long flaps with medium flaps. This greatly reduced the
amount of friction on the 2nd cube, however, we are going to need to fix the slop
issue on the intakes as they need more compression.
28
12-1-19 (Improvements)
Today we faced the issue of slop in the intakes. Our first solution was to try
adding a 1-hole strip to support the intakes, however, the stips got in the way of
the intakes when they flipped down. We ended up moving the strips back,
however that lessened their effectiveness. The screw sticking out
We ended up using a
screw as a locking mechanism.
The screw sticks out from the
side of the joint and slides into
a bearing flat, reducing the
side-to-side movement. This
greatly increased our intake
tension, and we could easily pick up cubes again.
29
12-15-19 (Improvements)
Today we added a line to the code that makes the intakes spin outwards at
50% when I press the “B” button. This will make scoring in towers much easier.
We spent the rest of practice driving.
1-5-20 (Improvements)
Since it is legal to have an external non-functional power source this year,
out late Christmas Present to ourselves were some LED light strips. We put these
on our robot and it looks very cool! We also got some good driving practice in.
Win-Loss Chart-Canton
Losses
22%
1-12-20 Wins
78%
(Improvements)
by stacking 5 cubes and scoring in 3 towers, placing us 3 rd in skills. The only thing
that could really improve the robot now would be increasing cube capacity, and
possibly making the robot be able to intake faster.
1-17-20 (Improvements)
Today we addressed the issue of cube capacity. The issue was that the
intakes, once the tray held 6 cubes, would begin to slip.
What we ended up doing was changing the rear gear from a 24-tooth
sprocket to a 30-tooth sprocket. This increased the speed of the intakes (because
there was a larger driver gear) and increased the compression towards the back
of the intakes. Although we couldn’t fully test it out, the intakes could easily
intake 3 with no signs of stopping. One small drawback to this solution is that the
tray has a little trouble sliding through the bigger gears, however, it can still fold
and unfold so we will use these sprockets in Groton.
2-2-20 (Improvements)
Today we worked on making the base thinner. We changed all of the
external bracings from 35 holes to 25 holes, and the interior bracing from 25
holes to 15 holes. This made the robot more maneuverable making it easier to
stack while parallel to the field wall and also made to robot lighter.
2-3-20 (Improvements)
Now that we have made the base better, we turned our attention to the
intakes. We want to make it easier to stack, but not decrease compression or
reduce our ability to score in towers. Tried to flip the intakes out (parallel to the
arms), and that didn’t work. So our plan was to try to make the intakes be able to
bend up from the arm.
To do this we mounted the intakes on hinges instead of directly to the flip-
down bar and used lots of rubber bands to tension them. This allows the intakes
to get out of the way while stacking, but have tension enough to intake 6-7 cubes
and pick them up to do towers.
Another thing we did was mount the intakes on top of the arms, rather
than on the bottom. This makes them more parallel to the tray so the intakes
aren’t jamming cubes into the tray, but rather forcing them up the tray more. This
puts less stress on the motors allowing the intakes to be stronger.
32
33
2-4-20 (Improvements)
Today we had a few hours to practice on Harrisburg’s field. We found that
the robot could easily intake 6-7 cubes and stacking was very easy; we just push
the tray forward and drive back. We no longer have to spin the intakes slowly
which allows us to stack with incredible speed.
We also addressed an issue we had discovered at Groton: The tray had to
be pushed forward in order to raise the arms. We coded a simple macro that
moved the tray to the forward position whenever the arms are raised, that way
we don’t have to worry about that during a match.
2-9-20 (Improvements)
Win-Loss Chart-Harrisburg
Losses
14%
Wins
86%
2-16-20 (Improvements)
Today we confronted the issue of the intakes flipping back on the arms
while raised. Our original idea was to add a rubber band pulling the intakes down,
however, we found that it was nearly impossible to fold the intakes up without
them falling out of 18.”
To solve this, we mounted zip-ties on the tray of the robot to keep the
intakes held up while folded. We also discovered that pushing the rubber bands
up the arms resulted in less force. Once unfolded, the rubber bands would slide
back down the arms to a position of greater downward force on the intakes.
35
2-18-20 (Improvements)
Today we went out to Harrisburg’s field to practice. We had 3 practice
scrimmages with them, with a record of 2-1. We also tried to do some
autonomous coding that picks up 3 cubes and stacks them in the thick zone,
however, we didn’t have nearly enough time as we wanted, so the code is still off
by a little bit. We plan on attempting to complete the code in Mitchell during the
State Championship.
Our Code:
//CODE FOR LOL66_4.4. CREATED BY TEAM 99707K, THE ROBO CHICKENS
#include "vex.h"
// ---- START VEXCODE CONFIGURED DEVICES ----
// Robot Configuration:
// [Name] [Type] [Port(s)]
// LeftFrontDrive motor 9
// RightFrontDrive motor 10
// LeftBackDrive motor 8
// RightBackDrive motor 7
// Lift motor 4
// Tray motor 1
// Controller1 controller
36
// Controller2 controller
// LeftIntake motor 3
// RightIntake motor 2
// ---- END VEXCODE CONFIGURED DEVICES ----
using namespace vex;
vex::competition Competition;
void pre_auton( void ) {
//Draw our logo on the brain screen for added coolness
Brain.Screen.drawImageFromFile("RoboChickens.png",0,0);
//Make the intakes hold cubes
motor_group intake(LeftIntake,RightIntake);
intake.setStopping(hold);
}
Autonomous code #1 (Driving Backwards, 1 point)
void autonomous( void ) {
//Define motor groups
motor_group rightDrive(RightBackDrive,RightFrontDrive);
motor_group leftDrive(LeftBackDrive,LeftFrontDrive);
motor_group intake(LeftIntake,RightIntake);
drivetrain drive( leftDrive, rightDrive, 12.56, 10, 16, distanceUnits::in );
//Set timeout so the robot doesn't stall the program
drive.setTimeout(2,seconds);
intake.setVelocity(50, percent);
intake.setTimeout(2,seconds);
//Deploy the tray
intake.spinFor(reverse, 1080, deg);
//Drive backward, then forward
drive.driveFor(-32, inches);
drive.driveFor(30, inches);
}
Autonomous code #2 (Collect pre-load and 2 other cubes, and
stack them in the thick zone, 1-3 points, not fully tested)
//Define motor groups
motor_group rightDrive(RightBackDrive,RightFrontDrive);
motor_group leftDrive(LeftBackDrive,LeftFrontDrive);
motor_group intake(LeftIntake,RightIntake);
drivetrain drive( leftDrive, rightDrive, 12.56, 10, 16, distanceUnits::in );
//Set timeouts so the robot doesn't stall the program
drive.setTimeout(2,seconds);
intake.setVelocity(50, percent);
intake.setTimeout(2,seconds);
//Hold the tray motor so the tray doesn't move while deploying
Tray.stop(hold);
//Deploy the tray
37
leftDrive.setVelocity(Controller2.Axis3.position()*.75 ,percent);
rightDrive.spin(forward);
rightDrive.setVelocity(Controller2.Axis2.position()*.75 ,percent);
//Lift control
Lift.spin(forward);
Lift.setVelocity(Controller1.Axis3.position() ,percent);
//Tray tilter control
Tray.spin(forward);
Tray.setVelocity(Controller1.Axis2.position() , percent);
//Intakes control-full speed intake cubes
if(Controller1.ButtonL1.pressing())
{
intake.spin(forward,100,percent);
}
//Intake control-full speed outtake cubes (for quickly disposing of unwanted
cubes)
else if(Controller1.ButtonL2.pressing())
{
intake.spin(reverse,100,percent);
}
else if(Controller1.ButtonR2.pressing())
{
intake.spin(reverse,8,percent);
}
//Intake control-40% outtake for scoring in towers
else if(Controller1.ButtonB.pressing())
{
intake.spin(reverse,40,percent);
}
//Intake control-25% intake for adjusting cubes slightly while stacking
else if(Controller1.ButtonX.pressing())
{
intake.spin(forward,25,percent);
}
//Intake control-stopper
else
intake.stop(brake);
//Lift control-hold button (allows the arms to stay up while scoring in towers)
if(Controller1.ButtonR1.pressing())
{
Lift.setStopping(hold);
Lift.stop();
}
//Lift control-stopper
else
39
Lift.setStopping(coast);
//Lift/Tray anti collision system (Move the tray if the lift arms are raising up)
if(Lift.position(deg)>90)
{
Tray.setVelocity(100, percent);
Tray.spinToPosition(180, degrees, false);
}
//Prevent wasted resources
wait(.1,seconds);
}
}
//Main code
int main() {
vexcodeInit();
Competition.autonomous( autonomous );
Competition.drivercontrol( usercontrol );
pre_auton();
while(1) {
vex::task::sleep(100);
}}