Scout: Surveillance UGV
S.C.O.U.T. (Surveillance-Controlled Unmanned Tracker) is a low-cost differential-drive robot I built from scratch, without ROS. It started as a remote-controlled platform and is the base for a step-by-step path to autonomy: first reliable control and sensing, then mapping, planning and vision.
An ESP32 is the main controller. An L298N dual H-bridge drives the geared DC motors for differential drive. HC-SR04 ultrasonic sensors measure distance to obstacles, an MPU6050 measures tilt and acceleration, and a FlySky FS-iA6B receiver gives manual control. A 12 V Li-ion pack powers the robot. The ESP32 and motor driver sit inside the chassis for protection.

The ESP32 hosts its own Wi-Fi network and a web server. The control page has a 3×3 button grid (forward, back, left, right, stop) and a live sensor dashboard: ultrasonic distances, X/Y acceleration from the MPU6050 and an estimated speed.
A FlySky FS-i6 transmitter drives the robot directly: channel 1 steers, channel 2 sets throttle and channel 6 switches between RC and web control. RC control always has priority, for safety.
The robot stops automatically when it loses the control signal. Simple reactive control uses ultrasonic distance thresholds to avoid obstacles.
Planned: a Raspberry Pi 4 as the main computer, a ToF depth camera, SLAM, A* or RRT path planning, wheel encoders for odometry, and PID or LQR control of wheel speed and path tracking.
What I learnt
- Embedded control: running a web server, sensor reading and motor control on one ESP32.
- Motor drives: differential drive with an L298N H-bridge.
- RC integration: reading receiver channels and arbitrating between two control sources.
- Safety design: override priority and stop-on-signal-loss.
- Sensing: ultrasonic ranging and IMU acceleration and tilt.