Padroneggiare il movimento: controllo posizione-velocità-tempo per la pianificazione di una traiettoria PVT fluida e precisa

Si consideri il problema generale di dover programmare una macchina controllata da computer ad eseguire un movimento richiesto per una specifica applicazione. Un approccio semplice potrebbe essere quello di fornire alla macchina un elenco di coordinate e alcune azioni da eseguire al raggiungimento di ciascuna posizione dopo l'arresto. Questo approccio è efficace quando l'azione che deve essere compiuta dalla macchina è importante solo se eseguita in modalità sequenziale, come ad esempio l'erogazione di un fluido in una serie di contenitori. Tuttavia, in molti casi, le task che la macchina deve eseguire hanno anche requisiti critici di temporizzazione o di percorso, ad esempio come per l'erogazione continua di una linea di colla lungo il bordo di incollaggio di un oggetto. In questo esempio, il semplice approccio sopra descritto avrebbe difficoltà a seguire angoli curvi e creerebbe addensamenti irregolari di colla in ciascun punto di arresto o di rallentamento. Analogamente, in applicazioni di incisione laser, la traiettoria generata con questo tipo di approccio potrebbe presentare variazioni di velocità e causare distorsioni o inomogeneità sulla larghezza e la profondità dell’incisione durante il processo di scrittura di un logo o di un testo sull'involucro di un prodotto.

Pertanto, è necessario utilizzare un approccio diverso che permetta di definire non solo le coordinate delle posizioni di arresto ma l'intero percorso che la macchina dovrà seguire con la posizione definita in modo continuo.

 Figura 1: Esecuzione del movimento lungo una traiettoria PVT generata con il software Zaber Launcher.

Posizione-Velocità-Tempo, o PVT, è un algoritmo flessibile che definisce il percorso continuo in termini di posizione e tempo, cioè la traiettoria. Le traiettorie PVT prendono come input un elenco di punti di controllo specificati dall'utente che fungono da nodi di riferimento per l'animazione per il movimento. La traiettoria risultante, generata dall'algoritmo PVT, completa in modo fluido il percorso tra questi punti di controllo e garantisce che la macchina attraversi ciascuno di essi esattamente nella posizione, velocità e tempo specificati. Queste traiettorie sono in grado di descrivere idealmente qualsiasi percorso in modo fluido, mono o multidimensionale, ma la scelta dei parametri corretti può essere difficile e talvolta poco intuitiva per l’utente.

Molti dei dispositivi motorizzati prodotti dal nostro partner Zaber Technologies sono in grado di accettare dati di sequenze PVT (i punti di controllo specificati dall'utente menzionati sopra) ed eseguire movimenti basati sulle traiettorie PVT calcolate. Il calcolo della traiettoria avviene nel firmware del dispositivo. I dati della sequenza PVT specificati dall'utente possono essere caricati su un dispositivo Zaber in diversi modi: con l'utilizzo dell’applicazione Zaber Launcher, con l'utilizzo di un codice implementato dall’utente tramite la API Zaber Motion Library o attraverso la comunicazione seriale diretta con il dispositivo facendo uso del protocollo di comunicazione ASCII.

La determinazione dei dati, completi e ben strutturati, di una sequenza PVT da inviare ai dispositivi può essere un primo passo impegnativo in questo processo. Per semplificare questo passaggio, Zaber Technologies ha creato alcune classi helper che sono disponibili nel seguente repository Git.

Questo articolo  illustra come utilizzare le classi helper per generare i dati di sequenze PVT, come utilizzare la funzionalità PVT Viewer di Zaber Launcher per la visualizzazione in anteprima della traiettoria corrispondente generata, convalidando così i dati della sequenza PVT, e infine come utilizzare PVT Viewer per caricare i dati della sequenza PVT sui dispositivi Zaber connessi e far sì che tali dispositivi eseguano i movimenti in base alla traiettoria PVT calcolata.

Figura 2.  Un esempio di traiettoria PVT generata dall'insieme di punti di controllo

L’algoritmo PVT è potente e flessibile perché può definire praticamente qualsiasi movimento su un numero illimitato di assi. Ad esempio, può definire la traiettoria di un singolo attuatore lineare o i movimenti coordinati di un sistema gantry o di un braccio robotico a 6 assi. Sebbene flessibili, le traiettorie generate con l’algoritmo PVT possono comportarsi in modo poco intuitivo tra i punti di controllo specificati, poiché la traiettoria attraverso questi nodi è sensibile ai parametri scelti.

In applicazioni in cui sono noti solo alcuni parametri, ad esempio quando si desidera che un insieme di assi meccanicamente vincolati descriva una traiettoria specifica senza alcun requisito stabilito di velocità, o quando si desidera che uno o più assi si trovino in posizioni specifiche in momenti precisi, la scelta o la generazione dei valori corretti per i parametri rimanenti non è sempre ovvia. Questo è particolarmente vero quando si ha a che fare con sistemi multiasse, dove i parametri per ciascun asse devono essere scelti tenendo conto delle caratteristiche di tutti gli altri assi e dei vincoli tra essi. Una volta specificati tutti i parametri, è necessario un modo per convalidare la traiettoria generata per il sistema e, se necessario, correggere eventuali segmenti problematici apportando le opportune modifiche ai parametri. Con i workflows presentati in questo articolo e le classi helper nel repository git, è possibile specificare sequenze PVT complete e, se necessario, generare gli eventuali parametri mancanti.

Zaber Technologies progetta e realizza dispositivi di movimentazione motorizzata con elevata risoluzione e precisione di posizionamento per applicazioni in ambito della fotonica, dell’ottica, della microscopia e dell’automazione industriale. La vasta gamma dei prodotti Zaber comprende attuatori lineari, stage di traslazione, di rotazione e verticali, goniometri, grippers, mirror mount, stepper motor, controllers, filter wheels ed altri dispositivi per la realizzazione di sistemi motorizzati multi-assi e gantry modulari.

Stage linearie di rotazione con capacità di carico fino a 500 Kg sono anche disponibili.

La Zaber Motion Library è una API open source che garantisce la perfetta integrazione per il controllo della movimentazione dei dispositivi Zaber che supporta i linguaggi di programmazione Python, MATLAB, C#, C++, JavaScript, Java e Octave su Windows, Linux, mac OS e Raspberry Pi. Per gli user LabView, inoltre, Zaber offre driver LabView certificati.

Per saperne di più clicca qui. 

Kontakt

Quantum Design GmbH

Breitwieserweg 9
64319 Pfungstadt
Germany

Telefon:+49 6157 80710-0
E-Mail:germanyqd-europe.com