Ball and Plate in Jean-Paul Gauthier's office (6)

Plans and blueprints:

Truth to tell, I never had any blueprints, and you could almost claim I never had a plan. I jury-rigged everything on the spot, making design decisions based on how I felt. Is this the best way to go? For this sort of project, yes. There were so many unknown elements, and I was so out of my element, that it was impossible to decide ahead of time. The best-laid plans of mice and men could never have foreseen how the final project would look.

Two-axis experimental apparatus
For instance, an important question is how to physically tilt the table. The first response is always by motorizing the table to tilt about both axes. However, spend a little time thinking about this and you'll realize that this is much more difficult than it seems. Tilting in one dimension is child's play. Tilting in two is a whole other ball-park. Nagging problems such as play, backlash, and rotational inertia come to play.

three-footed table
In the end, I decided on an equilateral triangular system that has three push-rods that push the table up from underneath. As one push-rod extends further than the others, the table tilts and the ball starts to roll.

Moreover, this three-rod system effectively eliminate the problem of play, as the table driving mechanisms, in this case three
Hitec HS-5745MG Digital servos, are always under compression, and thus always pushing on the table. What this means is that the servos are always pushing-- so there is never a moment when going from pushing to pulling, which is when play and backlash are the worst.

Finally, a three servo system has a very seductive advantage over traditional two-servo, two-axes systems. The axis of rotation of the table can be moved to anywhere in the universe! (For a given definition of "anywhere"). This lets us completely sidestep the "pea and spoon" effect by always having the table's axis of rotation located directly under the ball.

This so-called “pea and spoon” effect is what happens when you place an object at the end of a beam that then rotates so quickly the pea physically launches off the beam. This you have certainly observed during your childhood when you had fun loading peas into a spoon, placing the spoon on the edge of the table, smacking its handle, and sending the peas flying off to the other side of the room. For a more scientific explanation of the pea and spoon effect,
click here.

Construction log:

In any sort of project, you should always start off with a proof of concept. For this project, I first set out to create a simple B&B. My first attempts were with a stepper motor driving a worm gear attached to a conveyor belt. The pushrod was taped to the conveyor belt, pushing on one end of the table which was then supposed to pivot about the fulcrum ball joint seen in the upper-left corner of the picture. Unfortunately, due to material concerns (namely at the time I hadn’t a clue about stepper motors), results were less than encouraging, and I never got any further than building the control module. Still, it proved to my professor, Eric Busvelle, who had many lingering doubts about my plans to do it only with legos, that they could indeed be used in a scientific project.

My second attempt was with a servo motor that Eric had lying around his house.

Ball and beam overhead Ball and beam

Ball and beam backlit
While we unfortunately had no servo controller, we didn't let this discourage us. It turns out that a servo is controlled by short pulses spaced every 20ms. The 20ms pulse is composed of a short “HI” command— a 1.5ms pulse for the center position, 900ms pulse for full deflection to the right, and 2.1ms is full to the left— for a relatively long “LOW” of 20ms.

This newfound knowledge in hand, we than started hacking on the computer’s parallel port. The parallel port is completely controllable-- up to the limitations of material and, as we were to discover, the operating system and driver. A bit of
sample code ( that we adapted in delphi and we had a working servo! Except...

The servo would spasm every few seconds. At first, we were at a loss for why it would act that way, but once I hooked up an oscilloscope, it was clear that the pulses themselves were at fault. We tracked this problem down to the operating system itself. Apparently Windows likes to seize control of the system completely, interrupting any other process, such as our servo pulse program. While this isn't particularly troublesome for most applications, this caused us a lot of problems as it would inevitably prolong the servo pulse, which the servo understood as a request for full deflection.

In a short time (2 hours or so), I had whipped up a second prototype.

This one worked quite well, aside from the fact that the periodic spasms would keep the ball from ever stabilizing. Still, it was a step in the right direction, and although the ball never stopped, it never quite fell off either.

A third prototype was subsequently made when my brother arrived from America, and with him the last vestiges of my lego collection, and the servos and servo controller finally came in the mail. Two thousand legos richer and three heavy-duty servos in hand, I made the first attempt at the two-dimension ball and plate machine. This prototype didn't take much longer than the others, and was quite successful, in spite of its bent paper-clip and transparent Plexiglas motorization.

Sadly, I have no photos, but it was certainly one of the more interesting machines I've ever built. In the metal shop at the Lycee Eiffel, all the machinists got a kick out of it's simplicity and the fact that it, well,
it worked.

All in all, it was quite successful as a prototype. We were very impressed by the speed, accuracy, and torque of the servos, and the capabilities of the SSC-32 servo controller, sold by (Let me take this time to put in a plug for Jim Frye at lynxmotion. Definitely some of the best customer service around.)

Still, a paper-clip base hardly is conducive to rigidity and precision, so the design was doomed from the start.

The next prototype was created when I realized that the best way to push is not paper-clips, but push-rods. I cannibalized the existing table and made a new series of modules for the servos. These modules took a fair amount of buttressing, as the weight of the table surface would tend to load the push-rods from the side, knocking the legos out of whack.

(In fact, I have had, and continue to have, and will always have— until I just glue the danged buggers together— problems with the legos separating. The mechanical joint is solid and tight, but doesn't resist rocking motion very well, as everyone who has ever played with legos can attest to. That's how you get them apart when they're stuck together, remember?)

Lego servo tower - 1
In the end, I have something reasonably stable that only comes apart in the worst of situations, e.g. when the table moves incredibly violently because of perturbations.

My last modification was to add springs that I made myself,
found here on the web, a simple process that took only myself and an allen wrench as a combination winding shaft and winder. The springs are mounted underneath each servo arm and basically take some of the load off the servos. Servos tend to be less accurate when heavily loaded, and the weight of a 50cm x 50cm table surface + a pool ball really ate into their performance. By offloading this weight onto the springs, I not only increased the accuracy of the servos, but probably also greatly increased their life, as now the only work they have to do is fight against inertia. Kind of the opposite of a French bureaucrat’s job.

One important point in the spring design is that I used torsion springs pushing on the servo arm and not compression ones pushing directly on the underside of the table. This is because torsion springs, if wound a sufficient number of turns, vary little in their force as you load them. This is in contrast to compression springs which vary (more or less) linearly with distance, thus meaning that as the push-rod retracts the spring takes lots of weight, whereas when the push-rod extends the spring is completely off-loaded. Plus, reliable and consistent compression springs would have been really hard to make properly by hand.

The newer version of the table currently in Dijon uses a student-designed ingenious system of pulleys and counterweights to relieve the servos. The counterweight is attached to one end of a string and the other end is passed over a pulley and attached to the pushrod. The weight of the counterweight can be precisely matched to that of the table.