Stewart Platform Ball Bearing Balancer

PID balancing a ball on a plate

For their Mechanical Engineering senior design project at San Jose State University, [Tyler Kroymann] and [Robert Dee] designed and built a racing motion simulator. Which is slightly out of the budget of most hackers, so before they went full-scale, a more affordable Arduino powered Stewart platform proof of concept was built. Stewart platforms typically use six electric or hydraulic linear actuators to provide motion in six degrees of freedom (6 DOF), surge (X), sway (Y), heave (Z), pitch, roll, and yaw. With a simple software translation matrix, to account for the angular displacement of the servo arm, you can transform the needed linear motions into PWM signals for standard hobby servos.

The 6 DOF platform, with the addition of a resistive touch screen, also doubled as a side project for their mechatronic control systems class. However, in this configuration the platform was constrained to just pitch and roll. The Arduino reads the resistive touch screen and registers the ball bearing’s location. Then a PID compares this to the target location generating an error vector. The error vector is used to find an inverse kinematic solution which causes the actuators to move the ball towards the target location. This whole process is repeated 50 times a second. The target location can be a pre-programmed or controlled using the analog stick on a Wii nunchuck.

Watch the ball bearing seek the target location after the break.

Thanks to [Toby] for sending in this tip.

We at Hackaday look forward to the real life implementation of Marble Madness!

Need help Demystifying PID Control? Or perhaps you would like to build your own Stewart Platform?


  1. spiritoffeedback says:

    That is ridonkulously awesome! Mind blown even though I know we can do seriously amazing feedback stuff nowadays.

    • Nate B says:

      Yeah, that went from impressive, to astonishing, to shouting-whoah-wtf when it changed direction. Very, very cool stuff.

      Speaking of feedback, though, I think a lot of the jitter is probably because they don’t have control over the servos’ internal feedback loops. Replacing the servo controller board with OpenServo or something would shine some light into that end of the system, and probably enable much finer tuning and smoother operation.

      That’s still one of the more impressive tech demos I’ve ever seen. My mind goes to self-rocking baby swings, for some reason. Quiet it down a bit and now you’ve got a racing sim which does double duty as a womb sim for the infant? Okay, run the “mommy walking on sand” program…

  2. This is incredible I want one

  3. Galane says:

    Put an LCD on it and use the ball to play solitaire.

  4. Ben says:

    The full-size version on their website is much more impressive, to the point where it might actually make racing games fun to play. Any arcades that have managed not to go out of business yet should take note.

    I imagine it (the full size one) requires quite a bit of power when running though, even when not in motion, since all the weight of the armature/user is transferred through the 6 actuator levers, which will, on average, be parallel to the ground. That means, just to maintain a static position, each actuator needs to deliver around 25 lb*ft of torque (assuming the armature/user combined weighs about 300lb).

  5. ANC says:

    Looks like a flawless demonstration that then becomes impressive. Loved the orbiting ball! Not your typical just-got-it-working-in-time project (not that I would know anything about those!)

  6. Tim says:

    Pretty impressive on the hardware side (the full scale sim). I wonder what kind of rotary actuators they are using. A bit jittery but the response is fast and the actuation range seems quite large. If it is reliable and cheaper than most alternatives, then this will be a very marketable product.

  7. yetihehe says:

    Is it me or deos it look a little angry when you take off the ball.

  8. BillBrasskey says:

    Whew I thought I was simple or something lol. Gotta have/build one of these! I can totally watch it for hours :) My projects will remain gator clipped for months lol. Very cool and nice job, Tyler!

  9. Seba says:

    Has anyone been able to find the source? Looked all over their site, but nothing to be found (on mobile, at least). Would really love to see code this snappy for the Arduino.

  10. Alan says:

    I’d like a tray that holds drinks, lets me walk through a crowd without spilling. Of course, fluids are harder to detect and correct than a ball on a touch screen.

  11. Pierre says:

    Dees someone has any idea what type of sensor is used to locate the ball ?

  12. Jestern says:

    This project is pretty sweet, also it’s a cool application for PID control, I’b never thought of its application outside plant process control. It seems perfectly timed though, the ball never overshoots the center of the platform and the Wii numchuck’s a cool addition too.

  13. Velli says:

    I need this to play CDs in my Jeep while off-road.

    • Mojoe says:

      Thats what digital formats and flash drives or sd cards are for. I quit playing CDs long ago, and I don’t miss it a bit. Long gone are my days of burning discs…. ugh… always getting coasters due to compatibility issues, software issues, drive issues…. Now I just rip them in, convert them, copy to flash drive, and enjoy.

  14. HWS says:

    This needs to be silent and available as a desktop toy

    • HWS says:

      A Stewart platform is overkill for moving the ball around. You really only need 2 servos and a pivot point. The Stewart platform using 6 servos allows for up/down of the whole platform for feeling G forces of bumps during racing.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,421 other followers