From 6c864d91ae52b7bdbd4f6b244f7211ca139d42d4 Mon Sep 17 00:00:00 2001 From: kassam Date: Fri, 10 Jul 2026 11:59:37 +0400 Subject: [PATCH] Update 2026-07-10 11:59:35 --- PIPELINE.md | 2 + README.md | 2 + diagram.svg | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 diagram.svg diff --git a/PIPELINE.md b/PIPELINE.md index 182d593..6af5848 100644 --- a/PIPELINE.md +++ b/PIPELINE.md @@ -8,6 +8,8 @@ handled**. For install/ops, see [README.md](README.md). ## 1. Big picture +![Sanad Fleet — architecture and data pipeline](diagram.svg) + ``` ROBOT (edge) │ YS LOOTAH (cloud) │ diff --git a/README.md b/README.md index 527bd19..a5ed89e 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ Every robot type ships as its own self-contained **Docker** image with a user-level **systemd auto-start service**, deployed, managed, and removed over SSH by a single script. No `docker-compose` on the robot, **no `sudo`** required. +![Sanad Fleet — architecture and data pipeline](diagram.svg) + > For the end-to-end data flow (topics → agent → HTTP → server), see > [PIPELINE.md](PIPELINE.md). diff --git a/diagram.svg b/diagram.svg new file mode 100644 index 0000000..bda05d5 --- /dev/null +++ b/diagram.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + Sanad Fleet — Architecture & Data Pipeline + Robot state -> containerized agent -> fleet server · outbound HTTPS only + + + ON THE ROBOT (edge) + AGENT + YS LOOTAH FLEET + + + + + + + G1 — map uploader + source: navigation map files + web_nav3 maps/*.db + places + maps_meta.json + + + + + + R1 — telemetry + source: DDS (unitree_hg) + rt/lf/bmsstate · rt/lowstate + iface eth10 + + + + + + Go2 — telemetry + source: DDS (unitree_go) + rt/lowstate.bms_state + unverified on hardware + + + + + + + + + + + sanad_api_<type> + Docker · --network host + read-only · never moves + + + read -> build payload -> POST + + + + systemd --user service + auto-start on boot · no sudo + + + + heartbeat if source silent + -> robot stays "online" + + loop: 2 s telemetry · 30 s map (on change) + deployed via fleet_install.sh + (rsync + docker build on robot) + + + + + HTTPS POST + Bearer token + + + + + Fleet Server — ingest API + POST …/ingest/telemetry + ~2 s + POST …/ingest/{sn}/map + on change + + Authorization: Bearer <token> + keyed by sn · mac in telemetry + + + + + + + + Dashboard · Storage · Alerts + live status · map view · fault alerts + (YS Lootah side — already built) + + + + + Outbound HTTPS only — no inbound port on the robot. Each robot type = its own Docker image, installed & managed over SSH by + fleet_install.sh · user-level systemd auto-start, no sudo. +