DCMotors with different RPM

Hello,
We recently bought the FTC Master’s Kit from GoBilda and this includes 4 motors, 2 of 117 RPM and 2 of 312 RPM. We used these motors for our mecanum wheel chassis and we noticed that the 312 RPM motors were moving faster (obviously). To solve that, we multiplied the final value with 0.375 (in the code) (312 * 0.375 = 117). But those two motors are still moving faster than the others. What should we do?

Can you provide a link to these motors? If they’re simply using a different gear reduction, you could synchronize the speeds. If they’re totally different motors, it’ll be more difficult, as the relation between voltage and speed will be different.

Either way, you should very strongly consider just getting four of the same type of motor.

3 Likes

Do you have any feedback on those motors? Your target is a set velocity, and voltage input doesn’t always correspond to velocity output. You may need to throw a velocity control loop on them to keep them at a consistent speed.

Or as Soloman said, probably the easiest option is just to buy the same motors.

Here are the links of the motors
312 RPM: https://www.gobilda.com/5202-series-yellow-jacket-planetary-gear-motor-19-2-1-ratio-312-rpm-3-3-5v-encoder/

117 RPM: https://www.gobilda.com/5202-series-yellow-jacket-planetary-gear-motor-50-9-1-ratio-117-rpm-3-3-5v-encoder/

Thx

So yes, they’re the same motor. One spins exactly 50.9/19.2 as fast as the other, but probably not exactly because of annoying things like friction.

I highly recommend that you use all the same motors on your drivetrain, especially for mecanum. It will make every part easier. If you don’t have 4 of the same motors, then maybe just use 2 motors on your drivetrain and make it a tank drive.

I agree. Get 2 more of one of the motors so that they are all the same. In addition to the needless headache you are handing to your programmers to try to compensate for the different gear ratios, you are robbing your robot of potential. By running the faster motors slower, you are robbing your robot of speed without gaining the extra pushing power that the slower motors will give you.

Without knowing what size wheels you are using or whether you are driving those wheels with direct drive or with some sort of gear reduction, I would recommend getting 2 more of the faster motors. My personal assessment of the game strategy is that speed is going to be a good strategy for this year’s game. There are actually fairly long distances to travel from the depot to the scoring area where you can take advantage of speed and I believe that being zippy will help maneuver around the traffic jams that will occur in the loading end of the field as all 4 robots try to get around each other as they cross the field. This has been pretty well validated by the recent world record matches that I have watched. So, I think you are going to be happier with the faster robot. Save the slower speed motors for mechanisms where you need the extra power.

Good luck!

1 Like

As has been stated, it’s best to use the same motors. Voltage to speed is not a 100% correlation and considering the gearing is different, each of these motors is running at a different point in their power curve - the “faster” assemblies are likely going to produce less net power as a result.

Could you get it to work - sure. I tell the students “If civilization collapsed, it was the zombie apocalypse, no more of these are available, and my time had no value, we could make or fix this - but it hasn’t, it isn’t, there are, and it has value so let’s just buy the right part.

You’ll save a lot of time and get way better results by just using all the “same” motors.

– Chris Herzog, Joliet Cyborgs #4241

2 Likes

Definitely not, because the normally slower motor is capable of generating 2.6x the torque of the faster one. If buying two more motors is not an option, perhaps you could do a 3:8 reduction of the fast one (or 3:8 increase of the slow one) using belt or chain.

To elaborate a little more on the programming side:
The most basic code for a motor controller often allows one to only set the power of the robot. The power does not guarantee a speed. If your battery is low, the speed changes. If the center of gravity is different, the speed changes. If the motor wears out, the speed changes. Thus, while it says it can turn at a certain speed, that is never a given. Some sort of feedback will have to be provided in the code so that the robot actually knows how fast it’s going. Then, you can use control loops to start setting speeds instead of setting powers.

The Ideal solution
Ideally, you switch motors so they are all the same. However, we live in a realm were sometimes ideals are hard to achieve, and the benefit of the best solution can be only a little more than an okay solution. While I wouldn’t assume what time schedule you have, I know team that in a similar situation would be done with their final FTC event of their competition year this weekend before new motors even shipped. Thus, below is the not best solution, but one that is possible to implement quickly before a more long term solution is reached.

The Faster Solution
While powers aren’t the best to work with, they can get you pretty gosh darn close. Multiple the powers by the theoretical amounts. Then try driving the robot. Does it feel correct? If way off, adjust the constants until driving feels better. Then, let the driver drive it for awhile. While it wouldn’t be perfect, the human mind is a wonderfully smart thing, and can compensate for a certain level of inconsistencies. The more they drive, the more they can train themselves deal with the issues. This isn’t a permanent fix, but a good enough one for the time being.

If you have anymore questions, feel free to reach out to myself or any other Precision Guesswork member, we have both an FRC Team 1646 and FTC Team 17012.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.