Sei sulla pagina 1di 17

RobotiCad

Per lanciare RobotiCad, digitare: >> RobotiCad al promt di matlab. Si apriranno le finestre principali dellinterfaccia grafica, ossia la finestra di Log, la finestra per la gerarchia degli oggetti e infine la finestra del workspace, esattamente come in figura.

Finestra di Log

La finestra di Log riporta in ordine cronologico tutte le azioni compiute dallutente sul qualunque elemento del workspace. Per questo motivo, pu essere utilizzata anche per lundo (che invece non implementato).

In particolare, per ogni azione vengono riportati tre dati fondamentali: 1. lorario in cui loperazione stata compiuta; 2. il tipo di azione compiuta; 3. il nome (identificatore) delloggetto interessato alla modifica Per quanto riguarda il tipo di operazione effettuata, tra parentesi tonde viene indicato anche il livello di criticit delloperazione stessa. Ad esempio, con un punto esclamativo (!) si indica una azione critica (come il cancellamento delloggetto), mentre con una (i) si indica una operazione che modifica solo alcune informazioni relative alloggetto (il nome, il materiale, ecc Finestra della Gerarchia

Nella finestra della gerarchia sono inizialmente presenti solo quattro voci: 1. World 2. Light 3. Object 4. Trajectory Il fatto che di fianco a una voce ci sia il <+> o il <-> significa che la categoria pu essere esplorata o che gi aperta. I vari robot verranno aggiunti poi man mano che vengono creati. La categoria World contiene tutti gli oggetti relativi allambiente di lavoro, e selezionandoli possono essere modificati agendo nelle impostazioni della barra laterale nella finestra di workspace. Se un oggetto (Light, Object, Trajectory o un robot se presente) viene selezionato, automaticamente nella finestra di lavoro verr evidenziato da un bounding box. Viceversa, un oggetto selezionato con il mouse nella finestra di lavoro verr automaticamente selezionato nellalbero gerarchico. Finestra del Workspace La finestra del workspace ha tre zone fondamentali, ossia la barra superiore, che consente di accedere velocemente a tutte le opzioni fondamentali, la zona laterale, nella quale compaiono tutte le opzioni relative di volta in volta alloggetto selezionato, e la finestra di lavoro. La barra superiore ha alcuni pulsanti fondamentali (da notare che portanto il cursore del mouse sopra a un pulsante qualunque, comparir una breve stringa che ne suggerisce la funzione). Tra questi pulsanti troviamo quelli per: Creare un nuovo lavoro;

Aprire un lavoro precedente; Salvare il lavoro corrente; Cut, Paste, Dolete (che sono attivi solo quando un oggetto su cui queste azioni sono effettivamente attuabili selezionato) Tre pulsanti per ruotare, zoomare o muovere il punto di vista corrente (se la telecamera si incasina un po, sufficiente selezionare uno di questi tre pulsanti e fare doppio click su un punto qualunque della scena per ottenere il reset degli assi) DH (veder oltre) New object: crea un oggetto nuovo a forma di sfera rossa nel centro degli assi assoluti. Loggetto creato avr dimensione unitaria lungo tutti e tre gli assi. Per modificarne le propriet, bisogna fare riferimento alle opzioni che compaiono sulla sinistra, nella zona laterale dellinterfaccia New light: crea una nuova luce di scena; anche in questo caso le opzioni si trovano sulla barra laterale Tavolozza (material editor): apre un tool per la creazione di un materiale da salvare ed eventualmente in futuro assegnare a un oggetto.

DH (Denavit Hartenberg) Con questo pulsante, a cui si pu giungere anche dal men [Create->Robot->New (DH)]. Si aprir una finestra come quella in figura:

Nello spazio bianco vanno messi i valori dei parametri di DH per il robot che si intende creare, tenendo presente che i parametri sono complessivamente 5, poich in fondo va specificato se si tratta di un giunto rotoidale (0) o prismatico (1) Esempio nel caso del manipolatore planare a 2 gdl: 0 0.5 0 0 0 0 0.5 0 0 0 Gli altri campi presenti nella finestra servono per impostare il punto dello spazio di lavoro in cui posizionare la base del robot, e il suo orientamento usando angoli di Roll Pitch e Yaw. Tool matrix serve a specificare una matrice di trasformazione omogenea per il tool del robot. Una volta che tutti i parametri sono stati impostati, bisogna fare il Check matrix, che controlla se tutto ok. Se non ci sono errori, dove nella figura scritto Type D-H matrix to create your robot comparir una stringa che sintetizza il robot che verr creato. Se si pronti a crearlo, andare sul men [Robot->Create].

Nel men sono presenti anche altre voci, che possono essere attivate solo se esiste almeno gi un altro robot nellambiente. Load from workspace: mostra la lista di tutti i robot presenti, i cui parametri possono essere modificati. A questo punto con Replace link matrix si pu sostituire il robot preesistente con quello risultante dai nuovi parametri. ATTENZIONE: il numero di link (e quindi di righe) non deve cambiare! Una volta creato il robot, esso conterr quatto categorie di oggetti, ognuna esplorabile, e ognuna con gi dentro un oggetto: il robot infatti va considerato come una collezione di oggetti con alcune propriet extra. Infatti, con un click su un qualunque oggetto del robot, si seleziona solo il singolo oggetto, mentre per selezionare tutto il robot bisogna fare un doppio click su di esso (oppure dalla finestra di gerarchia). Per il robot ci sono selezionato ci sono nella barra a sinistra alcune opzioni interessanti, tra cui ci sono Teach Pendant, Dynamic, Inv. Kinematic. ATTENZIONE: ciccando con il tasto destro su un qualunque oggetto (libero, parte di un robot) compare un men a tendina da cui possibile scegliere alcune opzioni. A parte le pi banali, ce ne sono un paio di interesse che compaiono a seconda che loggetto correntemente selezionato faccia parte di un robot o sia libero. Oggetto libero: compare la lista dei robot attualmente presenti nello spazio di lavoro. Il menu offre la possibilit di fare in modo che loggetto corrente diventi parte di una delle quattro sottocategorie del robot. Oggetto di un robot: anche qui, come nel caso precedente, loggetto pu essere spostato per entrare a fare parte di unaltra sottocategoria dello stesso robot o di un altro robot presente nellambiente. Inoltre, c la possibilit con lopzione Move to Env. di distaccare loggetto dal robot attuale e farlo diventare parte dello spazio di lavoro. Teach Pendant e Via Point List

Queste due finestre possono essere utilizzate per un duplice scopo: da un lato muovere giunto per giunto il robot usando il Teach Pendant, dallaltro per salvare una

serie di posizioni per programmare il movimento del manipolatore nella finestra Via Point List. Le checkbox alla sinistra del nome del giunto serve a bloccare il valore del giunto stesso: questo significa che, se la checkbox attiva, nessuna operazione modificher il valore memorizzato. Nel Teach pendant ci sono alcune opzioni fondamentali: [ADD] aggiunge la posizione corrente alla lista dei via point gi presenti subito dopo quello attualmente selezionato; [Joints->Reset] resetta tutti i giunti non bloccati a 0; [Joints->Round to 2pi] riporta tutti i valori nel range [-2*pi,2*pi]. Via Point List. In questa finestra si pu programmare il robot nello spazio di giunto. I punti vengono aggiunti come gi visto. I pulsanti in fondo alla finestra servono a muovere in su o in gi il punto correntemente selezionato o a cancellarlo, mentre la bacchetta magica ha il compito di sostituire il punto corrente con i valori presenti nel Teach Pendant. Le traiettorie disponibili per interpolare i punti sono quelle visibili in figura. Nei men in alto troviamo: [ViaPoint -> Clear All]: resetta i Via Point [ViaPoint -> Load -> Traj file]: carica un file *.smf, che anche il formato importabile in Simulink [ViaPoint-> Load and Append -> Traj file]: carica un file *.smf e lo mette in append ai punti gi presenti [ViaPoint -> Save -> Traj file]: permette di salvare I viapoint in un file *.smf, formattato per essere poi caricato con un apposito blocco Simulink. [Trajectory -> View Graph]: apre una finestra con le traiettorie nello spazio di giunto. Nella finestra che si apre si pu scegliere di visualizzare le traiettorie per Posizione, Velocit, Accelerazione, Jerk, o solo alcuni di questi in una combinazione qualunque. Le traiettorie visualizzate possono essere selezionate. [Trajectory -> View Trace]: durante la simulazione cimentatici nella finestra del workspace, il robot disegna la traccia del proprio end effector. [Play -> Robot]: fa partire la simulazione cinematica del robot correntemente selezionato. Dynamic

Il tasto Show Jacobian apre una finestra in cui viene visualizzato lo jacobiano geometrico del robot nella configurazione corrente. Tale finestra resta aperta anche se si fanno varie operazioni sul robot, e in particolare se si apre il Teach pendant e lo si fa muovere, a seconda delle opzioni selezionate nella maschera dello jacobiano, questo viene aggiornato per ogni movimento, oppure viene aggiornato tenendo anche i dati delle vecchie posizioni. Contemporaneamente, nella finestra vengono mostrati anche i

valori delle variabili di giunto e il valore del determinante di J ( Det(J)= ) e il valore di manipolabilit ( Man=). Le atre opzioni sotto il men Dynamic permettono di visualizzare o nascondere gli ellissoidi di velocit e di forza: questi vengono visualizzati come due ellissoidi posizionati sullendeffector del robot. Il pulsante Mask serve invece a mascherare alcune righe dello jacobiano, cosa che risulta particolarmente utile qualora il robot sia sottoattuato (es: planare). Il pulsante S. suggerisce quali potrebbero essere per il robot selezionato le righe da mascherare. Inv. Kinematic Permette di calcolare la configurazione dei giunti del robot a partide da un punto e un orientamento nello spazio di lavoro. Per inserire tale dato ci sono due opzioni: XYZ+Roll Pitch Yaw, oppure una matrice di trasformazione omogenea. Per questultima, il campo tollerance serve per evitare che errori di troncamento numerico facciano in modo che la matrice introdotta non venga riconosciuta come omogenea. Inseriti i dati, il tasto Evaluate fa partire il calcolo della cinematica inversa, facca con lo serve invece per aggiungere il punto pseudo inverso dello jacobiano. Il tasto appena calcolato a quello delle traiettorie eventualmente presenti nel Via Point List; il punto viene aggiunto in coda a quelli gi presenti. Trajectory Le traiettorie possono essere create a partire dal men [Create -> Trajectory]. In questo caso, lutente dovr fissare due punti per definire una nuova traiettoria. Il frame associato a ogni punto, che indica anche lorientamento della traiettoria in quel punto, viene per default orientato come il frame F0 assoluto. A questo punto, la traiettoria pu essere modificata a piacere aggiungendo e cancellando punti (ne devono restare sempre almeno due) e cambiando il tipo di interpolazione dei punti (lineare o spline). Quando si sceglie un oggetto diverso dalla traiettoria corrente, la traiettoria stessa viene nascosta per evitare che nello spazio di lavoro ci sia troppa confusione. Questo far si che la traiettoria stessa sia riselezionabile solo attraverso la gerarchia. Per mantenerla sempre visibile, bisogna spuntare nella barra laterale della traiettoria lopzione Always visibile.

Esportare un File per Simulink


Una volta creato lambiente che si desidera simulare, dal menu [File -> Create Workspace] della finestra di lavoro si pu esportare tutto in un file opportunamente formattato che ha estensione *.wsp. ATTENZIONE: il file deve essere salvato dentro la sottocartella Simulink della cartella RobotiCad e, affinch il salvataggio vada a buon fine, deve essere presente almeno un robot e almeno un oggetto nel workspace. Questo file sar quello che verr ricaricato in Simulink.

Simulink Blockset

Di tutti i blocchi, quelli fondamentali sono quelli collezionati dentro al macro-blocco Workspace&Graphics e quelli dentro il macro-blocco Trajectory Workspace & Graphics

I blocchi presenti sono in tutto cinque: Load Workspace: serve a caricare il workspace precedentemente salvato dallinterfaccia di roboticad come file con estensione *.wsp.

ATTENZIONE: Quando il blocco viene aperto per la prima volta, segnala un errore dovuto al fatto che il blocco inizialmente non ha indicato nessun file da caricare. Lo stesso errore si verficherebbe qualora il file indicato non esistesse o avesse un diverso nome. Importante: il nome del file va messo tra apici singoli affinch il nome del file venga riconosciuto come stringa. Esempio: se il file era stato salvato come pippo.wsp, adesso dentro al blocco Load workspace ci va scritto pippo.wsp. Quando si fa OK, il workspace indicato viene caricato. A questo punto il blocco Select Robot va aperto e nel menu a tendina si pu scegliere su quale robot andare a lavorare. Analogamente per il blocco Select Object e Select Light, si pu selezionare loggetto o la luce su cui andare a lavorare. Nel blocco Select Robot lingresso Q richiede in ingresso un vettore di n elementi, dove n il numero di giunti del robot corrente. La configurazione base per caricare un workspace precedentemente creato e visualizzarlo quella riportata in figura.

In realt questi blocchi non sono strettamente necessari al funzionamento delle simulazioni. Il pi importante sicuramente, a parte il Load Workspace per ovvi motivi, il Select Robot che, una volta selezionato un manipolatore, consente di creare automaticamente alcuni blocchi, come quello per il calcolo della cinematica, ecc. Nella student version che si pu scaricare da: http://www-lar.deis.unibo.it/people/rfalconi/index.html i tick relativi alla creazione dei blocchi dinamici stata resa non disponibile affinch gli studenti fossero obbligati a calcolarsi la dinamica da soli. In questo caso, in particolare, si potrebbe introdurre il discorso relativo alle funzioni per il calcolo automatico della dinamica in forma chiusa (vedere oltre). Per determinare la Q da dare in ingresso al blocco di selezione del robot (il nome del robot compare in rosso e il numero di giunti compare come Robot(n) sul blocco stesso) si possono usare vari metodi. Il pi importante quello di usare i blocchi riportati nel macro-blocco Trajectory.

Trajectory

Di questi blocchi, il pi importante quello in rosso Trajectory from *.smf file. Una volta aperto comparir come nella figura a sinistra. Ci sono complessivamente quattro opzioni: Hold start value: fa in modo che la traiettoria abbia allinizio, anche nella parte di tempo eventualmente non programmata, il valore iniziale; Hold end value: analogamente mantiene il valore finale raggiunto anche dopo la fine della traiettoria stessa Se questi due box non sono spuntati, al di fuori del range temporale programmato, il blocco mette a zero tutti e valori della traiettoria. Use file Time-Data: usa le impostazioni temporali salvate assieme alla traiettoria. Attualmente meglio che questo box sia sempre selezionato File name (*.smf): va specificato il nome di un file di traiettoria (creato dallinterfaccia grafica usando il Via Point List e il Teach Pendant). Come per i file di workspace, anche in questo caso il nome del file completo di estensione deve essere messo fra apici singoli. I profili delle traiettorie cos caricati possono essere mandati direttamente al blocco Load Robot oppure usati per effettuare un vero e proprio controllo (PD+compensazione di gravit, a dinamica inversa, ecc).

Dinamica calcolata in forma chiusa


Prendiamo in considerazione ora le funzioni preposte al calcolo della dinamica in forma chiusa. Per il calcolo della dinamica in forma chiusa di un manipolatore il codice si appoggia al Symbolic Toolbox di Matlab che, a sua volta, si basa sul kernel di Maple. Le funzioni in questione si trovano nella directory \RobotiCad e sono: DYN: la funzione crea la dinamica in forma chisa per un determinato manipolatore.la chiamata della funzione >> [Tend,J,M,C,G]=DYN(dh,BASE,nomefile) dove Tend la matrice omogenea in forma chiusa della cinematica diretta del robot J lo Jacobiano geometrico in forma simbolica M, C, G sono le matrici della nota equazione dinamica del manipolatore. Gli argomenti della chiamata sono invece: DH: matrice di Denavit-Hartenberg per il robot BASE: matrice omogenea per la posizione e lorientamento della BASE del robot nomefile: nome del progetto che si vuole attribuire ai file che verranno automaticamente creati dalla chiamata alla funzione DYN. I parametri dinamici del robot devono essere impostati direttamente allinterno del file DYN. A riga 23 del codice possibile vedere quali saranno i file che verranno creati in automatico. Laltro file importante UpDateDYN. Lo scopo di questa funzione quello di modificare i parametri dinamici del robot senza dover ricalcolare la dinamica complessiva. Il trucco si basa sul fatto che i file scritti in precedenza hanno tutti una parte di inizializzazione in cui vengono settati i valori dinamici del manipolatore, mentre tutte le equazioni sono lasciate in forma parametrica. La chiamata di questa funzione : >> UpDateDYN(nomefile); In questo caso il file UpDateDYN deve essere aperto per cambiare i parametri che interessano, mentre come unico parametro dallesterno deve essere fornito il nomefile del progetto che si vuole modificare. I file che vengono creati possono essere immediatamente messi allinterno di una matlab function in Simulink, in modo da poterli utilizzare senza fare altre modifiche. ATTENZIONE: le modifiche che vengono fatte usando la funzione UpDateDYN non hanno effetto durante una simulazione. Per rendere efficaci tali cambiamenti, la simulazione deve essere fermata e fatta ripartire.

Esempio
Facciamo ora un esempio prendendo in considerazione un doppio pendolo, che pu essere visto come un planare a 2 gld con base ruotata di 90 gradi attorno allasse X. Facciamo partire RobotiCad, usiamo linterfaccia DH e mettiamo dentro i seguenti dati per i parametri di descrizione del robot (senza per il momento ruotarne la base): 0 0.5 0 0 0 0 0.5 0 0 0 Dopo il Check Matrix (che scriver Valid D-H for robot [RR]), dal men [Robot -> Create] passiamo alla creazione effettiva del robot. Si otterr una cosa come quella in figura (il pallino bianco rappresenta la sorgente di luce):

In questo caso abbiamo quindi un planare a due gradi di libert. Ora, selezionando tutti il robot con un doppio click del tasto sinistro su una qualunque sua parte, nel men laterale scegliamo Orientation e scegliamo la modalit Roll-Pitch-Yaw. Mettendo un valore di Yaw pari a -pi/2 (tutti gli angoli sono in radianti) si ottiene una rotazione del robot. A questo punto, visto che il robot giacerebbe sul pavimento, bisogna portarlo ad una altezza almeno pari alla sua lunghezza in estensione. Poniamo di volerlo mettere ad una altezza di 1.2: selezionare allora dalla barra laterale lopzione Move e mettere il valore di Z a 1.2. Quello che si ottiene sar una cosa come quella in figura:

Per rendere pi appetibile il pendolo, selezioniamo ora solo lendeffector del robot (singolo click su quella specie di pinza azzurra) e traformiamolo in una sfera: dal men laterale del singolo oggetto, sotto a Shape, selezionare dal men a tendina la voce Sphere. Ora lendeffector risulter come una specie di palla nera: in realt il colore della palla un altro (azzurro), il ner degli spigoli va si che non sia visibile. Volendo cambiare il materiale dellendeffector, si pu scegliere sempre dalle opzioni laterali il pulsante con la tavolozza e il dischetto, che permette di caricare uno dei materiali creati e presenti nella sottodirectory \RobotiCad\Material. Fatto ci, si rielezioni il robot e si apra il Teach Pendant. A questo punto, salviamo alcune posizioni per le variabili di giunto, ad esempio le coppie riportate qui sotto: J1 J2 0 0 -pi/4 pi/4 -5*pi/4 0 pi/4 -pi/4

Con il men [Play -> Robot] facciamo la prova della simulazione cinematica, magari facendo vedere anche le traiettorie e cambiando eventualmente il tipo di traiettoria (sconsiglio la lineare o la parabolica). La simulazione cinematica pu essere avviata anche utilizzando il pulsante Play nella toolbar della finestra principale. Salviamo quindi la traiettoria creata usando il men [ Viapoint -> Save -> Save (Traj. file) ]. Chiamiamo il file delle traiettorie pippo.smf e salviamolo nella sottodirectory \RobotiCad\Simulink. A questo punto, creiamo un oggetto nuovo (per default la sfera rossa di dimensioni unitarie). Se le si vuole dare un significato o se ne vuole giustificare la creazione, pu essere usata per fare vedere le varie forme predefinite presenti per gli oggetti: basta selezionarla e andare sullopzione Shape nel men laterale.

Ora, dal men [File -> Create Workspace] salviamo il workspace che verr poi caricato in Simulink. Limportante che venga salvato nella sottodirectory \RobotiCad\Simulink. Chiamiamolo pippo.wsp. Ora possiamo chiudere la finestra di RobotiCad. Entriamo nella directory \RobotiCad\Simulink a apriamo il file RobotiCadBlocks.mdl. Creiamo quindi un file nuovo in Simulink e trasciniamoci dentro i blocchi seguenti dal macro-blocco Workspace & Graphics Load Workspace Select Robot Select Light Select Object Plot Workspace e dal macro-blocco Trajectory il blocco: Trajectory from *.smf file Apriamo il blocco Load Workspace e carichiamo il file pippo.wsp (mi raccomando gli apici!). Nel blocco Select Robot selezioniamo da men a tendina lunico robot disponibile e analogamente si faccia per il blocco Select Object e Select Light. Nel blocco Trajectory from *.smf file caricare il file pippo.smf. Lo schema dei collegamenti da eseguire quello riportato in figura.

Il collegamento tratteggiato, se chiuso, quando parte la simulazione consente di vedere la simulazione cinematica del pendolo. A questo punto mettiamoci un controllo PD con compensazione di gravit (andiamo sul classico).

Aggiunta del controllore Per il controllo PD con compensazione di gravit ci servono due blocchi da creare con le matlab function, usando i file DYN e UpDateDYN (che dovranno essere presenti nella sottodirectory \RobotiCad\Simulink). Il primo blocco dovr calcolare laccelerazione ai giunti, avendo in ingresso la posizione, la velocit e le coppie. Il secondo dovr calcolare la compensazione di gravit avendo in ingresso la posizione dei giunti del robot. Nel primo caso la posizione, la velocit e le coppie vanno multiplexate (in questo ordine), quindi lo schema sar il seguente:

Per quanto riguarda il termine per la compensazione della gravit, la parte di schema che lo interessa fatto tipo:

Per definire le funzioni da mettere dentro i blocchi [Funzione 1] e [Funzione 2] si deve utilizzare la funzione DYN: si apre il file, si fissano i valori per le propriet dinamiche dei link, si fissano i valori degli attriti, ecc. Si tenga presente che nel codice della funzione DYN si hanno i seguenti significati: MASS_VALUE: vettore con le masse dei link D_DATA_VALUE: vettore con i valori della diagonale della matrice D del modello dinamico PCX, PCY, PCZ: vettori con le coordinate in dei centri di massa dei vari link. I valori sono riferiti al sistema di riferimento solidale con il link stesso, e poich si usa la convenzione di DH, in questo caso tali sistemi sono tutti alla fine dei link, quindi lungo X (che lasse che congiunge un sistema con laltro) i valori vanno presi in negativo, altrimenti i centri di massa risulterebbero oltre la lunghezza del link. La chiamata della funzione DYN deve essere fatta dal prompt (siamo ancora nella sottocartella \RobotiCad\Simulink) come segue: >> [Tend , J , M , C , G] = DYN( [0 0.5 0 0 0; 0 0.5 0 0 0 0] , rotx(pi/2) , pippo) In questo modo verranno automaticamente creati i file seguenti: 1. Calculate_DDQpippo.m 2. Calculate_Pospippo.m 3. Calculate_Gpippo.m 4. Calculate_TAUpippo.m Di questi, a noi interessano per il momento solo il primo e il terzo. Infatti, se nei due schemi alle figure precedenti mettiamo come matlab function queste due, per

completare il controllore sar sufficiente chiudere le retroazioni con opportuni guadagni. Per la matlab function chiamata [FUNZIONE 1] Calculate_DDQpippo(u) largomento; per la matlab function chiamata [FUNZIONE 2] Calculate_Gpippo(u) largomento. Lo schema di controllo finale diventa quindi quello seguente:

Facendolo partire, si aprir immediatamente la finestra di grafica con la simulazione. La finestra stessa si apre in automatico solo la prima volta che il modello parte: quindi, se la grafica rallenta troppo la simulazione (il ch molto probabile), si ferma la simulazione, si chiude la finestra di grafica e si fa ripartire la simulazione, supervisionando il tutto con degli scope. Inoltre, la parte di grafica, una volta aperta mostrer la fastidiosa sfera rossa che era stata creata nellambiente. Per evitare che venga mostrata, bisogna eliminare il collegamento tra il blocco Select Object e il blocco Plot Worhspace. Per riaprire la finestra di grafica sufficiente fare un doppio click sul blocco Plot Workspace. Un modo alternativo per avere il plot del comportamento del manipolatore di interesse creare un file simile a questo ma utilizzando solo il blocco per caricare le traiettorie e, per quanto riguarda la grafica, usare il blocco Simple Plot (quello arancione sempre nel macro-blocco Workspace & Graphics. Lo schema alternativo (che chiameremo per ovvi motivi pippo_fast.mdl) diventer quello nella figura seguente.

In questo caso, la simulazione ci guadagna parecchio in velocit, anche se la parte grafica ne risente. Il blocco Simple Plot in particolare ha alcune opzioni: DH matrix: vuole la matrice di DH del robot da disegnare. Nel nostro caso ci andr la matrice [0 0.5 0 0 0; 0 0.5 0 0 0]. Base Position + Orientation: matrice omogenea che descrive la posizione e lorientamento della base del robot nello spazio rispetto al sistema assoluto. Nel nostro caso sar 1 0 0 0 0 0 1 0 0 -1 0 0 0 0 1.2 1

ottenibile anche scrivendo nel campo realtivo la riga: rotx(pi/2)+[0 0 0 0; 0 0 0 0; 0 0 0 1.2; 0 0 0 0] View trace: traccia dellendeffector del robot View frame: se spuntato, fa vedere i sistemi di riferimento associati ai vari link del robot. Axis scale: 1 per default, serve a riscalare gli assi in modo da vedere meglio la scena.

Suggerimenti Potrebbe essere molto carino mettere uno switch manuale sulle TAU in ingresso al blocco chiamato [FUNZIONE 1], mettendo come altra sorgente il valore costante [0 0]. In questo modo si pu fare vedere come il pendolo collassa quando si annullano le coppie che ne comandano la traiettoria.

Inoltre, potrebbe essere interessante provare a cambiare i parametri dinamici del robot e fare vedere come effettivamente cambia il suo comportamento.

Potrebbero piacerti anche