A few years ago, I had the pleasure of being involved in the development of an XR Motion Platform at Middlesex University.
The Chair/Platform/MDX Loco (It has known a few different names!) was originally designed as part of an interactive project.
You can see a much younger me at about half way through the video!
The chair is powered by 6 pneumatic muscles in an inverted stewert platform configuration.
The system is controlled by a single FESTO CPX PLC, which has 6 proportional pressure regulators onboard, providing a simple interface to allow TCP/UDP (FESTO EasyIP Protocol) messages to control the muscle lengths.
https://github.com/birchroad/fstlib (This is a good unofficial library for EasyIP)
I designed a controller using blender 2.7 (At that time, blender supported python runtime for game engine) and I was able to use that to control the chair in real time.
I could animate the chair moving around, and blender would, in live time, calculate the muscle lengths, and send this packet data to the PLC.
Sadly this blender file is now lost to the ravishes of time, however a colleague of mine (https://github.com/michaelmargolis) took over the project, and wrote code to support controlling the chair from all manner of different programs, from rollercoasters, to racing simulators, to flight simulators. At one point there was even a comode mounted on it - although that story is for another day.
So - Why Post about this now?
Finally, nearly a decade later, the controller on the chair is due a minor upgrade!
I had the pleasure of visiting the university recently, to rewrite a few lines of code I last wrote all those years ago, and port the code from legacy FST to the more recent CodeSys ST format.
Hopefully, the project will continue for many more years to come!
Top comments (0)