Work

Ball Balancing Robot

Robotics
ROS
CAD

A ball-balancing robot with 3-RPS parallel manipulator and PID control system

Tools & Technologies

Arduino Arduino
Inventor Inventor

Collaborators

Loading profiles...
Loading Ball Balancing Robot...

Course project where I definitely went overboard. Built with Riyana - my first real introduction to control systems. The goal was to balance a steel ball on a tilting touchscreen platform using a 3-RPS parallel manipulator. Even though the mechanism didn’t work perfectly, we learned a ton across mechanical, electrical, and software sides.

What We Built

1. 3-RPS Parallel Manipulator Framework

The platform uses three stepper motors to control three mechanically operated legs, achieving precise movements with three degrees of freedom.

3-RPS parallel manipulator framework showing three mechanically operated legs

2. PID Control Algorithm

A closed feedback loop processes real-time data from the resistive touchscreen to adjust platform tilt, maintaining balance.

  • Proportional gain: ( K_p = 4E-4 )
  • Integral gain: ( K_i = 2E-6 )
  • Derivative gain: ( K_d = 7E-3 )
PID control system diagram showing feedback loop for ball balancing

3. Inverse Kinematics

Stepper motors adjust based on derived angles to position the ball precisely, calculated through mathematical models and implemented in Arduino.

4. Microstepping

Fine control with 1/32 microstepping for smooth and precise motor movements, achieving 6400 steps per revolution.

5. Custom 3D Design

View Model

All components, including the platform and mechanical legs, were designed and 3D-printed using PLA material.

3D CAD model of ball balancing robot platform
Detailed view of robot mechanical components and assembly

Challenges We Hit

  • Current Limitations: Had to calibrate motor driver current to 1.25A to optimize performance
  • 3D Printing Tolerances: Multiple design iterations to get assembly fit right
  • Hardware Upgrades: Started with Arduino UNO, had to upgrade to Mega for more I/O pins
  • Mechanism Issues: The physical mechanism had issues we couldn’t fully solve in the time we had

What I Learned

First real taste of control systems - PID tuning, inverse kinematics, sensor fusion. Learned that getting hardware to work is way harder than the simulation suggests. Also learned Arduino isn’t great for complex control loops, but we made it work.

Great project overall - touched mechanical design (CAD + 3D printing), electrical (motor drivers, touchscreen interface), and software (PID control, kinematics). Even though it didn’t work perfectly, this is where I got hooked on robotics.