The do's and do not's when shifting

My team just recently got a 3 Cim Ball Shifter with a 3rd stage for our drive train this year. This is our first time using shifting gearboxes so we are a bit new to all the concepts like when to shift, where we should place encoders, and dealing with 6 Cims drawing a large amount of current with out tripping the 120 amp breaker. Any experience you could share would help my team out a lot.

Shift down when you encounter resistance (another robot, etc) - stay in high gear otherwise. You can also shift down if you want more precise control.

Shifting for acceleration (gunning it in low and then shifting to high) doesn’t generally pay off well enough to justify it.

If you have the programming skill to do it, consider adding the option to auto-shift to low when the PDP sees current spikes on the drive motors. Six CIMs with high gearing can and will trip the main breaker or brown out the RoboRIO, and good code can react faster than a driver.

Encoders can be placed anywhere you would on a normal drivetrain. Depending on where they’re placed and how they’re used, you may need to compensate for the change in ratio elsewhere in the robot in your code to get an accurate reading.

Make sure to slow down before you shift in matches. Shifting from high to low while moving fast tends to cause wear on the gears (they grind). You should be fine to use high gear at most times in a match. Low gear you really only want to use if you get into a pushing patch.

This is a good suggestion. You can implement a racing trick here and if you do it right your driver probably won’t event notice. All you have to do is cut motor power significantly for a very brief time while you shift. This will change loading on the gear train enough for the shift to happen quickly and limit the grinding as described above.

Shift down when you encounter resistance (another robot, etc)

Well. Shift before you encounter the resistance. It’s hard/impossible to downshift once you’re already in a pushing match, due to forces on the shifter locking you in whatever gear you were in.

Shifting for acceleration (gunning it in low and then shifting to high) doesn’t generally pay off well enough to justify it.

I’ve done this before. It depends upon how high you gear high gear, if it’s too high then you’ll need to start in first and shift up. But definitely keep in mind, one side of your drivetrain will always shift before the other, due randomness of the dog slot and your robot. So if you shift up to high speed without letting off the gas, you may find yourself facing a different direction than you were before shifting…

Make sure to slow down before you shift in matches. Shifting from high to low while moving fast tends to cause wear on the gears (they grind).

Advanced mode: Purposefully return the controls to neutral/brake and downshift any time you need to slow from high speed. This allows you to slow down without inputting motor power (except for the internal electric brake). If you slow down by inputting reverse power, you may quickly find yourself tripping your motor controller overcurrent protection.

The ‘gears’ won’t grind, and the mechanical people can replace the shift mechanism after every match no problem.

We used 2-CIM ball shifters all of 2014 and for many outreach events from then until now and haven’t encountered any gear shredding problems, but I do think it is better to be safe than sorry. Like a previous commenter said, cutting motor power during high-to-low shifting is a good idea and i’m going to have my team implement it this season.

This is true for dog shifters, but not always for ball shifters, depending on the pressure your pneumatic is set to, if you’re using a larger bore cylinder than stock, etc.

In general lots of advice in this thread applies to dog shifters more than ballshifters.

So would placing an encoder on the output shaft of the gear box and limit the motor power based on that be enough to prevent overdraw or would we have to monitor the rpm and current draw of each individual cim using a CIMcoder and a current sensor on each motor?

You could infer the stress on your motors with a single encoder value per side compared to the commanded motor speed, over a sustained period of time (you don’t want to shift down for a fraction of a second just because you accelerate hard). Doing the same thing with the built-in current monitoring functionality of the new power distribution panel is a lot more straightforward way of doing it though, since you get the actual value (the current) which causes bad things to happen.

So would placing an encoder on the output shaft of the gear box and limit the motor power based on that be enough to prevent overdraw

This is a crude but potentially effective way of estimating motor load, using the commanded motor power, the motor speed, and the current gear ratio.

or would we have to monitor the rpm and current draw of each individual cim using a CIMcoder and a current sensor on each motor?

All CIMs on the gearbox will turn the same speed, so you can use a single encoder as part of the gearbox to get both wheel speed and motor speed (taking into account what gear is selected). Talon SRX motor controllers have built in current sensors for individual motors, which can be accessed through CANbus.

This can allow code that can automatically shift gears based on both speed and motor load. Related code can back off the drive motor power and even shut down other motors such as the air compressor to stave off a brownout (with its subsequent total cutoff of motor power).

Auto shifting needs hysteresis and possibly a time delay to prevent rapid cycling when right at the threshold of low gear and high gear. Keep very close tabs on wear and tear, as the gears will get torn up much faster when driven hard with automatic shifting.