In section 9.5 of the VEX Curriculum, it shows how to calculate the required gear ratio/reduction based on the Speed of the robot you are trying to achieve. It goes over the circumference of the wheel and how much distance is covered by each revolution. However, it uses the Motor shaft Free Speed (i.e. No Torque Load) of 100-RPM to calculate how fast the robot would go based on a certain gear reduction. However, isn’t this completely useless, because you’ll never have a 100-RPM Free Speed / No Motor Load situation? The motor shaft is hooked up to a robot which has weight, such that there will be an inherent existing load on the shaft even with no gears set up on it. How can we determine the real RPM of the motor based on a certain robot weight/gear/wheel/structure configuration? For example, with the Clawbot, when you start driving it forward, the motor shafts are not simply spinning at 100-RPM and transferring that speed through gears to a wheel speed, right?
It isn’t “completely useless”, but you’re onto something, the motor will never be under absolutely no load. But the load it is under decreases as the robot accelerates and levels off near the free speed as the robot reaches its max full speed. Inertia helps keep the robot moving, and once at speed, the only force the motors need to exert is the force to maintain speed against friction and rolling resistance. The drive motors are only under full load when accelerating from a dead stop, or when pushing against a wall, etc.
A rough estimate lots of robotics builders use is about 81-90% of free speed is your “actual” top speed, and this speed loss constant varies widely depending on a number of factors that are hard to quantify in advance. The only way to know your robot’s actual top speed for sure is to measure it. One reason free speed calculations are useful is that you can be sure the robot will never go faster than that speed.
Motor rpm also depends on battery voltage, and it is not uncommon to exceed the “free speed” under load with a fully charged battery (ie over 7.2V).
Thank you so much this is great information. You wouldn’t happen to know off hand how to calculate the rolling resistance if we know say for example the number of wheels attached to a certain number of motors and weight of the robot and the friction coefficient for the floor material and wheels?
Also it would seem to be very important to calculate the initial load on the motors necessary to overcome stationary position and to accelerate the robot to rolling speed. Isn’t this initial condition important to determine if the motors have enough to work to get the robot moving initially?
I meant to say enough torque to get the robot moving
Some of our guys have taken fish scales or luggage scales and pulled slowly until the robot moves. I can’t remember if they unhooked the shafts from the motors though. That gives the force required which then gets to the torque requirements at the wheels.
You can’t really calculate those things in advance / during the design phase as far as I know, you can only estimate. So much of rolling resistance can be changed by tiny factors like how straight your axles are, how square your frame is, quality of gear mesh, grease in your motor gearboxes, etc. etc. that it’s just really difficult to figure out in advance. That’s why a lot of people just use a “good enough” estimate and adjust the free speed down by a constant factor to guess how fast the robot will go. I would recommend checking the actual speed of a robot you build and comparing it to theoretical to derive your own speed loss constant, if you really want to be accurate with this stuff.
The initial load on the motors is indeed very important to know, and this is as simple as calculating the torque needed to move a robot of your weight with a given set of wheels. For traction-limited drivetrains (if your robot pushes into a wall, the wheels spin out in place rather than fully stalling the motors), you can figure out the maximum tractive force your robot can put out as a function of the coefficient of friction between your wheel tread and the ground, as well as the robot weight. If this force is below the stall torque of the motor (converted to pushing force with the gear ratio and wheel size) - you are traction limited, otherwise, you’re torque limited.
It’s pretty hard to build a robot whose motors are completely unable to even start the robot moving, if you stick to reasonable gear ratios.