A 2-wheel self-balancing robot - Alfred Setiadi (2015)
This project involves the development of a microcontroller based controller for a 2-wheel self-balancing robot, where the digital feedback control is based on a Linear Quadratic Regulator (LQR) algorithm using a state-space representation to model the dynamics of the system. The initial process begins with the study of the robot designs and the components that make up the robots. Schematics of the robot are then created for references. Understanding of each component used in the design is then used to determine the parameters to be used in the state-space representation. The flow of the report is as follows. It first discusses the procedure used to obtain the measurements of the (four) state variables that are crucial for the implementation of the robot. Simulations of the system dynamic using Matlab are then presented. These simulations are used to determine the appropriate feedback gain level required for the robot to balance itself. Implementation of the digital control loop, in the form of pseudo-code, is then described, which provide an overview of how the controller is designed. Test results indicate that the model used is still not very accurate. The main causes include reasons like assumptions made, and parts not performing at the level specified in the data sheet. In order to overcome the imperfect model, fine-tuning method was used although it is time-consuming and is a tedious process. Several improvements were made to the control algorithm, mainly to address problems due to steady-state error and dead-zone level of the motors. The end result of the project is that the robot is able to perform at a satisfactory level, including the ability to withstand minor nudge applied and remained in balance. This demonstrates that the implementation of LQR algorithm is largely successful although it was improved using a fine-tuning method. In conclusion this project has provided a good exposure to using formal modelling technique for control system design, and is also an interesting experience in exploring the feasibility of using adaptive control during the course of this project.