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::thread and std::atomic for 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/fb0 for 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

Built With

  • c++
  • closed-loop
  • cmake
  • compositevideo
  • controltheory
  • i2c
  • linux
  • machining
  • motorcontrol
  • multithreading
  • oop
  • opencv
  • pid
  • pwm
  • radio2.4ghz
  • soldering
  • solidworks
  • spi
  • systemsintegration
  • tolerancing
  • wireharnessing
Share this project:

Updates