Vai al contenuto principale

Suggerimenti

Nessun risultato per “

Prova con un brand o una categoria diversa.

Unitree Go2 in missione industriale avanzata
3 Livello 3 · Skill design · Advanced

Progettare skills autonome

La parte che distingue un developer da un system integrator. Come si progetta un comportamento autonomo che funziona in produzione: architettura percezione → decisione → azione, Nav2, safety envelope, monitoring. Case study reale: skill Ispezione Bubbles.

~20 ore
SDK2 · ROS2 · Nav2
Prerequisito: Livello 2
Modulo 1 · 40 min

Cos'è uno skill e perché non è solo uno script

Uno skill è un comportamento autonomo verticale: ha un obiettivo preciso (fare una ronda, ispezionare una pompa, consegnare un pacco), gira senza supervisione umana continua, gestisce le sue failure mode, e comunica i risultati a chi di competenza.

Uno script Python che fa camminare il robot da A a B non è uno skill. Diventa uno skill quando aggiungi: percezione ambientale, logica decisionale, recupero da errori, reporting strutturato, versioning, monitoring.

Il test dello skill vero

Se puoi lanciarlo alle 22:00, tornare alle 6:00 e trovare un report affidabile sul tuo desk senza che ti sia arrivata una chiamata stanotte — è uno skill. Altrimenti è uno script.

Script vs Skill

Aspetto
Script
Skill
Supervisione
Umano presente
Autonomo
Errori
Crash + stop
Recovery strategy
Output
Log su stdout
Report strutturato
Safety
Assente
E-stop + envelope
Deploy
Manuale
Versioned + OTA
Modulo 2 · 90 min

Architettura a tre strati

Quasi ogni skill che funziona in produzione si struttura su tre strati: percezione (capire l'ambiente), decisione (cosa fare adesso), azione (muovere il robot). Un quarto strato, safety, è trasversale e può bloccare qualsiasi azione.

1

Percezione

Trasforma grezzo sensoriale in stato ambientale utile. Non è "punti LiDAR" — è "c'è un ostacolo a 2m a ore 10, pompa P1 vista a 30°C, porta aperta".

Stack: Point-LIO, YOLO, ROS2 perception stack
2

Decisione

Data lo stato + l'obiettivo skill, cosa facciamo adesso? State machine per skill classici, LLM/policy RL per skill complessi, behavior tree per casi gerarchici.

Stack: SMACH, BehaviorTree.CPP, LLM planner
3

Azione

Esegue il comando: navigazione verso waypoint, attivazione payload (termica, microfono), trigger di reporting. Usa SDK2 high-level per skill tipici.

Stack: SDK2 SportClient, Nav2, payload drivers
Modulo 4 · 90 min · Critico

Safety envelope: cosa deve mai succedere

Un robot autonomo è responsabilità di chi lo deploya. Un envelope di sicurezza è l'insieme di vincoli che deve valere in ogni momento. Se vengono violati, lo skill si ferma — anche se sta eseguendo una missione.

Vincoli spaziali

  • • Geofencing hard (il robot non attraversa mai la linea gialla del magazzino)
  • • No-go zones dinamiche (zone con personale presente, rilevate via RGB)
  • • Distanza minima da umani (1.5m di default, configurabile)
  • • Fine missione se esce da area coperta da rete (no comando di stop remoto)

Vincoli temporali

  • • Timeout totale missione (se skill dura > 60 min → interrupt)
  • • Watchdog percezione (se no dati LiDAR per > 2s → stop)
  • • Dead-man check ogni 30s (skill "pinga" un sistema esterno)
  • • Auto-return a base se batteria < 20%

Vincoli fisici

  • • Temperatura motori < soglia (es. 70°C per Go2)
  • • Inclinazione corpo < 30° (segnale di caduta imminente)
  • • Velocità lineare < 1 m/s in zone indoor
  • • Current draw motori < 90% nominal (sovraccarico)

Canali di escape

  • • E-stop fisico (pulsante hardware su robot / remote)
  • • E-stop software (MQTT topic sempre ascoltato)
  • • E-stop da dashboard cloud (per operatori remoti)
  • • Failsafe: su perdita totale network → lie down sicuro
Regola d'oro. Il safety layer è indipendente dalla decisione layer: scritto separatamente, testato separatamente, esegue anche se il decision layer crasha. Se non è così, non hai un safety layer — hai una checkbox.
Case study · reale

Come abbiamo costruito la skill Ispezione

Lo skill "Ispezione autonoma" di Bubbles è in produzione su impianti industriali italiani. Ronde notturne di pompe, quadri elettrici, sottoservizi, con termografia, 4D LiDAR e reporting in SCADA/CMMS. Prova il simulatore in browser.

Architettura della skill

P
Percezione
LiDAR L2 → Point-LIO per localization. Termocamera FLIR Boson → stream termografico. RGB 4K → YOLO per lettura strumenti.
D
Decisione
Behavior tree: per ogni waypoint pompa → ferma → acquisisci termica → controllo soglia → se anomalia trigger alert → prossimo waypoint. Timeout e retry logic.
A
Azione
Nav2 verso waypoint (SDK2 SportClient come cmd_vel output). Attivazione payload via GPIO. Invio eventi via MQTT a gateway edge → SCADA.
S
Safety envelope
Geofence pre-programmato su mappa Point-LIO. Dead-man ping a gateway ogni 20s. Auto-return base a batteria < 20%. E-stop MQTT topic sempre ascoltato.
Skill ispezione Bubbles su Unitree Go2 in impianto industriale
Live in browser
Simulatore 3D skill Ispezione
Prova la skill nel tuo browser
8-12
Waypoint per ronda tipica
~45 min
Durata ronda Go2
10 Hz
Rate decision loop
0
Incidenti in 6 mesi produzione
Modulo 6 · 90 min

Deployment: dal laptop al robot in produzione

Avere codice che funziona sul tuo laptop non significa averlo in produzione. Serve packaging ripetibile, versioning, rollback, monitoring. I template Bubbles organizzano tutto questo.

Packaging con Docker

Il tuo skill come container Docker: ROS2 + deps + codice. Deploy standardizzato su NVIDIA Jetson (edge) o sul CPU onboard del Go2.

  • • Base image: ros:humble-ros-base
  • • Layer skill + config
  • • Tag per versione (semver)
  • • Push su registry privato

OTA update del skill

Gateway edge pull-a nuove versioni dal registry. Rollback automatico se lo skill fallisce 3 volte di fila. Canary su 1 robot prima del fleet.

  • • Watch registry ogni 5 min
  • • Health check post-update
  • • Rollback a ultima versione stabile
  • • Log centralizzato per audit

Monitoring in produzione

Lo skill espone metriche via Prometheus/OpenTelemetry. Dashboard Grafana per flotta. Alerting su deviazioni (durata missione, tasso anomalie, errori).

  • • Metriche per missione (durata, waypoint completati)
  • • Heartbeat robot (online / offline)
  • • Error rate per tipo
  • • Integrazione PagerDuty / Teams

Template repo Bubbles

Abbiamo pubblicato un template repo che include tutta questa struttura. Clona, personalizza, deploy.

  • • Docker + ROS2 + Unitree SDK2
  • • BehaviorTree skeleton
  • • Nav2 params + BT custom
  • • CI/CD con GitHub Actions
In arrivo: contatta il team per early access.
Hai finito il percorso

Pronto a mettere in produzione?

Progettare skills per la produzione richiede esperienza che si costruisce su decine di deploy. Se vuoi saltare i primi 20 errori, chiamaci: costruiamo skills Unitree su commessa ogni giorno.

Richiedi Preventivo