Static Friction

The other day when a team mate and I was working on a demo robot of ours I had a thought. Is there some formula that I can use to see if the gear ratio I am using will actually make to robot move and turn with ease? We always ran into problems with our robot when we tried to use a 1:2 drive ratio and our motors would overheat and the robot would just not turn and then it would just take so much time to get rebuilt and fixed. I much rather do some extra planning so that I can avoid that. Im in a physics class but nothing would really apply to our robots so does anyone have anything that may help me out? or do I just have to estimate the drive based on the weight and number of motors? a quick reply would be excellent as we go into our design stages within the next couple of weeks. thanks

RobotC or EasyC?

We ran into a similar problem, here is a snippet of our code, RobotC:

motor[LBW] = motor[LFW] = vexRT[Ch3] - vexRT[Ch1]/1.3;

We turn using a singular channel, so I just divide that value by 1.3, slowing the turning down, but not the actual drive.

we are using EasyC v4. is there actually a way to find this out with programming?

Give this a try:

F = umg
Where F is the friction force, u is the coefficient of static friction, m is the mass, and g is the acceleration due to gravity.

In order to find u, you will need to do an experiment or two. One way to find this is as follows:
First take a robot with the wheels of your choice on it. (You will be finding u for those specific wheels.)
Lock the wheels somehow, to keep them from being able to turn at all.
Take one of the foam tiles that is used to make up the VEX playing surface on the field, and place it on top of something flat and sturdy, so that it will not flex.
Now, place your robot on top of the foam tile, and begin to lift up the front or back end of the tile (with the flat, sturdy surface underneath it) and continue to slowly lift it until the robot starts to slip. Now measure the angle that the foam tile is from being level. (Not necessarily level with the ground, but in most cases that would be accurate enough.)
Finally take the Tangent of that angle, and you will get the static coefficient between the foam tiles and your wheels.

NOTE that if you do this, I’m sure many, many, many people here on the forum would be very grateful if you posted your results. :slight_smile:

So, now you can go back and use the formula F = umg, and find F. Once you have F, multiply that by your wheel radius, and you should have the maximum torque needed for your robot. (I know you are looking for speed, but this is what I know at the moment.)

Hope this can help you in some way, and I’ll try to get back to you on how you could possibly go about finding a possible speed, once my brain is working a little better.


EDIT: Okay, so as usual when my brain isn’t working well I miss something stupid simple. Take your available torque (torque of all your motors on your drive added together) and divide that by the torque needed. (what you just calculated by multiplying F by your wheel radius) The number you end up with is the highest amount you can gear up your drive. (For example: If the number is 3, the maximum gear ratio you can have on your drive would be 1:3, geared up.)

Please note that this is the maximum amount you can gear up your drive. Also that turning with a wide wheel base is much easier than turning with a thin one. I don’t really know much on that, maybe someone else could help out here? But I suggest that you go down ~60-70% on that number you calculated, to make up for gearing efficiency, turning, and very importantly the fact that the torque you were using is the stall torque of the motors, and you definitely do not want to be running your motors very close to stall all the time.

There was some paper on ChiefDelphi a while ago that describes **turning **math for robot drive trains in great detail; I did some searching, and I think I found it here

Jordan/LegoMindstormsManiac’s math for static friction vs torque applies if you want enough torque to be able to spin your wheels while pushing a wall, but I don’t think it applies to turning.

The problem with turning a skid-steered robot is “wheel scrub”, since the wheels have to skid sideways to have the robot turn. Omni wheels have rollers, so they can roll sideways instead of skid. Are you (Original Poster) already using Omni’s?

Since fields at Worlds will have been sprayed with anti-static spray, their Coef of Static (ha!) friction is likely to be different (reported to be “more”) from your regulation Vexfoam field at home. Those robots already at the upper edge of their performance envelopes may have problems.

If you have enough torque to spin your wheels when pushing a wall, oyu have enough torque to skid steer.

for this step, do i have to use the robot i am testing this for? or do i use one of the same weight? or just any robot?

and for this do i take my gearing and add them like if all my ratios were 2:1 with four motors would it be 8? or do i just multiply by 2?

Here is a single counter example to disprove your absolute:
Suppose you have a narrow 2 wheel drive robot with most of the weight over the undriven wheels. Since the driven wheels have low weight on them, they have low traction so they spin easily when pushing a wall. The undriven heavy wheels have lots of wheel scrub traction, and a long moment arm, so turning is impossible.

I believe the CD paper I quoted includes math for umg traction of each wheel, as well as center of mass of the robot, and length and width of the wheel base.
To do all the math in advance requires knowing all the numbers in advance of building the robot, which requires some modeling tools. Many teams get by with a combination of experience (prebuild) and expermentation (post build).

isnt the static friction equal to u times the normal force when the robot is at an angle, not Fg or (mg)?

No, from what I know you should be able to do this with any robot, no matter what the weight. As long as it is using the same type of wheels, the static coefficient of friction should be the same. (someone correct me if I’m wrong, I’m not the best with Physics…)

Don’t take any gear ratio into account here. What you are trying to figure out is the fastest gear ratio you can get out of this robot, correct? What you need to do is add the torque of all your drive motors together. These torques can be found on the VEX Product Pages for each motor.
3-wire = 6.5 in-lbs
269 = 8.6 in-lbs
393 = 13.5 in-lbs (As Shipped)/8.4 in-lbs (High Speed Option)

For example, let’s say you have a robot that you want to be powered by two 393 motors (internally geared for torque), and two 3-wire motors. Take 13.52 + 6.52 and you get 40 in-lbs. The total torque of your drive therefore is 40 in-lbs.

Hope that explained everything.


I was assuming most Vex robots would be square shaped or “better”. Long robots aren’t common in Vex because of the size dimension requirements (i.e. the max dimensions do not have a “long” side)

maybe some consider the 18" “long”?
our C team has a maxed out drive base (18") and its doing all right (4 omnis)

4 omnis will always do alright, as they have negligible sideways friction.