July 15, 2015
Case 1: Ball thrown with no spin. A Knuckleball
Case 2: Ball is not thrown but stays between rollers and TopSpins
Case 3: Ball is thrown with a TopSpin
Case 4: Ball stays between rollers and SideSpins around a vertical axis.
Case 5: Ball is thrown with Sidespin
Case 6: Ball spins on a axis slanted at an arbitrary angle
Case 7: Ball is thrown with arbitrary spin
The Robotics Team discussed building a ball throwing robot. We studied a 2 roller tennis ball pitching machine and felt that we could do better.
Ball Throwers traditionally follow the 2 Roller design as shown below.
The rollers turn in "opposite" directions and impel the ball out of the page towards you. The speed of the ball can be controlled by controlling the spin rate of the rollers.
The blue arrows indicate the spin axis of the rollers. To visualize the spin, point your right thumb in the direction of the blue arrow as in the picture below. Your other 4 fingers curl in the direction of the spin.
We can also cause the ball to spin by having the two rollers spin at different speeds. In the figure on the left, the ball can be given a "top spin" by making the upper roller spin faster. For a "back spin", the lower roller should spin faster. Lastly, we can tilt the spin axis of the ball by tilting the entire mechanism, as shown in the figure on the right. The tilt angle can be varied and the ball can be spun sideways.
However, tilting the mechanism is clunky and the goal of this note is to analyze a more elegant design.
The "Flux Capacitor" ball thrower uses 3 fixed rollers to impel a ball. The velocity and spin on the ball can be adjusted by varying the speeds of each of the 3 rollers; there is no need to swivel them. In this design, the axis of all 3 rollers are in a plane perpendicular to the direction of the throw. This limits the ball spin to an axis on this plane, just as in the 2 roller approach. The next design will allow more modes of rotation.
Our "Flux Capacitor" is kind of upside down, relative to the original.
· the rollers contact the ball at points A, B & C (in red).
· the points A, B and C (in green) are projections of A, B & C across the ball.
· that the ball is not getting squished by the rollers.
· there is no slippage between rollers and ball surface.
· roller spin vector direction is indicated by blue arrow (Right Hand Rule)
· ball diameter is b inches
· roller diameter is d inches. For efficiency, d should be much larger than b.
· coordinate x is to the left, y is to top of page, and z is out of page towards you.
· angles are measured relative to horizontal axis, point A is at 90° and point C is at 30°.
All three rollers spin at the same speed and direction.
Say the roller speed is Ω rpm. Ball velocity will be (π d Ω) inches per minute (d is in inches).
This case is useful only for understanding and calculating other cases. For TopSpin, the ball is spinning around a horizontal axis perpendicular to the direction of throw.
Assume that the top roller is spinning at a rate of ω rpm. The bottom left & right rollers must spin at half that speed in the opposite direction (ω/2). Half speed because the bottom rollers are contacting at a point half way closer to the axis; in the figure, section BB is half the diameter of the ball.
To make the ball spin backwards, top roller spins at ω, bottom rollers spin with +ω/2.
The ball will spin at the rate of (ω * d / b) rpm.
Combining case 1 and 2, we add Ω to all roller speeds. The top roller spins at (Ω + ω), bottom rollers spin at (Ω  ω/2).
Ball speed and pitch rate should be (π d Ω) and (ω * d / b) respectively.
The top roller cannot directly cause the ball to spin, so it does not move. The bottom two rollers can cause the section BC to spin. Roller B also induces section BB to spin and roller C induces section CC to spin. However, these two spins are equal and opposite, thus cancel each other.
Another way to see this is to add the vectors for the spins induced by the two bottom rollers. The resulting vector will be vertical, indicating that ball will spin sideways.
The bottom rollers spin at the rate of (√3/2 ω) rpm, in opposite directions, because section BC is (√3/2 b). To make the ball spin the other way, reverse the bottom rollers.
The ball will spin at the rate of (ω * d / b) rpm.
Combining cases 1 and 4, top roller spins at Ω, and the bottom rollers spin at (Ω + 0.866 ω) and (Ω  0.866 ω).
Ball speed and yaw rate should be (π d Ω) and (ω * d / b) respectively.
So far, we now have formulae for angles that are a multiple of 30 degrees. Examples:
Roller 
θ = 0 Top spin 
θ = 30 Slant 
θ = 60 Slant 
θ = 90 Side spin 
θ = 120 Slant 
θ = 90 Side spin 
θ = 180 Back spin 
ω_{a} Top 
ω 
+0.866 ω 
+0.5 ω 
0 
+0.5 ω 
0 
ω 
ω_{b} Bottom Left 
0.5 ω 
0 
+0.5 ω 
+0.866 ω 
ω 
0.866 ω 
+0.5 ω 
ω_{c} Bottom Right 
0.5 ω 
0.866 ω 
ω 
0.866 ω 
+0.5 ω 
+0.866 ω 
+0.5 ω 
The next goal is to calculate roller speeds for the general case where the ball spin is (ω * d / b) on an axis angled at θ degrees. In the figure shown below, the desired spin vector for the ball is shown as the black arrow. It is at an angle of θ degrees to the horizontal.
For an simple explanation, we want each of the three rollers to individually contribute the desired spin to the ball. Note that the rollers are fixed. Also, the spin vector induced on the ball will be opposite (negative) to the roller vector. The angle between the spin vectors for the ball and for B is 60+θ. So, the required roller speeds are:
Roller 
Required speed 
Orthogonal Spin 
ω_{a} Top 
+ω cos(θ) 
ω sin(θ) 
ω_{b} Bottom Right 
ω cos(60+θ) 
+ω sin(60+θ) 
ω_{c} Bottom Left 
ω cos(60θ) 
ω sin(60θ) 
The sign on the required speed is decided by whether the induced spin is in the desired direction or not. The formulae are consistent with the example speeds in the table. Adding the three speeds in the 'required' column results in 0. This indicates that the ball has no velocity along the z axis.
+ω cos(θ)  ω cos(60+θ)  ω cos(60θ) = 0 (expand the terms)
Each roller also induces an undesirable spin on the ball in the orthogonal direction. These spins nicely cancel out when added. On expansion, the following expression results also in 0.
ω sin(θ) + ω sin(60+θ)  ω sin(60θ) = 0
There is another way to derive these formulae using projections of the contact point across the spin vector. However, the vector solution described next is much more elegant.
Combine cases 1 and 6; add Ω to all three roller speeds.
Another way to analyze this case is using spin vectors. The 2D direction unit vectors for the three rollers are shown below. They are shown as the blue arrows in the diagram. The spins they induce on the ball is negative of the roller vector.

