# Servo motor for throwing a rubber ball

**URL:** <https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821>\
**Category:** Motors, Mechanics, Power and CNC\
**Created:** [August 26, 2016, 3:42pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821 "2016-08-26T15:42:50Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Samsky](https://avatars.discourse-cdn.com/v4/letter/s/94ad74/32.png) [@Samsky](https://forum.arduino.cc/u/Samsky)\
**Post date:** [August 26, 2016, 3:42pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/1 "2016-08-26T15:42:50Z")

</div>

Hi,

My arduino project "basketball shooter" which aims to throw a rubber ball to a  
rim by mechanical arm( at MAX distance = 30~50 cm ), I plan to use a three axis  
arm and this means three servo motors are needed, what kind of servo motor should I  
pick for making a rubber ball "fly" ? Does the weight of servo motor care?

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [August 26, 2016, 4:24pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/2 "2016-08-26T16:24:53Z")

</div>

It is not at all easy to answer that question.

First, you need to calculate the force necessary to accelerate the ball and the apparatus that is holding it to the necessary release speed. Then you need to find a servo that can comfortably produce that force and speed.

I cannot tell from your description if any of the servos will be part of the mass being accelerated. A diagram would make that clear.

...R

---

<div class="post-metadata">

**Author:** ![John\_Rae](https://avatars.discourse-cdn.com/v4/letter/j/53a042/32.png) [@John\_Rae](https://forum.arduino.cc/u/John_Rae)\
**Post date:** [August 27, 2016, 6:43am UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/3 "2016-08-27T06:43:38Z")

</div>

You might be better using the servo to "energise" an impulse device such as a spring then a second servo to trigger the spring which shoots the ball. In effect a low energy integrated up over a period of time (say several seconds) which is then released in a very short time (tens of milliseconds)

---

<div class="post-metadata">

**Author:** ![Samsky](https://avatars.discourse-cdn.com/v4/letter/s/94ad74/32.png) [@Samsky](https://forum.arduino.cc/u/Samsky)\
**Post date:** [August 27, 2016, 7:29am UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/4 "2016-08-27T07:29:44Z")

</div>

Hi Robin2 and jackrae,

Thanks a lot, my three-axis arm will be like as following diagram :

I am afraid of mass of servo2+servo3 will cause heavy loading to servo1  
Should I adopt micro servos to overcome this ?

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [August 27, 2016, 8:08am UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/5 "2016-08-27T08:08:59Z")

</div>

Why do you need servos2 and 3?

Only you can know whether microservos would be powerful enough. They will each be subject to the full throwing force beyond them.

If the purpose of servos 2 and 3 is just to orient the ball holder it should be possible to do that with some levers while the servos themselves remain on the ground.

...R

---

<div class="post-metadata">

**Author:** ![MAS3](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mas3/32/1013044_2.png) [@MAS3](https://forum.arduino.cc/u/MAS3)\
**Post date:** [August 27, 2016, 9:25am UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/6 "2016-08-27T09:25:51Z")

</div>

Hi.

If you are afraid of those weights, put them on a spot where they don't count that much.  
Perhaps all of the servos close to servo 1, and have some mechanical way to convey the movement of the servo.  
Think of wires or rods.  
Also try to imagine how muscles actually work, they seem to do that job quite accurately and reliable.  
So perhaps mimicking that would be a smart move.  
I would also do the same thing to the arm connected to servo 1, because you probably need more speed on any axis than a servo could deliver.

Sorry, got an emergency call (don't worry, no lives at steak) and have to rush to work now.

---

<div class="post-metadata">

**Author:** ![MarkT](https://avatars.discourse-cdn.com/v4/letter/m/c89c15/32.png) [@MarkT](https://forum.arduino.cc/u/MarkT)\
**Post date:** [August 27, 2016, 4:15pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/7 "2016-08-27T16:15:56Z")

</div>

> Samsky:  
> Hi,
> 
> My arduino project "basketball shooter" which aims to throw a rubber ball to a  
> rim by mechanical arm( at MAX distance = 30~50 cm ), I plan to use a three axis  
> arm and this means three servo motors are needed, what kind of servo motor should I  
> pick for making a rubber ball "fly" ? Does the weight of servo motor care?

I'd say you have a low chance of making this work with a hobby servo with any accuracy/repeatability.  
You need something with smooth and controllable torque for well-defined launch, and hobby-servos  
aren't upto the smooth and controllable torque bit. Certainly they may work well for setting up the  
starting pose, but the throwing mechanism needs to be mechanically smooth, with as little variation  
as possible.

(mechnical friction in a cheap multi-step gearbox is "poorly characterized" as they say - its not well  
behaved. The position control loop inside the servo is subject to jitter and noise you cannot  
measure or control.)

A belt reduction drive and fairly torquey (ie large) DC motor immediately sounds like a better  
bet - you can control PWM and duration of action and leave the motor unbraked (make sure  
your H-bridge supports this, most do). That ought to give a controllable and repeatable response.

The belt will reduce vibration and jerkiness of the motion (ie damp it). Remember a throw requires  
a certain minimum power to work.

Of course if you want position control in the same axis as the throwing mechanism you'll need  
to throw in an encoder and close the position control loop yourself (disabling it briefly for a throw).

The spring suggestion in #2 has a lot going for it too, but mechnically is complex (the release  
mechanism is tricky). It allows the motors to be less powerful than the throw power too, keeping  
motor size under control.

And finally a general note about robot arms - if you counterbalance each segment of the arm it is  
much easier to control and _much_ lower torques are needed at each joint. And the thing doesn't  
buckaroo about when moving fast...

If you need extra reduction gearing a single stage of metal gears with light oil lubrication sounds  
good to me (grease has a strong relation between viscosity and temperature).

---

<div class="post-metadata">

**Author:** ![Samsky](https://avatars.discourse-cdn.com/v4/letter/s/94ad74/32.png) [@Samsky](https://forum.arduino.cc/u/Samsky)\
**Post date:** [September 10, 2016, 3:34pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/8 "2016-09-10T15:34:45Z")

</div>

Update my development status, the ball can fly for just a while (about 30cm)

[Experimental video @youtube](https://youtu.be/iCXU5PfGDKI)

The lack of energy makes the ball cannot fly a long distance, furthermore, the shape of  
hand is difficult to design, it should behave like a human shooting a basketball...

---

<div class="post-metadata">

**Author:** ![MarkT](https://avatars.discourse-cdn.com/v4/letter/m/c89c15/32.png) [@MarkT](https://forum.arduino.cc/u/MarkT)\
**Post date:** [September 10, 2016, 4:03pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/9 "2016-09-10T16:03:02Z")

</div>

Have you considered scaling down and using a golf ball, smaller target and work on the design in  
minature for now? I still think repeatability will be an issue without careful attention to the things I've  
mentioned.

IMO in basketball throws the hands don't do much, the ball is too large/heavy for fine wrist- and  
finger-control, you tend to lock your hands into a fixed cup and work from the elbow and shoulder  
for distance throws.

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [September 10, 2016, 6:03pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/10 "2016-09-10T18:03:05Z")

</div>

> Samsky:  
> it should behave like a human shooting a basketball...

I would not assume that is necessary.

People already have hands designed for whatever and they use them to the best of their ability for each task. That does NOT mean that a hand is the ideal "tool" for the task.

...R

---

<div class="post-metadata">

**Author:** ![Samsky](https://avatars.discourse-cdn.com/v4/letter/s/94ad74/32.png) [@Samsky](https://forum.arduino.cc/u/Samsky)\
**Post date:** [October 4, 2016, 1:19pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/11 "2016-10-04T13:19:33Z")

</div>

Currently I throw a ping pong ball by performing gesture like a baseball pitcher...

[Youtube link](https://www.youtube.com/watch?v=flFwSYl7hOQ)

Scaling down the rubber ball to ping pong ball... thanks to the same idea here

[Mechatronic-Basketball-Shooter](http://www.instructables.com/id/Mechatronic-Basketball-Shooter/)

The pure swing indeed cannot generate enough force to make ball fly a long distance, human  
muscles actually are the main power source.

The fly distance is approximately 28 inches, I aim to reach 40 inches by the same mechanical design.

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [October 4, 2016, 2:56pm UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/12 "2016-10-04T14:56:35Z")

</div>

The distance anything "flies" depends on a combination of the speed at release and the direction at release. Throwing at an agle of 45 degrees from the horizontal will give th greatest distance.

If you ignore air resistance you can calculate the distance easily by calculating the effect of gravity pulling it downwards.

...R

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 6, 2021, 9:43am UTC](https://forum.arduino.cc/t/servo-motor-for-throwing-a-rubber-ball/404821/13 "2021-05-06T09:43:25Z")

</div>


