In the end, we managed to build a stable system. The platform was sturdy and subject to minimal vibrations and external influences. We successfully managed to communicate between Arduino and Python using pySerial and compute motor angles with minimal lag to keep the system stable. We were also able to keep the ball on the table but were unable to truly center the ball due to the sensitivity of the ball to external disturbances.
Lags in pySerial communication.
Camera lighting conditions.
Imprecision caused by sloppy joints.
Limitations to the chosen PID controller.
Software bugs.
Implementing a feedforward term for ball predictions.
Use a heavier ball for tuning to lower ball sensitivity
Including a mechanism for manual leveling of the device at standstill.
Having electronics be fully self-contained (i.e. eliminating the need for external outlets and wiring to a laptop).
Implementing additional functionality such as reference tracking desired trajectories on the platform.
Our project can be slightly modified with an IMU sensor to aid as an augmentation to robotic kitchen servers (figure below), acting as a gimbal system to help balance food and drinks. The same application can be deployed in a nursing house to help elderly members carry items and loads.
If the design is scaled larger, it can be used as a platform to actuate flight/vehicle simulation modules.
Our design can also be used to orient satellite dishes or telescopes. given that they require precision control and also maintain a specific orientation even when perturbed by external factors.
J “The Mathematics of the Stewart Platform,” Wokingham U3A Math Group, May 6. 2013. [Online]. Available: https://web.archive.org/web/20130506134518/http://www.wokinghamu3a.org.uk/Maths%20of%20the%20Stewart%20Platform%20v5.pdf [Accessed: 25-Nov-2022]
"Ball Detection Using OpenCV in Python", https://www.youtube.com/watch?v=RaCwLrKuS1w [Accessed: 27-Nov-2022]