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?
That is ridonkulously awesome! Mind blown even though I know we can do seriously amazing feedback stuff nowadays.
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…
This is incredible I want one
Put an LCD on it and use the ball to play solitaire.
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).
I wonder if you could get some type of worm drive to have quick enough response. I’d really like a racing chair like that but its very cost prohibitive!
If it’s geared or hydrolics no it doesn’t… Locks and valves take the load.
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!)
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.
Is it me or deos it look a little angry when you take off the ball.
I got that impression, too. The guy’s lucky it wasn’t a full laptop. Thing would’ve snapped his fingers off!
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!
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.
Hi, I know it has been more than three years ago, but did you ever find any code or documentation regarding this project?
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.
Dees someone has any idea what type of sensor is used to locate the ball ?
The article says the platform is a resistive touch screen.
MPU6050
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.
I need this to play CDs in my Jeep while off-road.
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.
This needs to be silent and available as a desktop toy
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.