In this project challenge of tuning a PID controller for a single input single output (SISO) system has been overcome with a couple of reinforcement learning agents which can automatically find the optimum values for controller parameters (kp, ki, kd). To the right, you can see the simple model of the prototype in PyBullet.
First, a self-balancing robot with two coaxial wheels was simulated using the PyBullet physics library. Motors, IMU, and Inertial Measurement Unit (IMU) were added via PyBullet features. Next, the robot’s Environment has been defined using the OpenAI GYM library.
Both state space and action space of RL agents are continuous and ANN was used as a function approximator in RL agents. During the training agent’s properties recorded and plotted. Finally, we drew a comparison between agents themselves and a manually tuned controller with the classic method. To the right, you can see the Neural network architecture of policy function.