Two wheel balancing robots are fun to watch. They are unusual to our eyes and always seems that it will fall. The secret is that those balances constantly struggle to fight the flipping by adjusting its vertical position. This is how famous Segways work – they constantly try to keep vertical. Simple enough, but when you try to build something similar, there are quite enough technical challenges. Madefrutos have built a lightweight balancing robot based on Arduino Nano, which packs some interesting features.
The robot so called VertiBOT was built with educational intent. The control algorithm uses kalman and complementary filter methods along with PID. Each wheel is driven by two small motors that are controlled by Atmeta328 in Arduino Nano. Robot determines its current position using 6 DOF accelerometer and gyro ADXL345/ ITG3200. Robot chassis has been 3D printed that makes it really unique. Since it is more educational project, you will find a nice description along with some theory that might help you to build your own balancer.