Impact Juggling The Juggler
The Juggling Apparatus "Hands"

One of my many desires in life is to have a mechatronics shop in my basement or otherwise be closely affiliated with a robotics lab.  For the final project in a predominately software oriented class my partner and I persuaded the instructor to allow us to build this neat little juggling apparatus.  I briefly discuss it here because I think it's pretty damn cool and hopefully it will someday be the ancestor of a magnificent gismo.  

Overview of Project:
The goal of this project was to design, construct, and implement a computer controlled device capable of juggling two or more balls. 

Our final realization was a control program capable of robust, simulated multiple-ball juggling, and a physical system consisting of working individual components with nearly integrated two ball juggling functionality.

An abstraction of the juggling problem is depicted to the left.  Essentially, there is a mechanism to throw and catch a ball and a motor to adjust the mechanism position.  For our purposes we simplified the problem to columnated juggling, i.e. no lateral motion.   Sensors were used to extract ball position.  The balls are caught and thrown by a single “hand” that rotates 90 degrees between positions.   

A graphic representation of the C++ code is shown below.  Each color corresponds to an object.  Additional actuators or motors may be added by instantiating more of the respective object.  In our implementation we used one motor and two solenoids (actuators), one to throw the ball and the other to load additional balls.

All of the C++ code is built upon the state transition logic framework of TranRun4, TR4.  TR4 handles all of the real-time scheduling and data management tasks.  Our objects were derived from parent classes.

Custom Hardware:
Detail of Hand:

The hand is crucial to achieving successful juggling.  In the early stages of the project a prototype hand was constructed and tested to ensure ample ball height, our typical height was 3' to 4'.

The key to our design was the use of a "bug muscle".  A “bug muscle” consists of a bladder inside a sheath; when inflated, the assembly expands radial and contracts axially.  Compressed air, metered via a solenoid valve, actuates the muscle. 

Top: Hand in home position
Middle: Muscle activated, hand in home position
Bottom: Hand in position two
The Juggling Apparatus:

This fixture was designed, machined, and assembled by my partner and me.  Most of the parts were scavenged from other projects and assorted labs.

After much work, we obtained one ball juggling and fickle two ball juggling.  Our problems were predominantly mechanical, the largest of which ... catching the ball.  The hand threw the ball in a very repeatable column and the motor control worked well, but much to our chagrin, the ball bounced out of the hand more often than not.

Software Simulation Results:
The code was very well written.  It included a simulation algorithm that computed the motion of the projectile and "triggered" the respective sensors.  With this feature we could test our real-time code off-line.  

To the left are excerpts from the final report, these simulation results demonstrated proper functionality of the software.

Simulation was also used to verify the mechanical requirements of our apparatus. 

We completed all software and simulations prior to constructing the final hardware. 


Home | About the Author | Picture Page | Fun Stuff | Friends
Copyright  © 2004 Last Modified:  November 9, 2004