Programmazione di robot

Che cos’è la programmazione di robot?

La programmazione di robot consiste nella scrittura di programmi informatici che consentono a un robot di percepire l’ambiente circostante, elaborare piani, prendere decisioni ed eseguire attività. Ad esempio, la programmazione di un robot di terra in grado di navigare autonomamente all’interno di un edificio richiede attività di rilevamento e percezione, localizzazione e mappatura, pianificazione del percorso e path following, controllo degli attuatori e altre attività.

Solitamente la programmazione di robot prevede:

  • Percezione dell’ambiente circostante da parte del robot mediante algoritmi di visione artificiale e Deep Learning per il rilevamento di oggetti, la classificazione e il tracking e la stima del movimento
  • Abilitazione dell’autonomia del robot attraverso algoritmi di mappatura e localizzazione simultanea (SLAM), prevenzione delle collisioni e pianificazione del movimento
  • Controllo del comportamento del robot attraverso la progettazione di sistemi di controllo come il controllo predittivo del modello, il controllo calcolato della coppia e il path following
  • Comunicazione e interazione con sensori e attuatori collegati a diverse piattaforme embedded, come CPU, GPU, FPGA e microcontroller

Nelle fasi iniziali della programmazione di robot, gli ingegneri sviluppano spesso un diagramma di macchina a stati del comportamento previsto del robot. Inoltre, per lo sviluppo degli algoritmi vengono utilizzati linguaggi di programmazione come C/C++, Python®, Java® e MATLAB®, mentre per l’astrazione dell’hardware, il controllo a basso livello dei dispositivi, il passaggio di messaggi tra i processi e la distribuzione hardware viene utilizzato un middleware come il ROS (sistema operativo per la robotica).

Tipico workflow di programmazione di robot.

Tipico workflow di programmazione di robot.

Un errore in una fase può spesso influenzare l’intero workflow di programmazione di robot. La modellazione e la simulazione nel software aiutano a eliminare gli errori di implementazione, identificando i problemi durante la prototipazione, piuttosto che in post-produzione o durante l’utilizzo del robot nel mondo reale. La simulazione del sistema aiuta inoltre gli ingegneri ad affinarne la progettazione mediante la regolazione dei parametri di controllo, senza preoccuparsi delle dipendenze dalla piattaforma o dell’accesso all'hardware del robot.

MATLAB fornisce diverse funzioni e algoritmi integrati per la programmazione di robot. Per esempio, con poche righe di algoritmi di Deep Learning predefiniti in MATLAB, i robot sono in grado di identificare oggetti nell'ambiente. Simulink® fornisce blocchi predefiniti per l'utilizzo della modellazione e della simulazione con la progettazione Model-Based ai fini della programmazione di robot. I blocchi ROS in Simulink, ad esempio, consentono ai programmatori di robot di sottoscrivere i dati dei sensori e pubblicare i comandi del robot su una rete ROS senza dover scrivere alcun codice.

Utilizzo di blocchi ROS per pubblicare e sottoscrivere messaggi in Simulink.

Utilizzo di blocchi ROS per pubblicare e sottoscrivere messaggi in Simulink. Vedi l’esempio.

L’utilizzo di MATLAB e Simulink per la programmazione di robot consente di realizzare una simulazione scalabile dei robot per prototipare, testare modelli concettuali ed eseguire il debug a basso costo. Successivamente è possibile utilizzare i modelli ad alta fedeltà per la convalida, mantenendo il resto degli algoritmi nello stesso ambiente di simulazione. Una volta ottenuto il risultato desiderato dalla simulazione del robot, è possibile generare codice eseguibile standalone per il sistema embedded dal modello Simulink nei linguaggi di programmazione comuni. Utilizzando la connettività ROS da MATLAB e Simulink a una rete ROS, è possibile generare nodi ROS C++ direttamente da MATLAB e Simulink per testare e verificare applicazioni su robot e simulatori di robot abilitati ROS, come ad esempio Gazebo.

Per maggiori informazioni sulla programmazione di robot, consulta Robotics System Toolbox™, Navigation Toolbox™, ROS ToolboxMATLAB e Simulink.


Esempi e consigli pratici

Rilevamento e percezione

Pianificazione di percorsi e decisioni

Controllo


Riferimenti software per la programmazione di robot

Vedere anche: robotica e sistemi autonomi, meccatronica, Simscape Multibody, Control System Toolbox, Stateflow, Automated Driving Toolbox, Computer Vision Toolbox, Embedded Coder, MATLAB Coder, Simulink Coder, Controllo PID, cinematica inversa, robotica cloud, Pianificazione di percorsi, Sistema di navigazione inerziale