 |
| 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.
| 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. |
|
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. |
|
 |