2903a - Palmy Robotics A's Round Up Robot

Basic Specs:
-4 high strength motors on the base(geared for torque)
-4 normal strength motors on the arm(geared 12t to 36t, then 12t to 60t)
-Intake mechanism is a tube through the middle with intake rollers on the outside

The base is a 4 high strength motor cantilevered X type holonomic, with the high strength motors geared for torque. Each wheel has a quadrature encoder attached directly to the shaft. This base allows us to move in any direction, with enough torque to easily push goals around. The disadvantage of the cantilevered X base is that rings can very easily impede movement, but this problem can be solved by placing a suitable guard on the outside of the wheel. The frame in the middle of the base consists of 5 hole wide C channel attached together to make an X that is 35 holes long in each direction. The reasoning behind making the X base as wide as this, which is basically as wide as is practical within the 18" size limit, was to increase stability and prevent it from being tipped over easily, as would have been the problem with a smaller holonomic base. The disadvantage of this is that the size of the mechanism is restricted more than would have been the case with a smaller base.

The tower is made again of 5 hole C channel, and is 25 holes high. It is attached to a 35x5 piece of C channel via more C channel which attach the sides of the tower to the lip of the 35x5 C channel, and is extremely rigid in this configuration. However, a piece of rail across the rear reduces the twist which could occur. The 35x5 C channel is connected to the X base by 4 standoffs, which were a real pain to force into the holes due to the 45 degree offset. The tower is a total of 25 holes wide, with two pieces of 25x5 C channel spaced 5 holes apart on each side, to form supports for the gearing and the arms. In the middle are all of the electronics, with the Cortex mounted by 4 rubber links to absorb sudden shocks to the chassis.

The arm consists of two 35x2 rails per side, each attached to a 60t high strength gear via two screws. The 60t gets its power from a 12t gear, which is in turn connected to a 36t gear, which is fed power by two 12t gears, each being driven by a normal strength motor. The reasoning behind having each rail attached to a gear is to help spread the load across the system, rather than having it all placed on one gear, which can cause issues with the gear skipping if you try and hang with it. Having the gears connected in the way that they are results in a 25:1 gear ratio. The robot can easily lift itself up, and could have easily hung. We decided not to hang due to the minimal swing in points from one robot hanging on an alliance. The robot is built well enough to handle the stresses of hanging, as it has survived falling off a 3’ high desk twice ><

The mechanism consists of a basic upside down U frame which is attached to the end of the 4 rails from the arm. On each side of the U frame at the bottom is an intake roller constructed from modified parts from the tank tread upgrade kit, wrapped around a 6t gear. Another 6t gear is opposite this, which receives power via high strength chain from a motor mounted above it, due to the X chassis preventing directly driving the intake roller.

In the middle of the U frame is a tube constructed from polycarbonate, which is held together using wire sewn through a series of holes. This tube allows us to pick up rings much like the well loved needle design, but also allows us to descore by pushing the tube down over a goalpost. It has a total capacity of 6 rings, which is a disadvantage when descoring.

Feel free to ask questions.

More photos at:

Are you able to descore from the wall goals and movable goals?

At one point in time my team had a similar intake with a 3" polycarb tube, but we abandoned the idea after we determined that it was too hard to easily descore rings from the goals because there isn’t a very big gap between the top cone thing on the goals and the rings.

