While browsing through these forums to develop a better PID, my attention started to wander and I wondered if there was a way to calculate the actual speed of a robot theoretically. I decided I should practice my physics anyway, so I started deriving a formula for this situation.
Variables used:
ω = angular motor velocity
ωf = angular free motor velocity
τ = motor torque
τs = motor stall torque
W = robot weight
μ = coefficient of friction
r = wheel radius
v = robot velocity
Starting formulas:
ω = ωf(1 - τ/τs) slightly rearranged from here or here.
τ = Wμr From here.
v = 2πrω
Deviation:
Once we have the formulas arranged correctly the derivation is pretty easy.
Start by plugging in the second formula into the first to get
ω = ωf(1 - Wμr/τs)
Then, plug that into the third formula to get our final formula
**v = 2πrωf(1 - Wμ*r/τs)**
Example:
Now that we have a formula, to use it we need to determine all of the values for the robot. Both metric and empirical units can be used, but for metric Newtons (N) is the equivalent of lbs not kg (N = kg * 9.80). Also make sure to watch your units (I had to convert from in/min to ft/sec below). Following is an example robot that weighs 12 lbs and has four motors 393 motors powering double roller 2.75" wheels.
ωf = angular free motor velocity = 100 rpm (directly driven, motor specs here)
τs = motor stall torque = 14.76*4 (using 4 393 HS motors)
W = robot weight = 12 lbs
μ = coefficient of friction = 0.84 (see here for other wheels)
r = wheel radius = 2.75 in
plugging in all of the variables will return this
v = 2π2.75100(1 - 120.842.75/(14.76*4))
v = 917 in/min = 917 / 12 / 60 = 1.27 ft/sec
I think the coefficient of friction table linked above is for static friction and not kinetic friction, but I can’t find kinetic friction of the wheels anywhere else. If anyone else has more accurate numbers for kinetic friction please post below. Finally, I am not really sure if this is at all useful because it is easier to actually measure the speed, but it was fun to do and I though I would share it.