>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Jupyter

Robotica e Visione Artificiale in Python Senza Licenze MATLAB a Pagamento

Perché gli Ingegneri Robotici Sono Rimasti Dipendenti da MATLAB per Tanto Tempo

Se hai studiato o lavorato in robotica cinque o dieci anni fa, probabilmente ricordi il Robotics Toolbox per MATLAB. Peter Corke lo creò negli anni '90. Per molto tempo, questa libreria è rimasta lo standard per l'accademia e i laboratori di ingegneria. Hai bisogno di costruire una matrice di trasformazione spaziale, tracciare una traiettoria del manipolatore o calcolare la cinematica inversa—aprivi immediatamente MATLAB.

Lo svantaggio principale è immediatamente evidente: i costi delle licenze. Integrare il codice MATLAB nelle moderne pipeline di produzione presenta anche notevoli sfide. Alcuni anni fa, l'autore ha completamente riscritto gli strumenti in Python e, nel 2023, ha rilasciato la terza edizione del libro Robotics, Vision & Control insieme al repository open RVC3-python.

Cosa Include

Il repository contiene esempi e un wrapper unificato per quattro librerie specializzate:

  • Robotics Toolbox gestisce cinematica, dinamica e traiettorie dei manipolatori.
  • Machine Vision Toolbox affronta l'elaborazione delle immagini, il rilevamento di punti caratteristici e la visione stereo.
  • Spatial Maths Toolbox si occupa della matematica delle trasformazioni 3D, dei quaternioni e dei gruppi di Lie SE(3)/SO(3).
  • BDSim aiuta a simulare sistemi dinamici e diagrammi a blocchi.

Tutto il codice sorgente è distribuito sotto licenza MIT. Per eliminare la gestione manuale delle dipendenze, i creatori hanno raggruppato tutto in un unico pacchetto.

Avvio Rapido tramite Console Interattiva

Gli sviluppatori hanno creato un'utility CLI comoda rvctool. Avvia una sessione IPython con tutti i moduli necessari, le funzioni matematiche e i modelli già importati di hardware popolare.

L'installazione richiede un solo comando:

pip install rvc3python

Quindi avvia l'ambiente di lavoro:

rvctool

La console prende spunto dall'esperienza di sintassi di MATLAB. Se ometti il punto e virgola alla fine di una riga, il risultato dell'espressione viene stampato immediatamente nel terminale. Allo stesso tempo, hai pieno accesso a Python regolare con tutte le sue comodità.

Cinematica del Manipolatore in Pochissime Righe

Definiamo un modello del robot industriale Franka Emika Panda, calcoliamo la posa della flangia e risolviamo il problema della cinematica inversa.

panda = models.ETS.Panda()
T = panda.fkine(panda.qz)
sol = panda.ikine_LM(SE3.Trans(0.4, 0.5, 0.2) * SE3.Ry(np.pi/2))

Il metodo fkine calcola la cinematica diretta e restituisce una matrice di trasformazione rigida SE3. Il metodo ikine_LM trova gli angoli delle giunzioni usando l'algoritmo di Levenberg-Marquardt.

Chiamando il metodo panda.teach(panda.qz) si apre una finestra grafica dove puoi spostare i cursori delle giunzioni e osservare come cambiano le pose del robot.

Modello del robot Panda

Elaborazione delle Immagini e Visione Artificiale

Per le attività di base della visione artificiale, non c'è bisogno di collegare framework esterni ingombranti. Ad esempio, il matching di punti chiave SIFT su due frame appare così:

sf1 = Image.Read("eiffel-1.png", mono=True).SIFT()
sf2 = Image.Read("eiffel-2.png", mono=True).SIFT()
matches = sf1.match(sf2)
matches.subset(100).plot("w")

Sotto il cofano, utilizza librerie NumPy e SciPy collaudate. Se hai bisogno di esempi di deep learning dal Capitolo 11 del libro (come la segmentazione con rete neurale), PyTorch viene caricato con un flag separato:

pip install rvc3python[pytorch]

Simulazione dei Sistemi di Controllo

Il pacchetto bdsim merita una menzione speciale. È un tentativo di creare un'alternativa a Simulink senza l'ingombrante ambiente di sviluppo.

I diagrammi a blocchi vengono creati direttamente nel codice Python o assemblati visivamente attraverso l'editor grafico bdedit. I dati vengono salvati in file JSON regolari con l'estensione .bd. Il repository include già 25 modelli tutorial pronti all'uso dal libro, che puoi eseguire direttamente da rvctool.

Cose da Tenere a Mente Prima di Eseguire

Prima di iniziare, ci sono tre punti degni di nota:

  1. È richiesto Python 3.8 o superiore a causa dell'uso attivo delle type annotation.
  2. I chip Apple Silicon (M1/M2/M3) potrebbero avere problemi di rendering con Open3D. La wiki del progetto ha una pagina separata con le soluzioni alternative.
  3. Il codice funziona in Jupyter Notebook e Google Colab, ma le animazioni 3D complesse potrebbero subire ritardi a causa delle specificità della trasmissione dei frame all'interfaccia web.

Chi Troverà Utile Questo Repository

Se insegni robotica, stai scrivendo una tesi, ricercando algoritmi di navigazione, o vuoi testare rapidamente un'ipotesi senza configurare ambienti pesanti come ROS 2, RVC3-python ti farà risparmiare molto tempo. Il progetto elimina la necessità di scrivere wrapper personalizzati per le matrici di trasformazione e fornisce una base pronta all'uso per il prototipaggio.

Progetti correlati