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?

21 thoughts on “Stewart Platform Ball Bearing Balancer

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

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

  3. 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!)

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

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

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

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

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

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

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

WordPress.com Logo

You are commenting using your WordPress.com 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