docs: detach from H1 fork — rename project to RealSense-D435i-G1
This repo is now an independent project tracking the G1 deploy. The upstream remote points to RealSense-D435i-G1 on git.humion.it and the default branch is `main`. The H1 repo (RealSense-D435-H1) is now a separate sibling project, linked from the README under "Repo correlati". Sweeps the README for stale references to `branch camera-g1`, updates the architecture diagram and repo-tree header to the new project name, and updates rsync/cd paths to the canonical RealSense-D435i-G1 folder. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
1451d51211
commit
ece2171678
1 file changed
+30
-27
@@ -7,10 +7,11 @@ drop-in replacement del container Nuwa nella pipeline del pestello, così
|
|||||||
i client esistenti (`pestello-pose-detector`, frontend React, ecc.)
|
i client esistenti (`pestello-pose-detector`, frontend React, ecc.)
|
||||||
consumano frame senza modifiche.
|
consumano frame senza modifiche.
|
||||||
|
|
||||||
Questo branch (`camera-g1`) è la porta del repo originale H1 verso il
|
Questo repo è il deploy per il robot **Unitree G1** (Jetson Xavier NX,
|
||||||
robot **Unitree G1** (Jetson Xavier NX, JetPack 5.1.x). Il repo upstream
|
JetPack 5.1.x): [git.humion.it/.../RealSense-D435i-G1](https://git.humion.it/Labotics-OnGianni/RealSense-D435i-G1).
|
||||||
è su [git.humion.it](https://git.humion.it/Labotics-OnGianni/RealSense-D435-H1)
|
Nasce come fork del repo H1 originale ([RealSense-D435-H1](https://git.humion.it/Labotics-OnGianni/RealSense-D435-H1)),
|
||||||
— il nome `…-H1` è storico, non cambia il fatto che gira anche su G1.
|
dal quale conserva la storia git completa fino al commit di porting su
|
||||||
|
G1. Da quel punto in poi i due progetti evolvono indipendentemente.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ robot **Unitree G1** (Jetson Xavier NX, JetPack 5.1.x). Il repo upstream
|
|||||||
│ │ /api/intrinsics │
|
│ │ /api/intrinsics │
|
||||||
│ ▼ │
|
│ ▼ │
|
||||||
┌───────────────────┴────┐ │
|
┌───────────────────┴────┐ │
|
||||||
│ RealSense-D435-H1 ⬅️ │ ← QUESTO REPO │
|
│ RealSense-D435i-G1 ⬅️ │ ← QUESTO REPO │
|
||||||
│ (sul G1, port 8878) │ │
|
│ (sul G1, port 8878) │ │
|
||||||
└────────────────────────┘ │
|
└────────────────────────┘ │
|
||||||
(era: Nuwa-HP60C) │
|
(era: Nuwa-HP60C) │
|
||||||
@@ -101,7 +102,7 @@ da dentro i container). Quindi buildiamo il frontend una volta sull'host,
|
|||||||
e il Dockerfile copia solo il `dist/` già pronto.
|
e il Dockerfile copia solo il `dist/` già pronto.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/robot/RealSense-D435-H1
|
cd ~/robot/RealSense-D435i-G1
|
||||||
docker run --rm --dns 8.8.8.8 \
|
docker run --rm --dns 8.8.8.8 \
|
||||||
-v "$(pwd)/src/frontend/react:/app" -w /app \
|
-v "$(pwd)/src/frontend/react:/app" -w /app \
|
||||||
node:22-alpine sh -c 'npm install && npm run build'
|
node:22-alpine sh -c 'npm install && npm run build'
|
||||||
@@ -113,7 +114,7 @@ Da rifare solo quando cambi qualcosa sotto `src/frontend/react/`.
|
|||||||
### Run
|
### Run
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/robot/RealSense-D435-H1
|
cd ~/robot/RealSense-D435i-G1
|
||||||
|
|
||||||
# Build + run (la prima volta build di librealsense da source: ~25 min)
|
# Build + run (la prima volta build di librealsense da source: ~25 min)
|
||||||
sg docker -c "docker compose up -d"
|
sg docker -c "docker compose up -d"
|
||||||
@@ -221,7 +222,7 @@ CORS_ORIGINS=*
|
|||||||
|
|
||||||
Note:
|
Note:
|
||||||
- `CAMERA_WIDTH/HEIGHT/FPS` su G1 vengono **rispettati** (USB 3 → tutto
|
- `CAMERA_WIDTH/HEIGHT/FPS` su G1 vengono **rispettati** (USB 3 → tutto
|
||||||
il range supportato dalla D435i è disponibile). Sul branch H1 erano
|
il range supportato dalla D435i è disponibile). Sul repo H1 erano
|
||||||
ignorati e forzati a 640x480@15 YUYV.
|
ignorati e forzati a 640x480@15 YUYV.
|
||||||
- `.env` è nel `.gitignore` — non viene committato. Tieni una copia di
|
- `.env` è nel `.gitignore` — non viene committato. Tieni una copia di
|
||||||
backup; `.env.example` è la struttura di riferimento.
|
backup; `.env.example` è la struttura di riferimento.
|
||||||
@@ -259,7 +260,7 @@ Il codice "live" gira sul robot. Per modifiche:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Sul robot G1
|
# 1. Sul robot G1
|
||||||
cd ~/robot/RealSense-D435-H1
|
cd ~/robot/RealSense-D435i-G1
|
||||||
# ...modifiche...
|
# ...modifiche...
|
||||||
|
|
||||||
# (se hai toccato il frontend)
|
# (se hai toccato il frontend)
|
||||||
@@ -277,13 +278,14 @@ rsync -avz --delete \
|
|||||||
--exclude='node_modules' --exclude='src/frontend/react/dist' \
|
--exclude='node_modules' --exclude='src/frontend/react/dist' \
|
||||||
--exclude='images/*' --exclude='models/*' \
|
--exclude='images/*' --exclude='models/*' \
|
||||||
--exclude='.claude' --exclude='.omc' \
|
--exclude='.claude' --exclude='.omc' \
|
||||||
~/robot/RealSense-D435-H1/ \
|
~/robot/RealSense-D435i-G1/ \
|
||||||
harry@192.168.123.100:/opt/docker/robotserver/RealSense-D435-H1/
|
harry@192.168.123.100:/opt/docker/robotserver/RealSense-D435i-G1/
|
||||||
|
|
||||||
# 3. Push da harry (il G1 non può push diretto a git.humion.it — vedi sotto)
|
# 3. Push da harry (il G1 non può push diretto a git.humion.it — vedi sotto)
|
||||||
|
# Assicurati che harry abbia un clone del nuovo repo RealSense-D435i-G1
|
||||||
|
# in /opt/docker/robotserver/RealSense-D435i-G1 (clone una tantum).
|
||||||
ssh harry@192.168.123.100
|
ssh harry@192.168.123.100
|
||||||
cd /opt/docker/robotserver/RealSense-D435-H1
|
cd /opt/docker/robotserver/RealSense-D435i-G1
|
||||||
git checkout camera-g1
|
|
||||||
git add . && git commit -m "..." && git push
|
git add . && git commit -m "..." && git push
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -291,20 +293,19 @@ git add . && git commit -m "..." && git push
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Su harry
|
# 1. Su harry
|
||||||
cd /opt/docker/robotserver/RealSense-D435-H1
|
cd /opt/docker/robotserver/RealSense-D435i-G1
|
||||||
git checkout camera-g1
|
|
||||||
git pull # o sviluppa direttamente
|
git pull # o sviluppa direttamente
|
||||||
# ...modifiche...
|
# ...modifiche...
|
||||||
git add . && git commit -m "..." && git push
|
git add . && git commit -m "..." && git push
|
||||||
|
|
||||||
# 2. Sul robot G1
|
# 2. Sul robot G1
|
||||||
cd ~/robot/RealSense-D435-H1
|
cd ~/robot/RealSense-D435i-G1
|
||||||
rsync -avz --delete \
|
rsync -avz --delete \
|
||||||
--exclude='.env' --exclude='__pycache__' --exclude='*.pyc' \
|
--exclude='.env' --exclude='__pycache__' --exclude='*.pyc' \
|
||||||
--exclude='images/*' --exclude='models/*' \
|
--exclude='images/*' --exclude='models/*' \
|
||||||
--exclude='.claude' --exclude='.omc' \
|
--exclude='.claude' --exclude='.omc' \
|
||||||
harry@192.168.123.100:/opt/docker/robotserver/RealSense-D435-H1/ \
|
harry@192.168.123.100:/opt/docker/robotserver/RealSense-D435i-G1/ \
|
||||||
~/robot/RealSense-D435-H1/
|
~/robot/RealSense-D435i-G1/
|
||||||
|
|
||||||
# rifare la build frontend se è cambiata, poi:
|
# rifare la build frontend se è cambiata, poi:
|
||||||
sg docker -c "docker compose build backend && docker compose up -d --force-recreate"
|
sg docker -c "docker compose build backend && docker compose up -d --force-recreate"
|
||||||
@@ -329,7 +330,7 @@ Su G1 questo significa quasi sempre **una di due cose**:
|
|||||||
v2.50.0. Il D435i fw `05.15.x` non funziona con v2.55+. Controlla
|
v2.50.0. Il D435i fw `05.15.x` non funziona con v2.55+. Controlla
|
||||||
`Dockerfile` riga 11 — deve essere `ARG RS_VERSION=v2.50.0`.
|
`Dockerfile` riga 11 — deve essere `ARG RS_VERSION=v2.50.0`.
|
||||||
|
|
||||||
Se invece sei sul branch `main` (H1), su USB 2 questo errore è quasi
|
Se invece stai lavorando sul repo H1, su USB 2 questo errore è quasi
|
||||||
sempre un mismatch di profilo color (BGR8 vs YUYV) — vedi STATUS.md.
|
sempre un mismatch di profilo color (BGR8 vs YUYV) — vedi STATUS.md.
|
||||||
|
|
||||||
### `RuntimeError: Failed to resolve request`
|
### `RuntimeError: Failed to resolve request`
|
||||||
@@ -388,7 +389,7 @@ Workaround: `rsync` da/verso harry e push da lì. Vedi
|
|||||||
## Struttura del repo
|
## Struttura del repo
|
||||||
|
|
||||||
```
|
```
|
||||||
RealSense-D435-H1/
|
RealSense-D435i-G1/
|
||||||
├── Dockerfile # multi-stage: librealsense v2.50.0 + runtime
|
├── Dockerfile # multi-stage: librealsense v2.50.0 + runtime
|
||||||
├── docker-compose.yml # backend + nats opzionale + frontend-dev
|
├── docker-compose.yml # backend + nats opzionale + frontend-dev
|
||||||
├── .env / .env.example # config (NON committare .env)
|
├── .env / .env.example # config (NON committare .env)
|
||||||
@@ -417,15 +418,17 @@ RealSense-D435-H1/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Branches
|
## Repo correlati
|
||||||
|
|
||||||
- `main` — deploy storico H1 (D435 su USB 2, YUYV, ~4 fps)
|
- **[RealSense-D435i-G1](https://git.humion.it/Labotics-OnGianni/RealSense-D435i-G1)** — questo repo. Deploy G1 (D435i su USB 3.2, BGR8, 30 fps).
|
||||||
- `camera-g1` — **questo branch**, deploy G1 (D435i su USB 3.2, BGR8, 30 fps)
|
- **[RealSense-D435-H1](https://git.humion.it/Labotics-OnGianni/RealSense-D435-H1)** — repo di origine, deploy storico H1 (D435 su USB 2, YUYV, ~4 fps).
|
||||||
|
|
||||||
Il driver Python è lo stesso su entrambi — distingue il path runtime
|
Il driver Python è lo stesso su entrambi i repo (almeno al momento del
|
||||||
leggendo `usb_type_descriptor` del device. Le differenze tra branch sono
|
fork): distingue il path runtime leggendo `usb_type_descriptor` del
|
||||||
nel `Dockerfile` (versione SDK, stage frontend) e nel `.env` (identità
|
device. Le differenze tra i due repo sono nel `Dockerfile` (versione
|
||||||
servizio).
|
SDK librealsense, stage di build del frontend) e nel `.env` (identità
|
||||||
|
servizio). Patch ai due path runtime andrebbero portate manualmente da
|
||||||
|
un repo all'altro quando rilevanti.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user