Skip to content
MISTLabPublic

About

No description, website, or topics provided.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

SwarmDeck

One browser dashboard for a mixed robot fleet. Connect ROS 1, ROS 2, simulated, or custom robots to view live status, drive and navigate, inspect shared 2D/3D maps, and review camera feeds and detections. The central server runs without ROS.

SwarmDeck dashboard with a simulated fleet and shared 3D map

Try it

With Docker, Compose v2, and make installed, run from the repository root:

docker compose -f deploy/compose/docker-compose.yml --profile mock up --build -d

Open localhost:5173. This starts a synthetic fleet; sensor-based 3D mapping needs a simulator or physical robots. Use make docker-down to stop the stack.

ARGoS is the default simulator. For a sensor-equipped fleet:

make up-sim                  # software rendering + Fast-LIVO2
# Or: make up-sim RENDER=gpu  # NVIDIA rendering
make down-sim                # stop simulation; keep dashboard services

The first simulation build is large. NVIDIA rendering requires the NVIDIA Container Toolkit. See simulation setup for other renderers and scenarios, or hardware bring-up for physical robots.

Architecture

flowchart LR
    Robots["Robots / ARGoS / mock"] <--> Adapters["Adapters"]
    Adapters <-->|"WebSocket + HTTP"| Server["Fleet server :8080"]
    Server <-->|"Keyframes / maps"| SLAM["SLAM service :8090"]
    UI["Svelte dashboard :5173"] <-->|"REST + WebSocket"| Server
    UI <-->|"Chat / SSE"| Cortex["Optional Cortex :8085"]
    Cortex -->|"Fleet API"| Server
    Adapters -->|RTSP| Media["MediaMTX"]
    Media -->|WebRTC| UI
Loading

The UI uses Svelte 5, Canvas 2D, and Three.js. Adapters translate robot-specific interfaces into a shared protocol. The separate SLAM service aligns robot trajectories and publishes maps. Cortex is an optional AI assistant. See the architecture guide and review for component ownership, frame conventions, and maintenance priorities.

Develop locally

Requires Python 3.10+, Node.js 22.12+, npm, and make.

make install           # server environment + locked UI dependencies
make demo              # server + mock fleet + UI at localhost:5173

SLAM uses a separate Python 3.12 / NumPy < 2 environment because of its GTSAM binding. Install it with make install-slam (requires uv), then make slam in another terminal. Cortex setup is in agent/README.md.

make test-server       # server, adapters, and ROS-free scenario/launch checks
make test-ui ui-build  # frontend types, tests, and production build
make install-agent install-slam
make test              # all four suites, including Cortex and SLAM

Read CONTRIBUTING.md for the development workflow and AGENTS.md for coding-agent instructions. make help lists commands.

More information

SwarmDeck is a research and development system. Authentication and complete session recording/replay are unfinished; keep robot controls on a trusted network or behind an authenticating proxy. No project-wide license is currently declared; bundled third-party components retain their own licenses.

About

No description, website, or topics provided.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages