Ball Balancing Robot
Ball Balancing Robot

About

This project involves developing a "Ball Balancing Robot" that uses a camera to detect the ball's position and controls the platform's tilt to move the ball. As part of my graduation research in the High-Speed Vision Lab, this was my first camera-based robot project. It was a challenging initiative to learn the importance of image processing, inverse kinematics, and control algorithms in robotics.

View on GitHub

How it works

  • Robot (Body): A 3RRS parallel manipulator with three degrees of freedom is used to control the tilt and height of the platform with three motors. Inverse kinematics is applied to calculate motor rotation angles and achieve the target posture.
  • Sensors (Eyes): A camera module connected to Raspberry Pi 5 is used to detect the ball's position. OpenCV identifies the pink area and calculates the ball's center coordinates. Noise reduction algorithms ensure highly accurate position information.
  • Control Algorithm (Brain): PID control is applied to move the ball to its target coordinates. By combining position control (P control), speed control (D control), and steady-state error elimination (I control), smooth and stable ball manipulation is achieved.

Specs and Results

Features:

  • High-precision motion with a 3RRS parallel manipulator providing three degrees of freedom.
  • Real-time ball position detection using OpenCV (approximately 60FPS).
  • Smooth ball movement and stability ensured by PID control.

Achievements:

  • Successfully controlled the ball to move along straight and circular paths.
  • While bouncing motion control was not achieved due to camera frame rate limitations, this project provided valuable experience in learning foundational robotics technologies.

Next Steps:

Building on the insights from this project, I plan to further research algorithms and high-speed control systems to enable even more precise operations.

< SCARA Robot Eyda >