Cibernetica e controlli automatici

  • Autore discussione Autore discussione Utente 16812
  • Data d'inizio Data d'inizio
  • Tag Tag
    scienza
Pubblicità
ROBOTICA INDUSTRIALE
---------------------------

Rivediamo brevemente qualche concetto importante sui robot, di cui ho già discusso: per "robot" (dal cecoslovacco "robota" che significa "lavoro pesante") s'intende un insieme di apparecchiature artificiali in grado di eseguire azioni in base a comandi impartiti sia autonomamente che dall'uomo (secondo delle istruzioni generiche contenute in un programma). Nel settore della robotica industriale i robot sono utilizzati per la movimentazione dei pezzi, per vari tipi di lavorazioni (saldatura, foratura, ecc.), per l'assemblaggio di componenti meccanici e così via, di solito in ambienti inaccessibili all'uomo. Possiamo affermare che in questi casi i robot sono "automi" che sostituiscono direttamente l'uomo. Le connessioni non sono sotto il diretto controllo umano ma sono guidate da controlli in "retroazione" tra azionamenti e percezione. Il programma eseguito dal micro-controller si occupa della gestione della retroazione e della movimentazione passo-passo. Avremo pertanto una struttura meccanica (simile a quella del corpo umano), formata da bracci, polsi, mani (end effector), giunti, ecc., e un'unità di governo (controllata tramite un micro-computer), che, come nel caso delle macchine a CN (controllo numerico), si avvale di parecchi sensori e comanda gli attuatori per il controllo dei movimenti. I sensori (interni e esterni) sono essenzialmente dei trasduttori che rilevano alcune grandezze fisiche (temperatura, pressione, prossimità, spostamento, ecc.) e le trasformano in segnali elettrici di opportuna intensità. Gli attuatori possono essere di vari tipi: 1) elettrici (motori elettrici); 2) pneumatici (ad aria compressa); 3) idraulici (di solito ad olio idraulico). Da un punto di vista cinematico un robot viene descritto come una catena cinematica aperta costituita da vari componenti rigidi interconnessi da giunti rotanti (rotoidali) e/o prismatici (traslatori). La cinematica "diretta" analizza il passaggio dallo spazio dei giunti allo spazio dell'end effector (l'organo terminale), la cinematica "inversa" analizza il passaggio dallo spazio dell'end effector allo spazio dei giunti. In questo modo è possibile definire il "modello cinematico" di un robot, che utilizza algoritmi matematici piuttosto complicati (basati sul calcolo matriciale), elaborati al computer. Con gli stessi programmi viene anche sviluppata l'analisi "dinamica" del robot.

