How to make a Ball Balancing Robot

Last year, I have made this ball balancing robot.It can stand on a ball stable by the balance system of itself.

There is only one connect point between the robot and the ground, so it is more flexible than the traditional wheeled robot. It can move to any directions without turn. For the traditional wheeled robot when its center of gravity is too high it may fall down, but by using this robot the problem will not exist. So the application on this robot can be applied to narrow, crowded and interference environment.
And this robot can be used in many areas, such as security robot, explorer robot and entertainment robot.
This is just a platform and don’t have any practical application on it. We can add all kinds of different function on it according to the situation. For instance, you can add the applications of obstacle avoidance, localization and control by network to realize the function of the document delivery with this robot in your office.
What’s more, there are two ways to control: with the handheld wireless remote control and with the Kinect. By using the Kinect, you can control the car with your body, that’s may have a lot of fun.
The software may include: WPF programing, Kinect SDK, AForge.NET, PID algorithm, Kalman filter algorithm, AVR MCU programing and STM32 MCU programing.
The hardware may include: Gyro sensor, Accelerometer, Geomagnetic sensor, Wireless module, WIFI module, Camera, Kinect, STM32 MCU, Atmega16 MCU, Brushed DC motor (with gear box), encoder, DC motor driver, Controller power supply and motor power supply.

You see the full article here on instructables.



  • GUSTAVO HUERTA MACIAS March 27, 2014 at 2:32 am

    Hi! Is there a way you can email me the code to see how to implement a transference function or the application of the PID to control my omhniwheels? Thanks!

  • Robomaker April 15, 2014 at 2:12 pm

    Can I know the model of the dc motor that you are using? The speed and torque of it

  • robotmaker April 20, 2014 at 9:45 pm

    can I what kind of control you applied for balancing control, acceleration input or velocity input?
    more details and source code for this robot please.

  • Giuseppe August 10, 2014 at 10:55 pm

    Hi! I found this project really interesting and I would like to build my own robot but I’m in trouble with the coding (in fact I am new to robotics and computer science) so I would really appreciate if you could send me the code source at Thanks

  • K April 7, 2015 at 5:27 pm

    HI i am currently working on the ball balancing robot using arduino, is it possible to get your arduino source code? my email is, thanks!!

  • Carlos G.S. July 10, 2015 at 3:31 am

    First congratulate you on your project, I find very interesting, since I’ve always been interested in robotics, but I have the necessary knowledge in programming, so I wondered if it would be possible to send me the source Arduino code, thank you very much. My email is


Leave a Comment