Diagnosing Belt Skip Under Load

Our belt driven intake arms are currently experiencing a lot of skipping (ratcheting) when accelerating and decelerating. Our arm pivots on a shaft that stretches the front of our robot and is driven by two Bag motors + gearboxes. A 18 tooth pulley from the gearboxes drive a 36 tooth pulley on the shaft/arm. The full arm can be seen in the video below.

What seems to be happening is that when the arm drives to drive the gearbox, even when unpowered, it often skips the belt on the smaller pulley. So when we are powering the arm, it skips when trying to stop because the momentum of the arm is trying to drive the small pulley.

The tension of the belts seems reasonable (one belt is slightly tighter than our KOP drivetrain belts, and the other is slightly less tight [resulting from fab inconsistencies]), though adding tensioners is possible. As best as I can tell our alignment from pulley to pulley is fine.

Can anyone comment on possible causes or suggest ways to fix this? We expected the belts to stop and stall the motors before skipping. Right now this is making PID control of the arm pretty much impossible, making it very very difficult to accurately control it and intake balls. About a week ago we made a video of the problem to ask a couple of friends, you can watch that video here.

Any advice is greatly appreciated.

we also use a belt to actuate our arm, but we use a different technique.
you can see the belt in action here My guess would be, like you mentioned, that your arm gets momentum and your motor stops too fast. We have a similar reaction when we cross the rock wall, the arm wants to go forward on the landing, but the PID keeps it in place, making the belt skip sometimes when the shock is too hard. Putting more tension in the belt seems to make it better

You could try slowing down the rotation of the intake. It seams to be moving pretty fast. It also appears as if the belt skips when you suddenly stop so if you were so ramp down the speed before you stop that may help.

Maybe the shafts holding the small pulleys are deflecting. What kind of belts/pulleys are you using?

The problem is definitely at the small pulley. It’s not simply supported so I wouldn’t be surprised if the position of the pulley flexes a bit under high acceleration, not much you can do about that though. I’m assuming you’re using the VexPro htd belt.

Things that would help:

  1. Switch to 24t pulley. Would slow you down a bit but probably not super noticeable, you’re pretty fast already.
  2. Switch to GT2 or GT3 belt from sdpsi.
    (Edit: scratch that one. GT series are better with power but HTD might be better with shock loads due to deeper profile. Don’t have personal experience on that. Jury is out)
  3. Limit your acceleration in software. Even a small ramp will help enormously. This is probably the best option as you don’t need to buy anything else and will probably make the biggest difference.

Higher tension would probably help with the skipping, but may not be the best solution (depending on how tight things are already)

If I got it correctly from the video, you have a 63 to 1 reduction with a 2:1 reduction after that. The bags are about 1/5 the torque of a CIM, so 1/10th the torque of a 2 CIM drive. I am going to use a drive ratio of about 10:1 for comparison. Also, your driving pulleys on the arm looks about 1/3 the size of the output pulley in the drive. Given those rough estimates, you are running slightly more torque through each belt at stall (about 1.3 times), with the force at the teeth being significantly higher (about 4 times).

You also have a lot of inertia in that arm and a less backdriveable mechanism (due to the high reduction and planetary), so as the mechanism suddenly stops you are going to get peak loading that is higher than the stall torque of the motor, which is not going to happen much with your drive transmissions. This matches with your slipping appearing to happen most often when you are stopping the arm suddenly going down (down being more prevalent than up because you have gravity adding to deceleration forces).

I think the belt slipping is coming from your application being outside of what those belts and pulleys are rated for (and beyond what you are asking of the drive belts), although you could work through the exact calcs yourselves to check this (Gates light power and precision manual is a good resource on this). Some thoughts on solving this problem is you could go to wider belts and larger belts, or switching to something like #35 chain (hopefully combined with larger sprockets). You could also try motion profiling your arm to reduce the loads on the belt when lowering the arm.

VexPro HTD. We had considered switching to a different tooth profile, but I am not sure if belts/pulleys are available that wouldn’t require us to remount the gearbox at a different location. Remounting should be possible, but is currently a challenge with the holes already in place for this mounting and the clearance holes for shafts/bearings.

Wider belts is an attractive option, we actually have spares of those pulleys (18T & 36T) and I wonder if simply doubling up on belts on either side might help.

As for controls, we tried a trapezoidal ramping function in combination with PID but couldn’t get good motion out of it (usually the I term would build up too quickly while the voltage ramped up). PID is critical for us because we need to be able to hold the arm steady for our ball-intake position. Motion profiling might be a better option, though it would be new for us.

I’d also suggest increasing the belt wrap on the smaller pulley with a tensioner. The belt can be pulled pretty tight around the pulley-almost meeting the other side.
More teeth take more force.
Possibly incorporating a small gas shock to relieve the shock loading.

You meant “gas spring”, right? :slight_smile:

I agree with several previous posts that the problem is the small pulley. The problem is that you do not have enough “teeth in mesh”. Slowing down and/or ramping will definitely help, but it is band-aiding the problem.

