Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Controllo in real time di un robot semovente overconstrained con NI CompactRIO

  Print

Figura 1 - Simulazione di una duna

Author(s):
G. Reina - UNIVERSITÁ DI LECCE

Industry:
Aerospace/Avionics, Research, Industrial Controls/ Devices/ Systems, Automotive

Products:
FPGA Module, CompactRIO

The Challenge:
Controllare in tempo reale un veicolo overconstrained, cioè che dispone di un numero di motori indipendenti superiore ai gradi di libertà di movimento. Il veicolo possiede un sistema di sterzo a 4 ruote indipendenti ed è dotato di quattro motori in continua indipendenti e di quattro servomotori hobby R/C indipendenti come attuatori del sistema di sterzo. La retroazione di controllo è fornita da encoder rotativi e da potenziometri, che servono anche per la valutazione incrementale della posizione del veicolo. Il robot semovente può essere controllato remotamente via radio.

The Solution:
Uso del modulo LabVIEW FPGA di National Instruments e del sistema embedded CompactRIO di National Instruments per progettare, sviluppare e collaudare un sistema di controllo integrato real-time per robot semoventi overconstrained. Nell’articolo è descritto un sistema di controllo real-time basato su CompactRIO di National Instruments per robot semoventi overconstrained, cioè che dispongono di un numero di motori indipendenti superiore ai gradi di libertà di movimento. Il veicolo, chiamato Dune e mostrato in Figura 1, è progettato per svolgere compiti complessi su terreni molto difficili. Dispone di un sistema di sterzo con quattro ruote indipendenti e di un sistema di sospensioni passivo a braccia snodate.

"Il nuovo sistema riconfigurabile NI CompactRIO mette a disposizione una soluzione compatta, embedded e con elevate prestazioni che consente di sviluppare controller real-time per veicoli overconstrained con architettura complessa."

