🧪 Stanno arrivando nuovi tutorial — dal braccio robotico al sensore
Vai al contenuto

Fase 3: Teleoperazione (Windows) ​

In questa fase si avvia il ciclo chiuso di teleoperazione: il braccio master controlla il movimento del braccio slave e la pinza controlla l'apertura/chiusura di AmazingHand. È la fase chiave per verificare se l'intero sistema funziona correttamente.


Prerequisiti ​

  • Aver completato la Fase 1: Configurazione dell'ambiente e la Fase 2: Calibrazione

  • Dispositivi accesi e porte seriali registrate


Eseguire la teleoperazione ​

PowerShell
lerobot-teleoperate --robot.type=so101_amazing_hand --robot.port=<follower_arm_com> --robot.hand_port=<hand_com> --robot.id=amazing_hand_follower --teleop.type=so101_leader --teleop.port=<leader_arm_com> --teleop.id=amazing_hand_leader

Sostituisci <follower_arm_com> / <hand_com> / <leader_arm_com> con i numeri COM reali della tua macchina (esempio COM58 / COM11 / COM54).

Effetto previsto:

  • Le 5 articolazioni del braccio master → il braccio slave segue

  • La pinza del braccio master → apertura/chiusura di AmazingHand (seguito proporzionale: mezzo pizzicamento = mezza chiusura)

💡 Descrizione dei parametri:

  • --robot.type=so101_amazing_hand: robot combinato braccio slave + mano

  • --robot.port: porta seriale del braccio slave

  • --robot.hand_port: porta seriale della mano

  • --teleop.type=so101_leader: teleoperatore del braccio master

  • --teleop.port: porta seriale del braccio master


Obbligatorio alla prima esecuzione: verifica della direzione ​

Dopo l'avvio esegui prima un test di direzione per confermare che entrambi i punti seguenti siano corretti:

TestOperazioneFenomeno corretto
Seguito del braccioRuota le articolazioni del braccio masterIl braccio slave segue nella stessa direzione
Apertura/chiusura della manoApri/pizzica la pinza del braccio masterPinza aperta → mano aperta; pinza pizzicata → mano chiusa

⚠️ Nota (cosa fare se la direzione è invertita):

  • Direzione di apertura/chiusura della mano invertita (aprendo la pinza la mano si chiude): indica che la calibrazione degli angoli della mano non è precisa; riesegui lo strumento di calibrazione (compresa la calibrazione della direzione della pinza); dopo il salvataggio ha effetto automaticamente, senza bisogno di modificare i file manualmente. Vedi la Fase 2: Calibrazione.

  • Direzione della mappatura della pinza invertita (aprendo la pinza la mano si chiude): come sopra; in fase di calibrazione premi [Capture Open] con la pinza del braccio master aperta e [Capture Close] al pizzicamento; lo strumento registra e salva automaticamente gripper_open_pos/gripper_close_pos, che vengono caricati automaticamente all'avvio.

Dopo la modifica, riesegui la teleoperazione per verificare.


Verifica del seguito proporzionale ​

Una volta corretta la direzione, verifica la finezza della proporzione:

  1. Apri la pinza lentamente → la mano deve aprirsi in modo fluido (senza salti)

  2. Lascia la pinza a metà → anche la mano deve fermarsi a metà

  3. Apri e chiudi rapidamente → la mano risponde rapidamente, senza impuntamenti

⚠️ Nota (problema storico di apertura/chiusura eccessiva della mano): se la mano si chiude quando la pinza è solo a metà apertura, quasi sempre è perché le posizioni di “apertura/pugno” non erano accurate durante la calibrazione degli angoli della mano. Riesegui il passo 3 della calibrazione (GUI degli angoli della mano) per calibrare posizioni di apertura/chiusura più precise.


Opzionale: visualizzazione con telecamera ​

Aggiungi --robot.cameras per collegare le telecamere e --display_data=true per aprire la finestra di visualizzazione Rerun (mostra in tempo reale l'immagine della telecamera + lo stato delle articolazioni):

PowerShell
lerobot-teleoperate --robot.type=so101_amazing_hand --robot.port=<follower_arm_com> --robot.hand_port=<hand_com> --robot.id=amazing_hand_follower --teleop.type=so101_leader --teleop.port=<leader_arm_com> --teleop.id=amazing_hand_leader --robot.cameras='{wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"},top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30, fourcc: "MJPG"}}' --display_data=true

💡 Descrizione:

  • index_or_path è l'indice della telecamera; confermalo prima con lerobot-find-cameras (la numerazione varia da macchina a macchina).

  • fourcc: "MJPG" è opzionale e può ridurre sensibilmente la banda occupata dalla telecamera USB (passa alla compressione MJPEG); puoi aggiungerlo in caso di impuntamenti.

  • Se serve una sola telecamera, elimina la riga corrispondente (ad esempio top).

⚠️ Nota (dipendenza rerun): --display_data=true richiede il pacchetto di visualizzazione rerun; se non è installato esegui:

PowerShell
pip install "rerun-sdk>=0.24.0,<0.34.0"

Serve l'eseguibile Rerun Viewer. In Windows, se compare Failed to find Rerun Viewer executable, significa che manca il visualizzatore con GUI. Non influisce sulla teleoperazione; è sufficiente togliere --display_data=true.


Uscita ​

Premi Ctrl+C per fermare. Il programma provvede automaticamente a:

  1. Disattivare la coppia degli 8 servomotori della mano

  2. Scollegare le porte seriali del braccio slave/braccio master

  3. Scollegare le telecamere (se presenti)

⚠️ Nota: prima di un'uscita regolare non chiudere direttamente il terminale, altrimenti può restare un'occupazione residua della porta seriale. Se dopo un'uscita anomala la porta seriale resta occupata, ricollega l'USB o riavvia il processo del terminale.


Risoluzione dei problemi ​

SintomoCausaSoluzione
Direzione della mano invertitaAngoli della mano o mappatura della pinza invertitiVedi “Verifica della direzione” sopra; scambia gli angoli o regola la mappatura
Apertura/chiusura della mano eccessiva o insufficienteCalibrazione degli angoli della mano imprecisaRicalibra gli angoli della mano con la GUI
Il braccio non segueCalibrazione mancante/porta seriale errataVerifica che il braccio slave sia calibrato e che --robot.port sia corretto
Errore rerunDipendenza di visualizzazione mancanteTogli --display_data=true
Porta seriale occupataUscita anomala precedenteChiudi il processo che la occupa o ricollega l'USB