Articolo 01 · Unitree Go2

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.

Unitree Go2ConnessioneSDKROS 2
Scheda
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.

Fonti#

Seguici su Instagram