We discovered a similar problem. With our 1st design (https://vexforum.com/t/24c-1-1-video/18371/1) we were going to try putting a ~3" Polycarbonate tube down the center, as we were having trouble with rings flipping to the sides and not sitting correctly. However we faced the same problem as the clearance between the outside of the goal-head and the inside of the rings is not very wide.

Nice robot, by the way! But as a question are you able to decore well with the tube in the center? Also I’m curious how well it works with that very slow arm? (25:1 gear ratio?)


Notable features:

  • X frame holonomic with cantilevered wheels with rotation encoders.
  • polycarb tube snout with external rollers at bottom.
  • at least 8 cases of drive rails used structural members.
  • double 4 bar arms
  • Mostly empty center area over the drive frame X
  • Sensors: arm pot, pair of bumpers, and an ultrasound


  • Are you able to drive where you want in autonomos with that setup?
  • Any trouble keeping your Left/Right arms synced together?
    You might be able to tie them mechanically with common axle on the 36t.
    Or do you have a pot on both sides and sync them in software?
  • Have you tried using elastic to help lift your arm?
  • A common problem with unguarded cantilevered wheels is getting hung up on tubes you accidently rolled over. Have you had any trouble like that?

Yes, we can easily descore from the movable goals, and can descore all but the bottom ring on the wall goals. We were using cable ties to hold the tube together, but this created too much friction against the tube when the top piece was in a position where it was rubbing directly against them, so we went for the wire sewn through the tube and have had no problems.

The arm is slow enough to be controllable, but fast enough to get where we want it to go fast enough. The 25:1 gear ratio gives us enough power to lift the robot with the 4 normal strength motors, so we could have hung, but decided against due to the risks of hanging(getting knocked off), and the apparently little advantage it gives.

We can drive accurately to any position in autonomous within +/-10 encoder counts. We have no trouble with keeping the mechanism level, because we have encoders on both sides and use a P loop to keep it level. This also allows us to do preset heights, which is our only method of controlling the arm and which we have not had a problem with. The arm motors output a value of 20 constantly to prevent the arm from falling.

I do not believe in using elastic to help lift the arm/keep it from falling, because i have found that as the arm moves, the tension the elastic provides changes, making the arm more uncontrollable.

Yes, we have had problems with rolling over rings, but have not had time or the parts to develop a clean solution to this problem that is reliable and has a very high tolerance to getting beaten(required to prevent it from bending in and impending the wheel).

did you try “Dead lifting” your robot with your arm?
hold the robot up by the arm, and drive the arm down
our A team tried 1:25 ratio for the arm and ended up destroying the axle
maybe you have a better structure than him…

Yes, we have tried letting the robot lift itself, and it can easily do so. Have updated the opening post with more information, will add more later.

Yet many teams are able to use elastic successfully, so there are details of implementation that make a difference in the usefulness.
See https://vexforum.com/showpost.php?p=108816&postcount=1
for some spreadsheet theory.

Ideally, the change in tension matches the change in force needed to hold the arm in place, and the change in potential energy of the spring stretch at any location is the same as the change in gravitational potential energy of the arm and payload.
Elastic is non-hookean compared to a metal spring though, so YMMV.

In practice, for 4bar parallelogram arms, teams usually just run elastic from the shoulder of the top arm, to the wrist of the bottom arm, and tighten it until it helps enough.

The problem is probably that your elastic (latex) is too short. Think of it this way:

Distance from end of arm to attachment point on frame, when the arm is lifted: 8 inches

Distance from end of arm to attachment point on frame, when arm is fully depressed: 16 inches

The length of your elastic will vary by a factor of two. When the arm is fully down, the elastic will be stretched tight and when it is fully up, the elastic may be hanging limp.

Now, let’s assume that you could find an attachment point that was – for example – 20" farther away:

Length arm up: 28 inches
Length elastic arm down: 36 inches

In this case, the “short elastic” is 78% of the “long elastic.” This would mean that the elastic is providing a more-constant force throughout the arm movement range.

Where can you find that extra 20 inches? Here’s a graphic hint: https://vexforum.com/gallery/showimage.php?i=2681

Hah, clever idea! Because of the 25:1 gear ratio, the arm can basically support itself with no power to it at all, so elastic is not really required for this particular robot, but I’ll keep this in mind for future robots, cheers :slight_smile:

Even with a gear ratio that has enough torque to keep the arm at a steady height with just the resistance in the arm and the resistance in the motors, my team still uses latex tubing or rubber bands to counter the weight of the arm because it takes strain off of the motors.

when we were just starting out, we set the “trim” on the old style controllers to like +120 :stuck_out_tongue:
after a few drained batts, we found out that it was bad for the motors and batteries :stuck_out_tongue:

Problem with this is it increases the resistance as you drive the arm down, which is something to consider if you intend on hanging.

Also, I don’t believe the motors driving the arm are getting strained at all, as they were well used ones before they were put on this robot, and we haven’t had a problem with them all season, even with us ‘dead lifting’ it several times.

Exactly what we were thinking. We actually thought of doing the opposite. (elastics stretching the arm downward to help for hanging) But now we’ve got some other plans as well… :wink: