Killer Bees Unveil 33ABC

Hello All, the Killer Bees team 33 is a rookie team to VRC this year although we have been an FRC team for 17 years. We decided to unveil our robots on the forum because although we qualified for worlds are unable to attend what with FRC during the Spring. Hopefully someone will learn from or take inspiration from our designs.:slight_smile:

So without further ado…

-A light, nimble robot that can effectivly pick up and score more then one piece at a time. (this robot was built by underclassmen so it’s a bit less aggressive in design)

Drivetrain: H drive
-five 4" omnis
-one 393 on each side and two 269’s on the kicker wheel
-Geared 1:1 to all wheels
-Encoders on both sides and kicker wheel

Arm: Standard single pivot.
-2 393s 7:1 ratio
-surgical tubing assisted
-Potentiometer for arm control

Collector: Double Side Convayer
-Two 269s 1:1
-Gently sprung inward for better intaking
-.0135" polycarb bottom and top
-Holds 3 preloaded or 2 any orentation

33A diagional
33A drivetrain
33A Back
33A front
33A collector

Make a robot as scoring efficient as possible. We decided this robot should be quick, agile, able to preload many game objects or pick up on the run and quickly dump or descore in any orentation.

Drivetrain: Asmytrical Cantilevered 6wd
-four 393s and two 269s 1:2.5
-2.75" omnis on the corners and 2.85" vexplorer wheels in middle
-single chain path
-wheel base takes advantage of 18" box
-2.8 fps
-two encoders and a gyro for auto

Arm: Parellel 6 bar
-two 269s 9:1 (3:1 + 3:1)
-heavily rubber band assisted
-potentiometer for easy positioning
-lifts to 30" in 1.7 seconds

Collector: Double side intake rollers
-two 269 1:1
-gently sprung in for optimal collecting
-24t sprockets for high surface velocity
-.0135" polycarb forms trough for game objects
-held 6 preloaded or 4 any orentation
-prematch: rollers pivoted inside trough and held in by each other (rotating released them.) In the back of the trough the polycarb was acordion folded up and held with a sprung down stick on a pivot within the chassis body (release by slightly lifting arm.)

Total weight: 14lbs
CoG: 4" off ground (max) and centered with arm at 30" including 6 game pieces.

33A down
33B 12"
33B up
33B 30"
33B 20"
33B front
33B back corner
33B chassis front
33B chassis pod front
33B pod angled “cool”
33B angled
33B collector

-Wanted to be able to preload many game objects but only picked up one piece from the field at a time. This allows extra motors to be utilized for a faster lift and more powerful drive.

-four 393s and two 269s 1:2
-four 2.75" omni wheels
-motors geared togeather w/ 36t HS gears and chained to wheels
-2.2 fps

Arm: Hybrid Parellel “Chain bar” and Asmetrical four bar
-four 269s 5:1
-“chain bar” allows very far reach while four bar allows for low motor placement.
-heavily rubber band assisted
-lifts to 30" in about .6 sec.

Collector: Pneumatic Claw
-two double acting cylinders
-Asmytrical jaw closes inside itself hold fit inside box an hold in preloads
-preloads 4 or holds 1 (2 stacked) any orentation

33C front
33C angled
33C side
33C up
33C back corner
33C back
33C bottom
33C drivetrain side
33C claw