Le velocità operative previste variano da 0.2 a 1 m/s. Il sistema di controllo del robot è in grado di gestire in modo flessibile diverse modalità operative di sensori e attuatori. L’insieme di attuatori di Dune comprende quattro motori di potenza in continua e quattro servomotori hobby R/C che fungono da attuatori per lo sterzo. I motori di potenza sono controllati in velocità con driver di potenza analogici esterni e si usano encoder rotativi per i feedback di controllo. I motori R/C richiedono una tecnica di controllo PCM (Pulse Code Modulation) per il controllo di posizione a ciclo chiuso che fa uso dei potenziometri già previsti all’interno di questi dispositivi. I motori devono ricevere un treno di impulsi di larghezza variabile e di periodo costante; la larghezza di ciascun impulso rappresenta il codice che informa il motore dell’angolo di sterzata da realizzare. È necessaria anche una elevata velocità di acquisizione dei dati provenienti dagli encoder e dai potenziometri per poter identificare correttamente la posizione del veicolo sulla base del percorso compiuto. Il veicolo può essere controllato remotamente da un operatore utilizzando un controllo via radio che consente di svolgere compiti ad alto rischio come lo sminamento, l’ispezione di siti pericolosi e la sorveglianza remota.
Le prestazioni ottenibili con un sistema CompactRIO NI basato su tecnologia FPGA con I/O riconfigurabili rendono questi sistemi idonei per applicazioni di tal genere e consentono di sviluppare sistemi embedded per il controllo in real-time dei veicoli, in modo da poter effettuare le elaborazioni necessarie in modo affidabile e con tempi di esecuzione rigidamente predeterminati. Si tratta di funzionalità particolarmente critiche per i robot overconstrained, poiché qualsiasi disallineamento anche momentaneo tra le velocità delle ruote rispetto ai vincoli cinematici del veicolo determina un’azione antagonista delle ruote, che a sua volta produce slittamenti, consumo di energia e perdita di aderenza sul terreno.
Il nostro controller embedded NI CompactRIO (cRIO) dispone di quattro moduli di I/O: 1 modulo con uscite analogiche (NI cRIO- 9263, 4 canali, 16 bit, 100 kS/s), 1 modulo di ingressi digitali (NI cRIO- 9411, 8 canali, 1 µs, TTL single-ended o differenziali), 1 modulo con uscite digitali (NI cRIO-9411, 8 canali, 1 µs, TTL single-ended o differenziali) e 1 modulo con ingressi analogici (NI cRIO -9201, 8 canali, 12 bit, 500 kS/s). Nello sviluppo dell’applicazione sono stati utilizzati tutti e quattro i componenti principali della tecnologia NI CompactRIO:
• applicazione core RIO FPGA per ingressi, uscite, comunicazione e controllo;
• cicli time-critical per il controllo in virgola mobile e per l’analisi e l’elaborazione dei segnali;
• cicli con normale priorità per le comunicazioni Ethernet;
• PC host in rete per disporre di una interfaccia utente grafica remota, per la registrazione dei dati storici e per le elaborazioni successive.
Il codice FPGA si compone di sei moduli: modulo di controllo e comunicazione, modulo di controllo analogico, modulo per encoder in quadratura, modulo PCM, modulo potenziometri e modulo per il controllo radio remoto. Il modulo di controllo e comunicazione, mostrato in Figura 2, esegue il controllo PID per ciascuno dei quattro motori di potenza e fornisce la sincronizzazione di base con il modulo di I/O cRIO in real-time; è basato su una struttura flat a tre frame inserita in un ciclo while. Le funzioni di I/O (si veda la Figura 3) sono gestite in cicli distinti posti in parallelo a questo ciclo di controllo e comunicazione, in modo che vengano eseguiti alla massima velocità possibile.
Il modulo degli encoder in quadratura legge i dati provenienti dagli encoder delle ruote che hanno una risoluzione di 2000 linee/riv e fornisce il feedback di controllo ai motori di potenza. Il modulo di controllo analogico traduce i set point generati dal ciclo di controllo nei corrispondenti segnali di tensione opportuna per gli alimentatori di potenza dei motori. Il modulo PCM controlla i servomotori del sistema sterzante generando i treni di impulsi con la larghezza corrispondente agli angoli di sterzata richiesti; in particolare sono necessari degli impulsi della durata di 1-2 ms che devono essere inviati ogni 20 ms. Il modulo potenziometri permette l’acquisizione dei segnali analogici generati dai quattro potenziometri del sistema sterzante per poter stimare l’assetto e la posizione del veicolo. Infine, il modulo di controllo remoto via radio consente il controllo via radio del veicolo utilizzando un radiocomando che a sua volta utilizza una comunicazione senza fili di tipo PCM. Per poter decodificare i segnali radio è stato montato un ricevitore radio sul veicolo che rende disponibili quattro canali per i dati come impulsi TTL-compatibili. Misurando la larghezza degli impulsi è possibile convertire il segnale digitale in un segnale analogico. I primi due canali sono utilizzati per impostare le velocità lineare e angolare volute del veicolo, il terzo canale serve come arresto di emergenza, mentre il quarto canale configura lo spostamento “a granchio”, quando tutte le ruote sterzano simultaneamente dello stesso angolo e ruotano tutte alla stessa velocità angolare. Ciascuno di questi canali presenta un’ampiezza degli impulsi variabile tra 1.0 e 2.0 ms, dove un impulso di 1.5 ms rappresenta la posizione centrale del joystick, mentre impulsi più grandi o più piccoli corrispondono a deviazioni proporzionalmente maggiori del joystick dalla posizione centrale. I dati trasmessi via radio hanno una risoluzione di 10 bit e questo significa che per avere una misura ottimale delle larghezze degli impulsi è necessario disporre di una risoluzione di 1 s. Il modulo cRIO-9411 possiede specifiche tecniche che sono particolarmente idonee per questa applicazione: dispone di otto ingressi digitali ed è compatibile con segnali di tipo TTL, oltre ad avere un tempo di risposta inferiore a 1 s che permette di avere una ottima risoluzione della misura.
Il codice FPGA configura la parte di basso livello del sistema di controllo descritto; i dati vengono poi passati al processore embedded real-time che gestisce la parte di più alto livello del sistema (Figura 4). Il controllo di più alto livello esegue le trasformazioni di scala richieste per convertire i dati grezzi provenienti dal sistema di basso livello in unità ingegneristiche e genera a basso livello i set point della velocità angolare e dell’angolo di sterzata richiesti dal modello cinematico del veicolo. Al livello più alto sono anche implementati i cicli di priorità normale per le comunicazioni Ethernet con un PC in rete che mette a disposizione l’interfaccia utente grafica remota, la registrazione dei dati e le funzioni di elaborazione successive all’acquisizione.
Il nuovo sistema riconfigurabile NI CompactRIO mette a disposizione una soluzione compatta, embedded e con elevate prestazioni che consente di sviluppare controller real-time per veicoli overconstrained con architettura complessa.

Author Information:
For more information on this Case Study, contact:
G. Reina
UNIVERSITÁ DI LECCE
Tel: +39 0832 297362
giulio.reina@unile.it

Browse All Case Studies »

  Print