From your video, it looks like the belt is 120T which with 18 -> 36 pulleys puts your center to center at 9.1371inches (using http://www.wcproducts.net/how-to-belts/) and teeth in mesh of 8.6. This is very low and given the small 18 pulley the best you can realistically do with an idler would be maybe 9.5.

We had nearly an identical belt problem on our intake and switched a 36T to 60T with 140T belt which has a similar center to center of 9.0247inches (slightly tight on the 9.14inch hardware) and 17.2 teeth in mesh. The available torque goes up over 3x. If you are willing remount motors, there are other configurations that are smaller but still get more teeth in mesh. (24T->42T pulley 120T belt, 8.55 center, 11.5mesh)

Good luck and let us know what works for you.

PS: looks like you are already using 15mm belts and pulleys so I did not initially suggest wider belts. The 15mm pulleys can handle two 9mm belts which gives you 20% more width basically for free.

THIS IS A GREAT IDEA! Do you have a link to where we can find information on how to limit acceleration using LabVIEW?

Thank you.

The simplest (assuming you are using CAN) is to use the new motion profiling built into the SRX. Either way, you should read the CTR documentation to understand what motion profiling is and what it is trying to do.

Last year we did motion profiling to keep from dumping stacks of crates. We used a spreadsheet called MotionProfile_Capiloli.xlsx (from VEX) as a model. Basically, we apply a voltage ramp limit and then an averaging filter to the set point we send to the speed controller. PM me if you cant find the xlsx online or if you want more info. We code in Java.

If the belt is ratcheting under load, then software solutions will only help you until your first rock wall, moat, or rampart crossing. Then you’ll get the shock loading from physics instead of your PID, and you can’t reprogram physics.

We’ve had this problem on drivetrain belts using the Vex plastic bearing blocks when the students put the cam tensioner on the non-belt side of the block. Also on other systems where structure between the pulleys is questionable. What happens is the belt loads up and the tension pulls the two pulleys closer together. This both puts an upper limit on your effective tension, and it adds misalignment into the mix which makes ratcheting more likely. I’ve usually diagnosed this by simply squeezing the two sides of the belt together and observing the shafts and bits of structure. If you see something moving when you squeeze the belt together, that’s your weak point that you have to lock down. Your structure looks pretty solid, but it’s had to tell from a video of the thing whipping around like that. If you try this and decide you need to beef up your structure, I think your best option would be something like a 1x1 aluminum tube with vex end-mount bearing gussets directly between the two shafts.

The other option is that you’re simply overloading the belt. They can only transmit so much tension before ratcheting or breaking after all. I’m going to disagree with everyone else here and declare that the small pulley is NOT your problem. Or at least not your only problem. You almost can’t get more wrap around that pulley, after all. The problem is that both of your pulleys are too small. Bigger pulleys mean bigger lever arms, mean less tension in the belt to transmit the required torque. I’d go with gptelli’s suggestion of switching to 36T->60T or something similar. You definitely want the 60 tooth pulley on the arm, since that’s what really drives the loading of the system.

You can also apply voltage ramping while avoiding the complexity of motion profiling. The SRX lets you supply a voltage ramp value right into the PID block. Though when the ramp is too shallow, it’s easy to cause a lot of oscillation.

Also, if you want a quick and dirty fix, make sure the motor controllers for those motors are set to coast and not brake. This may or may not fix your porblem, but it only takes a few minutes to test it :slight_smile:

We are planning to increase our driving and driven pulley size and also increase their tension slightly based on gpetilli’s recommendation. I would also like to look into better programmatic control but so far we haven’t gotten a solution that we are happy with.

We need PID control so that we can hold the arm in position to intake balls, but a ramp function tends to cause the I term to accumulate too much and we end up with massive oscillation. We also looked for PID values that would reduce acceleration/deceleration but we weren’t able to eliminate steady state error.

Does anyone have a good recommendation for a way to maintain relatively accurate control over the arm but reduce acceleration and deceleration forces? Motion profiling is certainly a possibility, though tuning it without a practice bot is going to be a big challenge for us.

It looks like the hex shaft that your arm pivots on is supported by one of the green plates on each side. Is it possible that those plates are flexing? It is not clear from the angle that the video was shot at if there is room to add the brace that Kevin suggested. There appear to be some spacers between the sprocket on the hex shaft and the green plates on each side but I could get a good view of the gearbox end.

We are fighting a similar issue but in our case, the torque on the arm is probably causing the center-to-center distance of our gears to increase, leading to the gears skipping. We have our VP mounted on a rather thin plate that is only supported on one side allowing it to flex under load. We may end up using the same solution that Kevin suggested for you.

Providing a few clear shots of the mechanism from a few angles, and a couple overall shots, might help folks help you figure out if there are some mechanical fixes you could make.

I tried watching the video but didn’t get too far, the camera was moving to fast for me to follow.

Agreed with all above who posit that there are not enough teeth in contact on your pinion (smaller pulley).

It’s just asking too much of those few teeth. If you could get some slack in the belt and add an idler close to the pinion for more wrap, I think your problem would be solved

If we decided to switch to #35 chain, how does a pinion sprocket of 15 teeth sound? We don’t have a lot of room with the VersaPlanetary right next to the output, and are currently restricted by needing a hex shaft for the pinion, but 15 tooth sprockets are available.

As my mark was off for how many belt teeth would be needed, I wanted to get some opinions on an appropriate number before committing.