Skip to content

adw0rd/SocksTank

Repository files navigation

SocksTank: Finds Your Socks with YOLO, NCNN, and a Raspberry Pi Robot Tank

SocksTank robot Freenove tank base

SocksTank is a browser-controlled Raspberry Pi robot that finds socks with YOLO model inference, runs locally with NCNN, and can switch to a remote GPU server when needed.

What you can do with it:

Why it stands out:

Built on top of Freenove Tank Robot Kit (PCB Version V1.0, but V2.0 is also supported). If you've already assembled the Freenove Tank, it's time for the next step — train your own model and run it on a Raspberry Pi.

Quick start:

  1. Set up the hardware: RPi 5 setup
  2. Prepare a dataset: dataset guide
  3. Train and export the model: training guide
  4. Launch and deploy the stack: launch guide

Demo:

  • Ready for a future GIF/video drop-in:
![SocksTank demo](assets/demo.gif)
  • Until the camera build is complete, this stays as a placeholder.

Highlights:

Architecture

Browser UI (React/Vite)
        |
        v
FastAPI backend (REST + WebSocket + static frontend)
        |
        +--> Camera + telemetry + hardware control
        |
        +--> Inference router
                |
                +--> Local PyTorch / NCNN on the host
                |
                +--> Remote GPU inference server over HTTP
  • Frontend: React + Vite web panel for live video, controls, sensors, and inference mode management
  • Backend: FastAPI app that serves the API, WebSocket telemetry, and the built frontend
  • Inference: routing logic that switches between local .pt, local NCNN, and remote GPU backends
  • Hardware: RPi integration layer for motors, servos, LEDs, and sensors

Documentation

Recommended path

  1. RPi 5 setup (recommended)
  2. Dataset guide
  3. Training and model export
  4. Run and deploy
  5. Web control panel and inference modes

Build your model

Run and operate

Reference

CI and Testing

  • Tests GitHub Actions workflow runs backend tests on push and pull_request.
  • UI E2E GitHub Actions workflow runs Playwright UI tests on pull_request, nightly, and manual dispatch.
  • On UI failures, Playwright artifacts are retained (trace, screenshot, video).

SocksTank — робот-танк на базе Raspberry Pi, который находит носки с помощью YOLO-инференса, управляется из веб-панели в браузере и может выполнять инференс как локально через NCNN, так и удалённо на GPU-сервере.

Что с ним можно делать:

Чем проект интересен:

Построен поверх Freenove Tank Robot Kit (PCB Version V1.0, но поддерживается и V2.0). Если вы уже собрали Freenove Tank, самое время перейти к следующему этапу — обучить собственную модель и запустить её на Raspberry Pi.

Быстрый старт:

  1. Подготовить железо: настройка RPi 5
  2. Подготовить датасет: гайд по датасету
  3. Обучить и экспортировать модель: гайд по обучению
  4. Запустить и задеплоить проект: гайд по запуску

Демо:

  • Блок уже подготовлен под будущее demo video/GIF:
![SocksTank demo](assets/demo.gif)
  • Пока сборка камеры не завершена, это placeholder.

Ключевые ссылки:

Архитектура

Browser UI (React/Vite)
        |
        v
FastAPI backend (REST + WebSocket + built frontend)
        |
        +--> Camera + telemetry + hardware control
        |
        +--> Inference router
                |
                +--> Local PyTorch / NCNN on the host
                |
                +--> Remote GPU inference server over HTTP

Документация

Рекомендуемый путь

  1. Настройка RPi 5 (рекомендуется)
  2. Гайд по датасету
  3. Тренировка и экспорт модели
  4. Запуск и деплой
  5. Веб-панель и режимы инференса

Подготовка модели

Запуск и эксплуатация

Справка


Co-authors

  • Mikhail Andreev (adw0rd)
  • Claude Code
  • OpenAI Codex