Ball Balancing Robot | 3RRS Parallel Manipulator

Designed and built a 3-DOF parallel robot capable of stabilizing a moving ball using real-time computer vision and PID-based inverse kinematic control. CAD modeled in SolidWorks, controls implemented in Python on Raspberry Pi.

Controls

  • Developed an inverse-kinematics model using vector geometry and linear algebra to convert a commanded platform pose—defined by position and surface normal vector—into the corresponding servo motor angles.

  • Implemented a 60 FPS computer-vision pipeline on the Raspberry Pi using Gaussian filtering, morphological erosion/dilation, thresholding, and contour detection to isolate the ball and calculate its pixel-space centroid in real time.

  • Converted the measured ball centroid into a position error relative to the platform center, providing continuous feedback to the closed-loop controller.

  • Implemented and tuned a PID controller using proportional, integral, and derivative error terms to generate platform tilt commands, balancing responsiveness against overshoot, oscillation, and steady-state error.

  • Integrated the vision, control, and inverse-kinematics calculations into a real-time feedback loop, continuously updating servo commands as the ball moved across the platform.

  • Generated servo position commands through the Adafruit servo controller, translating calculated joint angles into PWM signals for platform actuation.

Hardware

  • Raspberry Pi 4B — executes image processing, PID control, inverse-kinematics calculations, and real-time system coordination.

  • Arducam 3 — captures the platform workspace for high-frame-rate ball position tracking.

  • Adafruit Servo Control Board — generates PWM control signals for the platform’s servo actuators.

  • Servo-actuated balancing platform — mechanically converts individual servo rotations into controlled changes in platform orientation.

Next
Next

Hytech Racing FSAE Motor Simulink Thermal Sim