Robot Calculations

Hello there,

I would like to calculate the gear ratio necessary for the drivetrain of my robot.

This year my team is implementing the “lynfield drive” on our robot. Currently we have 2 HS motors internally geared for torque on each side and another 2 HS motors on the back for horizontal movement. We are aiming for our robot to be 12 pounds or less. The robot is using the 2.75" double roller omni wheels. It is going to be mostly made out of aluminum, so we should not have problems with stalling the motors. How do I calculate correctly the gear ratio necessary to run the motors at an efficiency of 50-60%?

Thanks in advance.

These types of drive trains are extremely inefficient in terms of motor power due to the fact that you only have 2 motors running at any given time for vertical/horizontal movement. If you want the maneuverability of this type of drive train i would recommend a holonomic drive train because they are at least more efficient and retain equal if not greater maneuverability.

The type of drive described is a holonomic drive system. A holonomic drive can be any drive that allows for omnidirectional motion. I assume that you meant to describe a 4 wheel X or + configuration? If so, why are those systems more efficient and why do they have more maneuverability? I’m not saying that you’re wrong, I just want to know if you have evidence suggesting this.

Thanks for the responses,

We have experimented with different drivetrains and concluded that this particular one gives us the most space for our intake. The “X” holonomic drive does not give us the space we want for our intake. We believe 2 motors for vertical movement is enough on a 12 pound robot. Furthermore, if you think about it, most times we will be moving diagonally. Putting the efficiency of the drive aside, how can I calculate correctly the gear ratio?

The best way to calculate the gear ratio is by experimentation. Measure how quickly the motors are turning and thus what percentage of the free speed (RPM) they are running at. Time how long it takes your robot to go 10 feet (little less than length of field), divide that 120 inches (the 10 feet) by the circumference of the wheels, divide by your measured time (in minutes), then you have your RPM. If it’s much more than 50RPM (>75), you’ll want to gear for speed, and if it’s much less than 50RPM (<25), you’ll want to gear for torque. If you do this test driving diagonally, you have some weirder math to determine the RPM of the motors (for a 45 degree angle of driving: multiply the RPM you get from what I described by 1.4 to get the actual RPM).

One thing I would ask is do you really need 2 393s for the back two wheels? That seems like a lot of power that you won’t be using all that often. If you are planning on moving diagonally most of the time, however, you will be utilizing all the motors in the best way you can.
Going 1:1 with 2.75" wheels is fairly slow (.6 ft/s at 50% free speed), but with only 2 393s it may be your best option.

I do not believe it’s necessary to place 2 HS motors for the back wheels. I would like to place 1 393 and 1 269 motor on each side and place 2 269 on the back. However, my team members disagree with this configuration because they find it “unnecessary” to have a 6 motor drive train with 2 393s for the lift. Is there another way of calculating the theoretical gear ratio without the using the robot?

As for the speed, we were thinking gearing it 1:2 for speed with HS chain, but we do not know if this is possible without stalling the motors in gameplay.


There’s not really another way because it’s hard to figure out how much force it takes to move the robot without actually moving the robot.
However, for an average sized robot, 2 393s powering 2.75" wheels on 1:2 (for speed) should be fine as long as you don’t plan on engaging in any pushing. My team is doing 1:3 (for speed) with 4 393s on the drive with 2.75" wheels, just for comparison.

The best way to find out for sure is to test and see, but 1:2 should be fine.

When we ran this drive system in round up, we had one 393 and one 269 on each side of the drive, and the drive ratio at 1:1.5 for speed on the big wheels, on each of the strafe wheels we ran one 269 up until worlds, where we only ran 1 393 on one of the wheels… (WE HAD A REALLY REALLY REALLY WEIRD MOTOR CONFIGUATION… 4 motors forwards drive, one strafe on the back wheel, 2 on our intake, and 3 on the arm… a 393 on one side and two 269s on the other…)

Anyways, what we ran up until worlds should be fine for a 12 pound robot, unfortunately we cant have strafe or this drive layout this year as we need all 6 motors on forwards drive… (robot is 20 pounds…) otherwise we probably would run this layout (its our favourite) :stuck_out_tongue:

