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.

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.
<p>HI.. Can you please e-mail me the code?</p><p>and how the wires are connected?</p><p>uzairabro94@gmail.com</p>
I wants to make it for college project. Please can you send me parts list, electronic connection and code for it. My email address is rajatnegi108@gmail.com.
<p>im currently building this using arduino mega 2560. can i get the code for this</p>
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. <br>Thank you so much for your sharing.
Hi Makerworks, <br> <br>We will make this project open source soon and also plan to make this robot as an open platform.
<p>Is this still going to be made open?</p>
This! Please make it open. There is so much I could learn from an open platform like this. I have already sweaty hand :D
We are planning to make this platform on Kickstarter and we need the help of more people to make this come true.
<p>i would like to build this pls can i have the code pls???? my email is sashi_122@hotmail.com</p>
hi <br>I would love to build this robot. <br>Could i have the code for it please? is this open source? <br>Thanks and great work, its a very beautiful robot. <br>simon srosefx@gmail.com
<p>can you share me about code for it? binhhau@gmail.com</p>
Hello Ufactory, <br>could you send the code or algorithm of your project to me? My email is ldmvn@yahoo.com.
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?
<p>Hi, I currently working on a ball balancing robot using Arduino MEGA 2560, can you please send me the Arduino source code to me? thianyeek@gmail.com</p>
<p>hey this is nice. can u send me the source code to sashi_122@hotmail.com</p>
<p>can u send me the source code of balancing the robot... using arduino... </p>
Yes, you can send me an email for this code at: ufactory.info@gmail.com <br> <br>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. ☺
<p>hello.. could u send me the source code for this robot? my email dilaeryza@gmail.com thank you</p>
Hi Lauren, <br> <br>I have sent your the source code of this robot. Hope for further communication. <br> <br>Best Regards, <br>UFactory Team
<p>I want an Omni Ball Butler. I want tracking (maybe if I wore a clearly visible blue belt) and Voice commands to follow.. I'm JUST starting, so it'll be a looongg time. But I came across a Thesis someone did, and there is wonderfully dtailed code for an omni ball, using Arduino. The link is here: http://control.lth.se/Publication/5897.html</p>
<p>Star Wars must have seen this build... </p><p><a href="http://www.feistees.com/wp-content/uploads/2014/12/drdrl.jpg" rel="nofollow">http://www.feistees.com/wp-content/uploads/2014/12...</a></p><p>Excellent work, I hope to find more details.</p>
<p>Would these wheels be any good to use if not can you send me a link to the ones you got? <a href="http://www.rapidonline.com/design-technology/vex-iq-200mm-travel-omni-wheel-pack-of-2-70-7926" rel="nofollow">http://www.rapidonline.com/design-technology/vex-i...</a> </p><p>Also by any chance could you show the Electric modules?</p>
<p>What size ball did you use?</p><p>I would like to know also the code if you could send it to me </p><p>thankyou</p>
<p>Hello. Nice work! Would you share the code?</p>
<p>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 [[ <a href="mailto:ryeon1009@gmail.com" rel="nofollow">ryeon1009@gmail.com</a> ]] </p>
<p>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 dilaeryza@gmail.com thank you for your help :)</p>
<p>btw your project is really awesome ;) </p>
<p>The University Of Zurich made a similar robot to yours</p>
<p>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.</p>
<p>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?</p>
<p>only http://www.simplelabs.co.in/content/triple-axis-accelerometer-gyro-breakout-mpu-6050 may be sufficient ??</p>
<p>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 ?</p>
I have a question here, why is brushed motor is used instead of brushless DC motor, stepper motor or servo?
Hi thw777, <br> <br>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.
<p>Hi, may I request for the source code for this robot?</p>
I am very glad to have found this article. Ever since I saw this IEEE video on YouTube ( http://www.youtube.com/watch?v=bI06lujiD7E ) I have wanted to build a mobility device ( a &quot;ball-chair&quot;? ) 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?
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.
it is nice project and interesting. <br>is it open source ?
Yes, we will make it open source.
Great project! This is better than my Master's Degree project! I'm jealous! :D <br> <br>Congratulations! x)
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. <br>Sincerely Rj
This could totally be a exploratory robot on other planets design!
An interesting idea.
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!
Hi Indyaner, <br> <br>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. <br> <br>If you want to make a further communication with us. You can send us an email at: ufactory.info@gmail.com <br> <br>Thank you so much for your support!
What type of motor?
Hi chengjianwan, <br> <br>Are you in China? The motor I used is Faulhaber 2342L012. You can search in Taobao. <br>http://item.taobao.com/item.htm?spm=a230r.1.14.21.XoJ6g2&amp;id=19059953465 <br> <br>If you do not pursue the stability, you can choose a cheaper encoder motor. <br> <br>And we decide to use the stepper motor to build a new one recently. <br> <br>Looking forward for further communication. <br> <br>You can send us email at: <br>ufactory.info@gmail.com <br> <br>

About This Instructable


455 favorites


More by Ufactory: UARM WITH VOICE CONTROL – EASYVR MODULE uArm Play Number Song with A Toy Piano Control uArm Metal with ultrasonic sensor
Add instructable to: