This book is concerned with developing a self-balancing two- wheeled robot. The robot is a based on the classical inverted pendulum control problem. The main focus of this book is how to design a suitable controller to keep the robot balancing at the upright position. This involves writing a control code for the robot to balance and modifications of the robot design structure. A secondary objective is to investigate the robot's ability to be in motion whilst balancing. A robot controller has been designed and simulated using Simulink© environment to study the robot response. Afterwards, a controlling code has been implemented and deployed on the robot microcontroller board to study the realtime response of the robot. Detailed simulations and programming code steps are provided and explained in full within the book chapters. A study and analysis of the robot behaviour is presented to show the robot response to the controller. The design had many constraints and challenges. Proposed solutions were demonstrated and applied. This book will provide researchers of this classical problem a demonstration of how to apply a simple controlling algorithm to similar problems.