EDIT: you will need to recalculate for small wheels, i think it is about 2.5:1 on small wheels

EDIT: also, why do you only have 4 motors for drive? where have the other 6 gone? :open_mouth: i suspect a fancy intake or lift…

Ok, thanks for the tips.

The configuration of the motors on your robot drives me crazy. 3 is not a pretty number lol.

We first wanted to make sure we have enough power to lift our intake, then take away any motors we don’t need and place them somewhere else.

I remembered that yesterday I was searching for “calculations” and found this formula in this thread.

(Desired % of torque from motor) * (Total Stall Torque from motors)
__________________________________________________ _______ = (wheel radius) * (weight) * (CoF)
(gear ratio)

It’s pretty self explanatory, but is it accurate?

if you think about it, the X drive trains are more efficient than the other style, because you have all 4 motors powering in either direction. Although they aren’t going full power, they are NOT going HALF power, therefore they are more efficient.

Actually, in a X holonomic drive, you are only using 2 motors in any direction. To confirm this, look at the vector addition. Lets focus on the front part first: you have one wheel like this: / and one wheel like this: \ correct? both of those wheels are at 45 degrees to the horizontal axis of your robot. This means that, when driving forward, 1/2 of each motor’s power is directed in the forward motion. Same for the back part of the robot. In all, you are only getting the power of two motors in any single direction.

Actually, you would not get 50% power. You would get 70% because if you take the force vector, which is at an angle of 45 deg, and we are only interested in the motion along the Y axis only for this discussion. so we take the sine of 45 deg (or cosine of 45 deg) and the result is .7071 . I rounded down to 70% to take into any account any friction from the rollers on the omni wheels.

The other scenario is that we are traveling in a direction 45 deg to either side of straight. in which 2 of the 4 motors are traveling at full power, and using all of it. The other 2 motors are stopped. So this uses 50% of potential power. All other angles will be somewhere between 50% and 70% efficient, depending on direction of travel.

I’m sorry, you’re right. it would only be 50% if the wheels were at a 30 degree angle. Our team used to offset the wheels from the 45 degree angle to get faster motion forward, while reducing strafe speed.

That’s a pretty neat idea, although writing some really good code for that could get kinda tricky.

Yeah, the code normally used to make the robot follow the joystick’s direction on wheels tilted 45 degrees had to be changed quite a bit.

(Desired % of torque from motor) * (Total Stall Torque from motors)
__________________________________________________ _______ = (wheel radius) * (weight) * (CoF)
(gear ratio)

Does this formula provide accurate results?

This relates to some of the discussion here, but not the original thread. (in hindsight). Sorry OP

I was going to do some research into this, (There is some AURA internal documentation that I and others started), but then University and life kind of got in the way.

Our initial empirical testing showed that friction plays a fairly significant part in reducing the speed of the robot, at least for Vex components (compared to theoretical speed) when it has an x-drive configuration.

We produced a robot that had an 18% increase in speed when the wheels went from 0deg to 45deg. In theory the increase should be 41%. AURA plans to do more research into this as time permits.

This formula would be used to make sure your wheels get traction (won’t slip).
That “Desired % of torque from motor” should really be 100% so you don’t slip when trying to push something (when you’re moving slow or not at all).

See these formulae:
To avoid slipping:
(total stall torque of motors)/((radius of wheel)(coefficient of friction))<(gear ratio)(weight of robot)
To find gear ratio, force, or radius of wheel at 1/2 stall torque of motors:
(1/2 stall torque of motors)/(radius of sprocket or wheel)=(gear ratio)(force on chain or ground)
To find gear ratio, speed, or radius of wheel at 1/2 free speed of motors:
(1/2 free speed of motors)
(radius of sprocket or wheel)(2pi)=(speed of chain or drivetrain)/(gear ratio)

  1. Can you explain more in detail “slippage”?
  2. For the second formula: (1 393 and 1 269 on each side), force = weight of robot?

22/1.375 = gear ratio * 10

gear ratio = 16 / 10 = 1.6

Is the gear ratio for speed or torque? It does not make sense if it’s for torque because as the stall torque increases, so does the gear ratio.

  1. What is free speed of motors?