Here's a great project from aadhuniklabs over at that demonstrates the use of Proportional-Integral-Derivative (PID) control, and then proceeds to show off by adding Wi-Fi remote control and an ESP32 Camera Module.

PID control is central to many fields, especially in industry and robotics: For us to perform any kind of autonomous activity, we need a method of gauging whether we’re doing the right thing or not, so we can correct our behavior accordingly.
Self-balancing mobile robot
Self-Balancing Mobile Robot. Source: aadhuniklabs on

The feedback loop inherent in the PID mechanism is what keeps our bot standing. Leaning a little too far forward? Move the wheels forward a bit to catch up, and vice-versa.

To achieve this, the author demonstrates the use of a Raspberry Pi Pico board running in dual-core mode at 250 MHz. Getting the robot to balance is an impressive footless feat. The rest is just showing off:
Dog with self-balancing mobile robot
The self-balancing mobile robot meets a fully-autonomous friend. Source: aadhuniklabs on
An ESP32 Camera Module sends a live video feed to the host controller (a PC) via Wi-Fi (ESP8266), and you can control the robot to move it around (so it does more than just balance). Do you have to point the robot in exactly the direction you want the camera to look? No, the bot design also features a pan-tilt-zoom controller for the camera, so you can even move the camera while the robot is minding its own business doing its balancing thing.

Best of all, the documentation for all of this is really comprehensive, so you can get it all up and running (wheeling?) in about three hours. Check out the detailed project here.

For more on PID control with the Raspberry Pi, check out the book, PID-based Practical Digital Control with Raspberry Pi and Arduino Uno!