Mar 2021
Made with Processing and Arduino
My friend and I made an Arduino controlled Stewart platform. Stewart platforms are a type of platform controlled by six linear actuators, and can rotate and move in any direction (6 DOF).
While high-end Stewart platforms (think NASA level) might use true linear actuators, it’s also possible to make one using servos using some nice inverse kinematics. To ensure free motion in all angles, we “faked” omnidirectional joints on the servos by just putting a loose connector over screws so that it had enough wiggle room to rotate in all directions.




In order to control all the motors, we used a Processing simulation that communicated with an Arduino on the platform. The inverse kinematics calculations were based on a concise exploration of the topic by Robert Eisele.
I built the controller simulation from the ground up as a one-to-one replica of the physical model. Everything which happened in simulation would be directly replicated by the real version.





As has been my experience in the past, Arduino communication comes with a certain degree of unreliability due to data corruption. To address this, I make a message protocol with starting and terminating characters to ensure the commands from the simulator were always received in full.
The project was not without hardware challenges too. Our “omnidirectional joints” could sometimes cause the top platform to lock up, and on occasion the motors would lock up if they didn’t quite match up with the simulation. Nevertheless, I was happy with the final result, and I was quite proud of the inverse kinematic simulation.