Having issues with weight/power

We changed our robot design to have a claw powered by motors (we had a dumper bot before). We tested the arms with one star and the arms were falling on their own when we started to lift it up. (So we would not be able to lift the cube or multiple stars). The arms have a 1:7 gear ratio powered by two motors (on each side - 4 motors total). The arms and claw are all made out of aluminum and we tried to make it as light as possible. We are working on adding elastics to the arms to create more torque.

I was wondering if there is any other solution to this issue, other than adding elastics, as this has been a reoccurring issue for our team. We always see other teams at competitions that look like they have more weight than us, but can lift more than us. What is the reason for this?

Teams are comfortably running 1:5 using 4 motors and lifting 2 cubes without elastics. Post some pictures and your code; that way we can really see what you’re doing.

I don’t have the code with me now as another person in my group takes care of the programming. But I know that we don’t have any special coding, just which motor ports go to which channels. Anyway here are pictures of the robot.
IMG_3569.JPG
IMG_3571.JPG
IMG_3572.JPG
IMG_3570.JPG

So the issue looks to be in the claw, not the lift. Honestly that is one of the most well built lifts I’ve seen on the forums.

I think the biggest issue with that claw is that 1) you are using an old 3 wire motor and 2) you’re only using 1 motor. If I count correctly, you have 4 motors on the lift, 4 motors on the drive, and 2 motors on the strafe wheel, which should leave you with 2 more motors. See if you can use two 393 motors on the claw; that should help a lot.

I think the gearing on your claw is much too aggressive, and a second motor would not hurt. You are driving 36:60, or 3:5. A successful claw would be 1:5 or 1:7. It would be a little slower to close, but the claw would definitely grab game objects more successfully.

“Slow to close” is actually relative. Do the math. A 393 (or 3-wire motor for that matter) will run about 100rpm with no load. Reduce that assumption to 60rpm (pretty typical) to account for the fact that you don’t expect your motor to run at full speed when it is doing work, you can see that the motor is turning one full revolution every second. Since your claw design moves only a half-revolution, if you were using ungeared motors (with no reduction) your claw would fully close in .5 seconds. Change that to 1:5 gearing (multiply that .5 seconds by 5) and fully-open to fully-closed time increases to 2.5 seconds. In the real world, of course, you will rarely go from full open to full closed, so your effective grab time is around a second or so, and you will have about 3 times the force applied to the objects your claw is carrying. I’m more conservative than most teenagers, so I would actually use 1:7. Getting a firm grip is more important than ultimate speed. Also, rubber bands. :slight_smile:

Do you really think the problem is the claw and not the lift? Because we had 2 393 2-wire motors before for the claw and it was no better. We changed to have only 1 3-wire motor as we wanted to reduce the weight of the claw so it could be raised by the lift. The claw has no problem in opening and grabbing.

Maybe, I may have been somewhat unclear about the problem, so let me restate it:

When we lift the claw (which is holding a star) the lift starts to fall on its own. So we can’t have the lift halfway up without it falling down. The lift is having issues with the combined weight of the claw and star. In the past we have tried to decrease the weight of the claw and/or add elastics for extra torque. Neither were enough to solve the issue. If we were to add another motor, wouldn’t the problem of the lift falling not be solved? Since this issue is occurring when we are lifting one star, our robot will probably not be able to lift multiple stars and/or the cube.

Hopefully this makes more sense if I was confusing before. I just don’t understand how the claw is the issue when grabbing is fine but the lift is falling when it’s raised.

Try setting the lift to a holding power of, say, 10-20. That should keep the lift at the same position. If you want to take it a step further, look into PID.

What’s the internal gearing of the lift motors?

Shouldn’t make a difference unless there are turbo motors in there. High speed motors on a 1:7 is 1:4.4, which should be adequate.

So from what I am understanding, you are saying that if you raise the arm with a star and then stop it midway in the air, the lift just falls back down. What I would first check is that all of the motors are working because if any of the motors is damaged or very old, it may not provide as much torque as another working motor. Also, how many stars/cubes are you able to lift in general? I don’t mean how many your robot can hold in the air, but how many can the robot actually lift with its sheer power and dump them over the fence. As long as it can lift 5-6 stars, then you should be able to get away with using a potentiometer on the arm that tracks down the current position of the arm, and then it will hold the arm’s position when no button is being pressed. I can post some code to get you started if you want.

How would we set the lifting power to 10-20? Also what is PID?

All the motors are fairly new and aren’t damaged. We have only tested lifting one star because our class only has one star. We can’t test multiple stars or cubes. To answer your question, we can lift one star and dump it over the fence.

Since your class only has one star, it might be helpful to measure the weight of the star, and then find something of similar weight and use multiple. Try to get your robot to pick those up just to simulate having multiple stars. Also, if you would like help with the potentiometer thing, I can help you. It is very simple and I can easily explain it to you.

You could set the motor to 10-20 by using a potentiometer and if statements like this:
if(SensorValue[armPot] == down && buttons to control arms are not being pressed) {
motor[armMotorR] = motor[armMotorL] = 15;
}

PID is a control loop that stands for proportional, integral, derivitive, loop control. It is used to make
motor’s movements very precise. A basic overview of PID can be found here.