Come si comanda un Unitree Go2: app, radiocomando, WebRTC, SDK e ROS 2
I cinque modi per comandare un cane robot Unitree Go2: l'app, il radiocomando, WebRTC, l'SDK ufficiale e ROS 2. Per ognuno vediamo cosa serve, su quali versioni funziona e come si collega.
- Livello
- Base
- Lettura
- 4 min
- Robot
- Unitree Go2
- Pubblicato
Il Go2 sembra un giocattolo da guidare con il telefono. In realtà offre diversi modi per collegarsi, dal più semplice al più tecnico. Quali puoi usare dipende soprattutto dalla versione del robot. In questa guida li vediamo uno per uno, così sai da dove partire.
Prima di tutto: quale Go2 hai#
Unitree vende il Go2 in quattro versioni. La differenza che conta per chi vuole programmarlo è lo sviluppo secondario, cioè la possibilità di usare l'SDK ufficiale e scrivere programmi propri.
| Versione | Prezzo di listino | Sviluppo secondario | Radiocomando | Modulo di calcolo |
|---|---|---|---|---|
| Air | 1.600 USD | No | Opzionale | No |
| Pro | 2.800 USD | No | Opzionale | No |
| X | 4.500 USD | Parziale | Incluso | No |
| EDU | Su richiesta | Completo | Incluso | Sì (classe Orin, 40-100 TOPS) |
Prezzi del sito ufficiale, tasse e spedizione escluse. Tutte le versioni hanno Wi-Fi 6 dual band e Bluetooth 5.2.
In breve
Con un Go2 Air o Pro hai a disposizione l'app, il radiocomando (se lo compri) e, in modo non ufficiale, WebRTC. L'SDK e ROS 2 sono pensati per la versione EDU, e in parte per la X.
L'app ufficiale#
È il modo più semplice: il telefono si collega al robot via Wi-Fi o Bluetooth e lo guidi con i joystick virtuali sullo schermo. Dall'app vedi anche il video della telecamera frontale, lanci le azioni predefinite (saluto, stretching, danze), cambi l'andatura e aggiorni il firmware.
L'app va benissimo per provare il robot e per le dimostrazioni brevi. Ha però un limite: un'interferenza Wi-Fi o una notifica sul telefono possono interrompere la guida.
Il radiocomando#
Il radiocomando fisico è incluso nelle versioni X ed EDU ed è opzionale su Air e Pro. Ha joystick e tasti veri, e risponde in modo immediato e prevedibile. Per questo è lo strumento giusto quando il robot si muove vicino alle persone.
Come lavoriamo agli eventi
Agli eventi il Go2 è sempre guidato dal nostro operatore. Lui tiene la distanza dal pubblico e può fermare il robot in qualsiasi momento.
WebRTC: il canale dell'app, da codice#
L'app parla con il robot attraverso WebRTC, lo stesso protocollo delle videochiamate nel browser. Il progetto open source unitree_webrtc_connect (licenza MIT) usa quel canale da Python. Non serve modificare il firmware, e funziona anche su Go2 Air e Pro.
Il progetto prevede tre modalità di connessione:
- LocalAP: il robot crea la sua rete Wi-Fi e il computer si collega a quella.
- LocalSTA: robot e computer sono sulla stessa rete locale. Serve l'indirizzo IP o il numero di serie del robot.
- Remote: la connessione passa dai server di Unitree e richiede le credenziali del tuo account.
pip install unitree_webrtc_connect
Da sapere
È un progetto della comunità, non un prodotto Unitree. Si collega un solo client WebRTC alla volta, quindi chiudi l'app prima di usarlo. Dal firmware 1.1.15 serve anche una chiave AES specifica del robot. Leggi il README del progetto prima di iniziare.
L'SDK ufficiale (unitree_sdk2)#
Per le versioni EDU (e in parte X) Unitree mette a disposizione unitree_sdk2, in C++, e la sua versione Python unitree_sdk2_python. Il computer si collega al robot con un cavo Ethernet e comunica tramite DDS: un sistema a messaggi in cui i programmi pubblicano e ricevono dati su canali con un nome, i topic.
La rete interna del robot è 192.168.123.0/24:
| Indirizzo | Cosa c'è |
|---|---|
192.168.123.161 |
Unità di controllo del movimento (firmware Unitree, non accessibile) |
192.168.123.18 |
Modulo di calcolo della versione EDU (Jetson Orin) |
192.168.123.99 |
Indirizzo consigliato per il tuo PC |
Con l'SDK puoi usare i comandi di alto livello, cioè quello che fa l'app ma da codice: alzarsi, camminare a una certa velocità, ruotare, eseguire le azioni. Oppure puoi controllare direttamente i motori delle articolazioni, che è la strada per la ricerca e richiede molta attenzione.
Il primo programma lo scriviamo passo passo nella guida Primi passi con unitree_sdk2_python.
ROS 2#
Se lavori già con ROS 2 c'è il pacchetto ufficiale unitree_ros2. Supporta Go2, B2 e H1 ed è testato su Ubuntu 22.04 con ROS 2 Humble (consigliato) e su Ubuntu 20.04 con Foxy. Usa la stessa rete Ethernet e lo stesso DDS (CycloneDDS 0.10.2). Una volta configurata l'interfaccia di rete, verifichi la connessione leggendo lo stato del robot:
ros2 topic echo /sportmodestate
Quale scegliere#
- Vuoi solo usarlo o mostrarlo: app e radiocomando.
- Hai un Air o un Pro e vuoi automatizzare qualcosa: WebRTC, sapendo che non è un canale ufficiale.
- Vuoi sviluppare sul serio: serve un EDU, con SDK2 in Python o C++ oppure ROS 2.