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 prototype model 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 was defined using the OpenAI GYM library.
RL agents' state space and action space are continuous, and ANN was used as a function approximator in RL agents. During the training agent's properties were recorded and plotted. Finally, we drew a comparison between agents themselves and a manually tuned controller with the classic method. You can see the Neural network architecture of policy function to the right.