Inspiration
Rainbow Six Siege features a compact two-wheeled reconnaissance drone that operators deploy to scout enemy positions. We wanted to bring this gadget to life as a fully functional ground robot with live video streaming.
What it does
The R6-7 Spy Bot is a two-wheeled ground reconnaissance robot that allows an operator to remotely navigate tight spaces while viewing a live camera feed on a handheld controller.
- Live FPV video streamed over 5.8 GHz analog to a portable display
- Differential drive for agile maneuvering and zero-radius turns
- Pitch-stabilized camera gimbal allowing the operator to look up/down
- IMU-based stabilization that keeps the robot level during acceleration
The drone reaches speeds up to 14 mph.
How we built it
We designed a custom hardware architecture that prioritizes low latency and power stability.
Hardware:
- Dual Raspberry Pi 4s (one on drone, one on controller)
- MAXYNOS THOR brushless motors with 19:1 planetary gearboxes
- 50A bidirectional ESCs for forward/reverse control
- MPU6050 IMU for pitch angle sensing
- TS832/RC832 5.8 GHz analog FPV system
- HV/LV System: 4S LiPo (14.8V) for motors, 18650 shield (5V) for compute
Software:
- Multi-threaded C++ with three concurrent workers:
- Gamepad input at 200 Hz
- Motor control loop at 50 Hz with PID stabilization
- Camera streaming at 30 fps to framebuffer
- Complementary filter fusing gyroscope and accelerometer data
- Rate-limited throttle ramping to prevent tip-overs
Challenges we ran into
- FPV antenna connection: Getting reliable video between the TS832 transmitter and RC832 receiver required careful positioning and testing different channels to avoid interference
- nRF24L01+PA+LNA rx/tx: Receiving and transmitting packets between the controller and drone
Accomplishments that we're proud of
- Managed to fit all hardware (two batteries, Pi, IMU, camera, servo gimbal, two motors, two ESCs, FPV transmitter) into a custom and compact chassis
- Achieved sub-100ms video latency using analog FPV instead of WiFi streaming
- Implemented smooth PID-based pitch stabilization that keeps the robot level during aggressive acceleration
What we learned
- Multi-threading in C++: Using
std::threadandstd::atomicfor lock-free communication between workers - PWM motor control: Servo-style 50 Hz PWM signals with 1000-2000μs pulse widths
- Sensor fusion: Complementary filtering to combine gyro (fast, drifts) with accelerometer (slow, noisy)
- PID tuning: Balancing Kp/Ki/Kd gains for responsive but stable control
- Linux device interfaces: V4L2 for camera,
/dev/input/js*for gamepad,/dev/fb0for framebuffer
What's next for R6-7 Spy Bot
- Better wheels and tires: We ran out of time to print the TPU-based tire
- Jumping mechanism: The in-game drone can jump, looking to add a spring-loaded launcher
- Autonomous features: Obstacle avoidance and waypoint navigation using computer vision
Log in or sign up for Devpost to join the conversation.