A four-wheel robot that tracks a worker on camera and follows them through a facility carrying picked items. Perception on a Raspberry Pi, hard real-time motor control on an ESP32, ROS2 between them.
What it does
A four-wheel robot that picks a worker out of the camera feed and follows them through a facility, carrying picked items so they do not have to. It holds a set following distance and stops on its own for shelving, pallets, and people crossing in front of it.
Two-tier compute
Perception runs on a Raspberry Pi 4: computer vision for person detection and tracking, plus LiDAR for obstacle detection. Motor control runs separately on an ESP32, with ROS2 passing messages between the two. The split is the whole point. Vision is slow and variable, and a frame that takes too long should never leave the motor loop waiting. Keeping hard real-time control on its own processor means perception latency cannot stall the wheels.
Firmware
The ESP32 firmware is C++ written in PlatformIO, driving four geared motors through bridged TB6612FNG drivers. It covers PWM control, tank-drive kinematics, and acceleration ramping so the chassis does not lurch when a new command lands. There is also a command watchdog. If the perception link drops, the chassis stops instead of carrying on with its last instruction.