Picture of 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 can see more project here in my website.

So now let's begin to build this robot.
Remove these adsRemove these ads by Signing Up

Step 1: Add Omni-Directional Wheel to Brushed DC motor

Picture of Add Omni-Directional Wheel to Brushed DC motor
In the balancing system of this robot, there are 3 Brushed DC motors. Each motor may have a bracket for connecting and a Omni-Diretional Wheel for driving the ball. 

1. Install the motor brackets to the Brushed DC motors.
2. Add one Omni-Directional Wheel to each of the Brushed DC motors.
1-40 of 69Next »
LaurenPan1 year ago
Wow...Really cool. Would you like to share the balancing algorithm code running in your stm32 processor later? Is it possible to use an Arduino processor to control the whole system?

hey this is nice. can u send me the source code to

can u send me the source code of balancing the robot... using arduino...

Ufactory (author)  LaurenPan1 year ago
Yes, you can send me an email for this code at:

We are trying to use Arduino as the controller recently.
Sounds great. Even I think if you're trying to use the Maple processor, which is also using STM32F103 as a core. And it got an arduino style IDE. It will be awesome to see that also. ☺

hello.. could u send me the source code for this robot? my email thank you

Ufactory (author)  LaurenPan1 year ago
Hi Lauren,

I have sent your the source code of this robot. Hope for further communication.

Best Regards,
UFactory Team
dlindstrom3 months ago

Star Wars must have seen this build...

Excellent work, I hope to find more details.

RobertR74 months ago

Would these wheels be any good to use if not can you send me a link to the ones you got?

Also by any chance could you show the Electric modules?

RobertR74 months ago

What size ball did you use?

I would like to know also the code if you could send it to me


Hello. Nice work! Would you share the code?

세련이4 months ago

hi, im south korea student. and my team project is in progress. but we are stuck.. our robot are not standing..... so i want to see your source code . can i receive your sourc code? if possible plz send your source code to here [[ ]]

dila.ery4 months ago

hello.. i also make this project for my final year project..could you please share the code for this project? I also use arduino mega as the controller and the sensor MPU6050. my email thank you for your help :)

dila.ery dila.ery4 months ago

btw your project is really awesome ;)

leadzeplin5 months ago

The University Of Zurich made a similar robot to yours

DhatchanaM6 months ago

hiii... i want to do this project. can anyone help me with this... just started with circuit building but something i miss in this project.

MykelM11 months ago

Wow I would really like to make this thing and even possibly add to it? Is it possible to see the code? And learn what electronics you had used?

ism_syed1 year ago

only may be sufficient ??

ism_syed1 year ago

great work i want to make one please let me know the code on arduino platform n which gyro sensor and accelerometer should be preferd ?

thw7771 year ago
I have a question here, why is brushed motor is used instead of brushless DC motor, stepper motor or servo?
Ufactory (author)  thw7771 year ago
Hi thw777,

Because I just have the brushed motors at hand at that time, so I used them. Now we are trying to use the stepper motors to instead the brushed motors.

Hi, may I request for the source code for this robot?

wbarrows11 year ago
I am very glad to have found this article. Ever since I saw this IEEE video on YouTube ( ) I have wanted to build a mobility device ( a "ball-chair"? ) based on this idea. The big attraction to me is the fact that the robot is always level. I notice that the Japanese robot is much steadier than yours. What factors might account for the difference?
Ufactory (author)  wbarrows11 year ago
It's according to the wheels and motors what we use is cheap one and not good enough. If you have enough money to buy high quality wheels and motors. The robot will be stable enough and can move smooth.
eeyoba1 year ago
it is nice project and interesting.
is it open source ?
Ufactory (author)  eeyoba1 year ago
Yes, we will make it open source.
Great project! This is better than my Master's Degree project! I'm jealous! :D

Congratulations! x)
Ufactory (author)  fcoerivaldojr1 year ago
Thank you so much. Maybe we can make a further communication about this project. Cheers!
Hi. i`m i have quite a few technical/concept ideas which require i believe someone of your skill sets /knowledge base. So i am curious if something like that would peak your interest. Hit me up on Skype( Birdness) or facebook so and we can discuss it further.
Sincerely Rj
ryebreadz1 year ago
This could totally be a exploratory robot on other planets design!
Ufactory (author)  ryebreadz1 year ago
An interesting idea.
Makerworks1 year ago
Are you going to make this robot open. The design and the code. I am very interested in this robot and want to build one by myself. If you can offer more information about this, it may be more helpful for me.
Thank you so much for your sharing.
Ufactory (author)  Makerworks1 year ago
Hi Makerworks,

We will make this project open source soon and also plan to make this robot as an open platform.
This! Please make it open. There is so much I could learn from an open platform like this. I have already sweaty hand :D
Ufactory (author)  Indyaner1 year ago
We are planning to make this platform on Kickstarter and we need the help of more people to make this come true.
Indyaner1 year ago
Awesome work guys! I also would love to see the next version of this roboter with an arduino + stepper Motors. But you already pushed the whole ball-balancing technology into hobbyist hands with this roboter. Thank you so much for this Tutorial. I hope to see further developments by you!
Ufactory (author)  Indyaner1 year ago
Hi Indyaner,

We are so glad that you love our project. We are trying to improve the design now and make it cheaper and more stable. We just want to make this project an open source hardware platform.So more people can use this robot to make a further development or they can also use it to learn about Kalman filter, acquisition systems and control systems. And even normal people who do not have the background of the robot can also play with this robot as entertainment. On the other hand, make it open can attract more people to develop this kind of robot.

If you want to make a further communication with us. You can send us an email at:

Thank you so much for your support!
What type of motor?
Ufactory (author)  chengjianwan1 year ago
Hi chengjianwan,

Are you in China? The motor I used is Faulhaber 2342L012. You can search in Taobao.

If you do not pursue the stability, you can choose a cheaper encoder motor.

And we decide to use the stepper motor to build a new one recently.

Looking forward for further communication.

You can send us email at:

in China
1-40 of 69Next »