-Modular, subsystem-based design allowed us to re-use very similar code on all 3 VRC33 robots
-Arms are fully state-machines driven with PID positioning controls, and manual overrides.
-Claw (33C) is fully state-machine driven, with a timing system allowing us to set a “lag profile” which corresponds to a lag of either the left or right when opening or closing (all tunable, multiple lag profiles can be coded in).
-VRC33A utilized “Doom” style slide drive controls, with left stick translation and right stick rotation
–VRC33B and VRC33C utilized “Halo” style skid steer controls, with left Y “Throttle” and right X “Wheel”, halo algorithm is modular allowing the same code files to be shared between all three robots, as the Doom drive utilizes the Halo drive internally.
-Autonomous navigation system drives perfectly straight using a gyro. We can also do gyro turns, but have yet to need it in competition.
-Autonomous can use the same subsystem calls that teleop uses for arm and claw control
-Autonomous selector uses two potentiometers for 5-bit auto selection (Color, Position, 2-bit code, Match Mode (PSC/RSC/Comp)) and 5 LED’s for feedback
(33C decided at a competition that we needed a new autonomous program, so we went to the practice field with a tape measure and measured the distance before the first match, entered it into a slot in the autonomous selector, and ran it for every match up until the finals without issue (it worked perfectly, we changed strategy in the finals and used a different routine). This modularity also allowed VRC33C to take an autonomous routine from VRC33B, remove a wait, and use it to beat 33B in the first finals match (it ran perfectly on both robots, without modification of the autonomous routine itself).

Extra info Stratigy: Recently all three of these robots competed against each other in the finals of a local competition (33A and 33C against 33B) Although 33A & C beat 33B in the first roud due to the auto mentioned above and a partner malfuntion 33B took home the win after utilizing this stratigy which some might find interesting/helpful:
1.Allow opponents to take middle 30" tower in auto while opening your gate using your iso robot to grab both 20"ers and scoring 6 preloads in your iso 30"er (for us just enough room for a doubler on top)
2. Score alot making sure your 12"ers are taken first.
3.Place doubler on your iso 30"er and guard while the other robot places the negator on the middle 30"er and guards it.

Questions and Comments are welcome, either I or aplard will do our best to answer any questions you might have.
(Oh, and sorry about the lack of video):rolleyes:
Thanks, Bryan

1 Like

I am releasing the code for all three robots. The code is written in RobotC, and contains four folders:
common - I set this to my RobotC user include path for re-used code between the three robots
palardy - VRC33C code (team leader Andrew Palardy)
culver - VRC33B code (team leader Bryan Culver)
demi - VRC33A code (team leader is actually Nick Finn, but Demi took ownership sorta at one point)

All three robots contain code derived from the OCCRA Vex robot code, which I released somewhere, but this release is in RobotC (the OCCRA Vex code is in EasyC).

Feel free to use it for whatever you want, as long as you credit me and/or team 33 The Killer Bees.

PM or reply if you have questions (578 KB)

1 Like

Not a single comment? :frowning:

One of our team members linked us all to this thread becase he thought your code was interesting, if that makes you feel better :slight_smile:

Some questions:
Why does C look like it has both a 6-bar and chain? EDIT: never mind, I was only looking at one photo when I asked this and in that photo it wasn’t all that clear what you were doing. I see now and it looks like a pretty clever way to get your motors lower down.

How well do the vexplorer wheels work? do they give a noticeable pirate ship (rocking) effect, or are the diameters close enough that the omniwheels both stay firmly on the ground?

Just checking, you sure the gearing on the arm is a 9:1 and the drive a 1:2.5 for 33B

Because that arm would be flying! and the drive would be… quite slow, especially with the 2.75" wheels.

Just asking because I use that arm gear ratio, except mines 9:1. A 12:26-12:36…

Overall Great bots. I need to wire my bot and make a forum displaying since we are not qualified… yet.

Such excellent description removes the need to ask questions;
Which parts are steel, which are aluminum?
Since you are not going to world’s, there is less need to offer improvements.

Thanks for sharing the code, and the descriptions of it; I’ll save it for a look later.

33B: I’m not a fan of cantilevered wheels, but they do improve your wheelbase width by a half inch on each side.
It would be interesting to see the 6bar arm built with mostly hinge joints, except for the middle cross and the gear power.

It would be good to show a picture of your robot balance tipped to demonstrate that, as it seems unlikely. How much do 6 game pieces weigh?

This is the engineering gearing format rather than usual forum format.
The arm is geared for torque (9 turns on motor = 1 turn on arm),
and the drive is geared for speed, 2.5x is rather quick.

How did you like the way the claw performed vs the other intake systems?

Nice code! You use a wide variety of available features, and make it fairly easy to understand with numerous comments.
I am curious, the only program that I see that has a Task Main in it is palardy.c. Which program is the main program for the other two robots?

lol i bet b is the best robot
i have seen a lot of these designs and the b design has a lot of potential if you get it working right
why does c use such small wheels

Thanks for the responces guys! I’ll do my best to answer your questions.

Thank you, our programmer (aplard) is used to programming in Labview so Robot C was not to great a change for him. He used a lot of similar programming to that of our FRC robots despite the size difference.

The vexplorer wheels worked great. They do noticeably pick up the front wheels however, they are only momentarily in contact when braking quickly or some other quick manuver. Because of this the robot acts like a 4wd turning about the center of the vexplorer wheels.

This is correct. 9:1 means the driving gear is going 9 times faster then the driven gear. Thus the arm is turning 9 times slower then the motor. It goes up in 1.7ish seconds so I guess thats pretty fast. You’re certainly not waiting around for it. The drivetrain ratio 1:2.5 is also correct. The driven sprockets are going 2.5 times faster then the motor speed (about 250rpm) It goes about 2.8fps which seems very fast on a vex field, but then again we like going fast.

On 33A the whole robot is basically steel.
On 33B the whole robot is basically aluminum.
On 33C the robot is all steel except the arm which is all aluminum.

We really liked the cantilevered wheels and had zero problems with them. You really just need to know how to support them properly. For reference none of these robots were designed in CAD except that drivebase.

I can take a picture of the tilted robot tomarrow (I admit 4" does sound low so I might be remembering with only 3 game objects). 3 barrels = about 3lbs and 3Balls = about 1.5lbs so togeather 4.5 lbs. This is offset by the very dense 4lbs drive pods and the batteries set .25" from the ground. All togeather about 11 of the 14lbs is below 2"

The claw worked very well so long as you didn’t want to pick up more then one piece from the ground at a time. It never had trouble grabbing pieces from the ground and could human load 4 so we liked it. If you have two motors the double intake is better though.

Thank you, although I am not the programmer so I’m not exactly sure what you are talking about. However, I believe that he used the same basic program on all of the robots and adjusted calibrations and such seperatly. The robots have similar enough motor allocations that this is possible.

Thanks, 33B was my robot. 33C uses the 2.75in wheels simpily because we had them available and the 33C team liked them…

Keep up the comments and I will try to get a couple of pictures of 33B tipped and possibly a video of it driving.
Regards, Bryan

33A is the “demi” folder with “demi.c”
33B is the “culver” folder with “culver.c”
33C is the “palardy” folder with “palardy.c”

The main task is actually in “competition.c” in the “common” folder. The common folder contains code which is shared between all robots exactly (that directory is setup as a RobotC user include directory), there are a few other files which were written for one robot and ported to another (arm.c is a big one).

The basic arm controller (arm.c) ran a larger OCCRA robot (38"x28"x40"x115lb) with a single joint arm, an OCCRA VEX robot (standard Vex size) with a single joint arm, and the three VRC33 robots, with hardly any modifications to the code - It was originally written for easyC and we ran the whole OCCRA season on easyC, then switched to RobotC for the debugging features for VRC and evolved the code further. The final additions include the full PID control (it was originally just P), and the “anti-motor death”, which prevents extended stalling of the motors. All of the positions are defined in the enum in arm.h and the array in armconst.h, so if we want to add a new position, we just add it to those two files.

As the team leader of 33C, I loved the claw. In our first qual match with another fairly strong team, we managed to score all of the game pieces but 2 for a grand total of 32 points, with 33C handling the isolation zone in about 45 seconds. We decided that we wanted the arm to be wicked fast (5:1 does that for us, and the pneumatic claw has really fast acquisition time), and that it was OK to only handle one at a time, as long as we could handle the two preloads or four from the human player (which we did a few times). I also loved how the PID controller was able to hold position really well, with minimal twitch.

1 Like