P.S. Sull'interfacciamento tra PLC e Robot, occorre precisare quanto segue: la scheda processore di un PLC svolge i propri compiti in base ad un ciclo sequenziale, che prende il nome di "scansione". Le scansioni sono di tre tipi: 1) sincrona in ingresso e in uscita; 2) sincrona in ingresso e asincrona in uscita; 3) asincrona sia in ingresso che in uscita. Nel caso del ciclo sincrono in ingresso e in uscita sia la lettura che l'invio dei dati avviene contemporaneamente per tutti gli ingressi e tutte le uscite. Quindi il processore, per ogni ciclo di scansione, acquisisce le informazioni dal campo, le elabora secondo il programma contenuto in memoria ed aggiorna le uscite (rinviando le informazioni elaborate al campo). Il tempo di risposta è sempre maggiore del tempo di scansione, per molte applicazioni ciò non rappresenta un grave inconveniente (il tempo di scansione è molto piccolo, dell'ordine dei ms). Proprio per questa particolarità di progetto, il PLC è un dispositivo inadatto al controllo diretto di un robot industriale. Il controllo di un robot richiede l'implementazione di uno strato hardware specializzato, in grado di "leggere" impulsi ad alta frequenza da ogni servosistema e di eseguire calcoli matriciali "inversi" per la corretta gestione del sistema di posizionamento. Solitamente un PLC si posiziona ad un livello più elevato, quale è quello di un sistema di interfacciamento tra il robot e altri dispositivi.

P.P.S. Sulla robotica industriale, e in seguito su quella mobile e autonoma, verrà aperto un apposito thread.
 
LINGUAGGI RL (robot language) - ROBOT ANTROPOMORFI - VISIONE ARTIFICIALE
---------------------------------------------------------------------------------------------------

I linguaggi RL (Robot Language), ossia i linguaggi impiegati nella robotica, non sono "standard", ogni robot ha un suo specifico linguaggio di programmazione che è diverso da quello di altri automi di altre case costruttrici (i cosiddetti linguaggi "general purpose" non vanno bene in quanto sono assenti istruzioni specifiche adatte alla gestione dei robot). Alcuni linguaggi sono: l'AML (A Manufacturing Language, dell'IBM), Il VAL (Vicarm Assembly Language), il VML (Virtual Machine Language), l'HELP (tipo ALGOL) e KAREL. Per affrontare lo studio hardware dei robot è necessario conoscere bene il calcolo vettoriale e il calcolo matriciale. I robot antropomorfi sono in grado di emulare i comportamenti umani, non c'è da stupirsi se la descrizione dei loro "cinematismi" sia governata da un "impianto" matematico piuttosto complesso. Il movimento complessivo di un robot è basato sulla composizione di diversi movimenti elementari (nel caso dei robot industriali si tratta di movimenti relativi tra le coppie braccio-giunto), ciascuno dei quali rappresenta un "grado di libertà" in relazione alla sua struttura. La somma dei gradi di libertà è quella che fornisce il cosiddetto "spazio di lavoro". La nomenclatura delle varie parti meccaniche viene generalmente mutuata dal corpo umano: il "Corpo" rappresenta l'Asse 1, la "Spalla" l'Asse 2, il "Braccio" l'Asse 3 e così via. La movimentazione dei robot viene generalmente "supervisionata" da un dispositivo elettronico centralizzato mentre i motori che fanno muovere i giunti sono di tipo "brushless" (senza spazzole), caratterizzati da un'inerzia molto bassa. I moduli PLC dedicati alla visione artificiale (utilizzati ad esempio nella guida robotica o nei sistemi di ispezione) solitamente s'interfacciano con telecamere (di solito "smart", dotate di MCU di elaborazione), sistemi di lenti (gli obiettivi) e di illuminazione, ecc., e il loro controller può essere un IPC (PC industriale) su cui è installato Win "embedded" o Linux oppure ancora un S.O. embedded real-time. Il software di gestione fornisce l'HMI (l'interfaccia operatore), gestisce i collegamenti remoti, il login e la password, la visualizzazione e la memorizzazione delle varie statistiche e comprende anche gli algoritmi di image processing (il clipping, la convoluzione, la correlazione, il filtraggio, ecc.) ma tali librerie sono, nella maggior parte dei casi, proprietarie, per cui va verificato, di volta in volta, il tipo di supporto software fornito dalla casa costruttrice. E' possibile l'implementazione di un controller PAC che presenta le funzioni sia di un PC di controllo che le caratteristiche di un PLC, una sorta di "soft-PLC": la differenza è che il PLC effettua continuamente la scansione degli I/O ad alta velocità mentre il PAC utilizza un database tag-name (basato sul nome dato ad un oggetto utilizzato come parte di un sistema di controllo) e un indirizzo di sistema per "mappare" i punti I/O a seconda delle esigenze. Per quanto riguarda il software, esso è in grado di permettere l'uso di linguaggi simbolici o grafici, simili a schemi di flusso, associati a S.O. real-time. Ciascun fornitore propone le proprie soluzioni, occorre valutare le interfacce per il bus di campo, l'HMI integrato, il processore, la memoria, il processamento dei task (soprattutto nel caso di controlli real-time), la gestione delle comunicazioni, i vari requisiti di sicurezza e di robustezza e così via (anche il prezzo, ovviamente).

P.S. Recentemente nella robotica sono stati introdotti sistemi di riconoscimento vocale per cui i comandi possono essere forniti attraverso messaggi vocali codificati. Gli sviluppi futuri si stanno orientando nel settore dell'IA, disciplina che consente ai robot di dotarsi di una certa autonomia decisionale nell'interazione con l'ambiente.
 
L'INTELLIGENZA ARTIFICIALE
-------------------------------

L'IA è sia scienza che matematica: al pari delle Telecomunicazioni, l'IA è una disciplina, sicuramente non tra le più semplici, che "abbraccia" diversi "rami" scientifici: occorre possedere un ampio spettro di conoscenze tecniche. L'ingegneria informatica e l'ingegneria dell'automazione sono allo stesso modo importanti: l'una indica come progettare macchine sempre più potenti, rendendo quindi possibili applicazioni dell'IA più efficienti, l'altra (similmente alla Cibernetica) fornisce strumenti e metodi di "apprendimento" automatico (nei settori della Robotica, della visione artificiale, ecc.) che portano ad una migliore comprensione della "complessità" dei problemi legati a processi di "conoscenza". La Cibernetica è fondamentale ai fini della comprensione del comportamento "autonomo" di sistemi di controllo, sia meccanici/elettronici che biologici, basato su meccanismi di "feedback" (ambientale) in grado di minimizzare gli "errori": è sufficiente pensare al regolatore di Watt o al termostato. In particolare, la teoria del controllo dell'ottimo stocastico contribuisce a minimizzare la funzione "obiettivo" (o funzione di "utilità"), in modo più o meno simile a quanto accade nella Ricerca Operativa (e nella programmazione lineare) e nella teoria delle "decisioni" (in condizioni di certezza e di incertezza) in campo economico. Sotto quest'ottica, rimanendo nel campo della R.O., i processi decisionali di Markov sono decisamente interessanti al fine di "formalizzare" tutti quei problemi legati alle "decisioni" (oltre alla teoria dei giochi). In campo matematico si evidenzia l'importanza della teoria della probabilità, soprattutto per quanto riguarda le cosiddette teorie "incomplete". A proposito dei concetti di "computabilità" e di "trattabilità", molto interessante è il tema legato alla complessità computazionale degli algoritmi (in riferimento anche a fenomeni fisici di rilevante importanza), che comprende la trattazione della teoria della NP-completezza: la distinzione tra crescita polinomiale e crescita esponenziale è di fondamentale importanza ai fini della comprensione della "trattabilità" di "istanze" di problemi inerenti a processi "intelligenti".

P.S. L'IA ha mosso i suoi primi passi, nella seconda metà del ventesimo secolo, insieme alle tecnologie informatiche, le quali ne hanno permesso, grazie alla disponibilità di linguaggi di programmazione e di metodi matematici sempre più sofisticati, lo sviluppo. Negli anni settanta venne sviluppata una "base" di conoscenze, denominata "sistema esperto", in grado di analizzare una vasta quantità di dati, prendere decisioni e fornire risposte a specifiche domande. Attualmente i risultati scientifici delle sperimentazioni attuate nel settore dell'intelligenza artificiale hanno portato alla nascita di sistemi di navigazione autonoma di autoveicoli e velivoli senza pilota (UAV) nonché di moduli per l'esplorazione di pianeti, in situazioni in cui la conoscenza dell'ambiente è imperfetta. Ricordo infine che altre applicazioni di IA, quali il monitoraggio del territorio e delle frontiere, si avvalgono dell'ausilio di sistemi intelligenti.

P.P.S. Questo trattato sulla Cibernetica può considerarsi concluso. Alcuni argomenti qui illustrati superficialmente potranno essere oggetto di approfondimento in un apposito thread. Auguro a tutti una buona lettura ?
 
Pubblicità
Pubblicità
Indietro
Top