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

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 59Next »
leadzeplin11 days ago

The University Of Zurich made a similar robot to yours

DhatchanaM1 month 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.

MykelM6 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_syed7 months ago

only may be sufficient ??

ism_syed7 months 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 ?

thw77711 months ago
I have a question here, why is brushed motor is used instead of brushless DC motor, stepper motor or servo?
Ufactory (author)  thw77711 months 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.
thw777 Ufactory7 months ago

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

wbarrows19 months 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)  wbarrows19 months 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.
eeyoba10 months ago
it is nice project and interesting.
is it open source ?
Ufactory (author)  eeyoba10 months ago
Yes, we will make it open source.
fcoerivaldojr11 months ago
Great project! This is better than my Master's Degree project! I'm jealous! :D

Congratulations! x)
Ufactory (author)  fcoerivaldojr11 months ago
Thank you so much. Maybe we can make a further communication about this project. Cheers!
rmonsen1 Ufactory11 months ago
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
LaurenPan12 months 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?
Ufactory (author)  LaurenPan12 months ago
Yes, you can send me an email for this code at:

We are trying to use Arduino as the controller recently.
LaurenPan Ufactory11 months ago
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. ☺
Ufactory (author)  LaurenPan11 months ago
Hi Lauren,

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

Best Regards,
UFactory Team
ryebreadz11 months ago
This could totally be a exploratory robot on other planets design!
Ufactory (author)  ryebreadz11 months ago
An interesting idea.
Makerworks12 months 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)  Makerworks12 months ago
Hi Makerworks,

We will make this project open source soon and also plan to make this robot as an open platform.
Indyaner Ufactory12 months ago
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)  Indyaner12 months ago
We are planning to make this platform on Kickstarter and we need the help of more people to make this come true.
Indyaner12 months 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)  Indyaner12 months 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!
chengjianwan12 months ago
What type of motor?
Ufactory (author)  chengjianwan12 months 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
The video said brushed DC gearmotor. Basically the most common type of motor.
Ufactory (author)  PaulMakesThings12 months ago
Yes, thanks for your reply Paul.
tmiddlecoat12 months ago
Thats so cool! You should make an army of them to serve people beers.
Ufactory (author)  tmiddlecoat12 months ago
That's an interesting idea, we can try this in our next version.
FoamboardRC12 months ago
This is so cool good work!
Ufactory (author)  FoamboardRC12 months ago
Thank you so much. We will make a further work about this robot.
bobcroucher12 months ago
Hi, I am interested in your use of the Kalman filter. I'm assuming that you used it to combine the results of the geomagnetic sensor with the gyro results to get a more stable, and less drifting orientation result, giving you the best of both. I am interested in using this for world based robot navigation. Can you share any of your discoveries or details about this?
Ufactory (author)  bobcroucher12 months ago
Hi bobcroucher,

As you said, we used the Kalam filter to make the balance. But now we don't handle the yaw angle, as you can see from the video the robot did not lock the yaw angle well. We consider to use the Z-axis of the gyroscope and the magnetometer to achieve the yaw control.

We will make this project open source soon and also plan to make this robot as an open platform.
What do you think to make this robot as an open platform?
Stone201312 months ago
Wow!I want to do it ! Could you give me email address ,I want to Communication with you.
Ufactory (author)  Stone201312 months ago

Looking forward for a further communication.
1-40 of 59Next »