Roller unit vector 
Induced Spin vector 
A 
x 
x 
B 
cos(60) x  sin(60) y 
cos(60) x + sin(60) y 
C 
cos(60) x + sin(60) y 
cos(60) x  sin(60) y 
We can't change the direction of the vectors because the rollers are fixed. However, we can change the vector magnitudes by varying the speeds of the three rollers, ω_{a}, ω_{b}, ω_{c.}
To make the ball spin at the rate of ω on an axis angled at θ degrees, the desired spin vector of the ball should be:
ω cos θ x + ω sin θ y
Each roller would have to contribute exactly to the desired vector. Calculate the dot product (the projection) of the desired spin vector with each of the roller induced unit vectors to get the roller speeds, ω_{a}, ω_{b}, ω_{c}.
ω_{a} = ω cos θ
ω_{b} =  ω cos θ cos(60) + ω sin θ sin(60)
= ω cos(60+θ)
ω_{c} =  ω cos θ cos(60)  ω sin θ sin(60)
= ω cos(60θ)
These are the same results as before... Note that the ratio of the diameters (d / b) should be taken into consideration.
The solution can be expanded to a 3 D case that allows the thrown ball to spin in arbitrary axis. The three rollers have to be skewed so that their spin vectors are not on a common plane. We can have the spin vector (axis) pointing 45 degrees into the page. Each vector should normalized to be a unit vector by dividing it by √3/2.

Roller unit vector 
Induced Spin vector on ball 
A 
x  cos(45) z 
x + cos (45) z 
B 
cos(60) x  sin(60) y  cos(45) z 
cos(60) x + sin(60) y + cos (45) z 
C 
cos(60) x + sin(60) y  cos (45) z 
cos(60) x  sin(60) y + cos (45) z 
If the desired spin vector in 3 D is:
ω_{1} cos θ x + ω_{1} sin θ y + ω_{2} z
As before, calculate the dot products to get the required roller speeds.
Roller 
Required speed 
ω_{a} Top 
+ω_{1 }cos θ + ω_{2 }0.707 
ω_{b} Bottom Right 
ω cos(60+θ) + ω_{2 }0.707 
ω_{c} Bottom Left 
ω cos(60θ) + ω_{2 }0.707 
Note that the required speeds do not add up to 0. This indicates that the ball will have a positive speed along the z axis; it is not spinning between the wheels.
In the 2 D case, the ball can be spun along any axis in the plane perpendicular to trajectory. It cannot spin on any axis out of that plane. In the 3 D case, the rollers are skewed to allow arbitrary spins, including spirals and rifling. While there is a product available today that uses 3 rollers, there is nothing that implements the general 3 D design.
A quick patent search discovers that this concept was patented in 1984.