giovedì 24 ottobre 2019

MR-6 - Robot 6 assi auto progettato e costruito

Dopo mesi di duro lavoro (e qualche fallimento) vi presento MR-6 il mio braccio robot a 6 assi.


Confesso di aver tirato un sospiro di sollievo dopo aver stretto l'ultima vite che decretava la conclusione di questo lungo progetto.

Se sei interessato a questo progetto e vuoi replicare il robot clicca qui


Fin dall'inizio della mia attività di costruzione cnc ero affascinato dall'idea di avere e programmare un braccio robot ed ora finalmente questa idea si è concretizzata.

Dopo oltre un anno di studi, prototipi e diversi fallimenti sono riuscito a costruire un robot in ferro e alluminio con 6 gradi di libertà controllati da motori passo-passo.

La parte più difficile da affrontare è stata quella progettuale perchè volevo raggiungere 3 obiettivi fondamentali:

  1. Basso costo di realizzazione
  2. Facilità di assemblaggio anche con poca attrezzatura
  3. Buona precisione negli spostamenti

Ho progettato il modello 3D con Rhino più volte fino ad arrivare (secondo me) ad un buon compromesso che soddisfa i 3 requisiti.

Non sono un ingegnere e prima di questo progetto non avevo alcuna esperienza in campo di robotica per cui un occhio più attento potrebbe trovare difetti di progettazione in quello che ho fatto ma posso comunque dire di essere soddisfatto del risultato finale che ho raggiunto.






Il Progetto

Prima di arrivare al modello finale ho disegnato almeno 8 prototipi diversi con sistemi di trasmissioni differenti ma nessuno riusciva a soddisfare i 3 requisiti descritti prima.

Mettendo insieme le soluzioni meccaniche di tutti i prototipi realizzati (e accettando anche qualche compromesso) è venuto fuori il modello definitivo.

Un aspetto da tenere sempre presente in fase di progetto è che anche un solo grammo aggiunto all'estremità del polso del robot si moltiplica a discapito della tenuta dei motori alla base e quindi più peso si aggiunge e più i motori devono essere calcolati per sopportare lo sforzo.

Per "aiutare" i motori a reggere lo sforzo ho applicato dei pistoni a gas da 250N e 150N.

Ho pensato di ridurre i costi realizzando il robot con lastre di ferro (C40) e alluminio tagliate al laser con spessori che vanno da 2, 3, 5, 10 mm; il taglio al laser è molto più economico di una fresatura in 3D su metallo.

Dopo aver progettato ogni singolo componente ho ricavato le sagome dei pezzi in .dxf e le ho inviate ad ad una ditta dalle mie parti, www.decarligiancarlo-tagliolaser.it.

Tutto il resto dei componenti li ho costruiti al tornio.








I Motori

La scelta è caduta sui motori Nema23 e Nema17 con riduttori planetari di precisione reputo siano un ottimo compromesso.
Per quanto siano precisi un minimo di backlash c'è ma parliamo di 0.25 arcmin (0.4°)

Nema 17 rapporto 30:1
Nema 23 rapporto 50:1


La realizzazione

La fase di costruzione mi ha portato via molte ore di lavoro per la preparazione dei pezzi, la limatura manuale dei fori, delle sedi degli incastri, le filettature e la tornitura dei perni vari.

Il fatto di aver progettato ogni singolo componente in modo da poterlo lavorare con pochi strumenti di lavoro mi ha portato a non avere grosse sorprese o problemi di natura meccanica.

La cosa più importante è non avere fretta di finire le cose ma essere scrupolosi e seguire ogni singola riga del progetto, improvvisare in questa fase non porta mai a buoni risultati.

Realizzare le sedi dei cuscinetti è di estrema importanza perchè ogni snodo appoggia su di essi e anche un piccolo gioco di qualche centesimo potrebbe compromettere la buona riuscita del progetto. Mi sono ritrovato a dover rifare dei perni perchè con il tornio avevo mangiato un pò di troppo ed era di 5 centesimi più piccolo del foro del cuscinetto e quando ho provato a montarlo il gioco era mostruosamente evidente.

Gli attrezzi che ho utilizzato per preparare tutti i pezzi sono:
  • trapano a colonna
  • flessibile
  • dremel
  • mola
  • lima manuale
  • tornio
  • chiavi inglesi

Avevo progettato i pezzi da tagliare al laser con gli incastri leggermente più piccoli in modo da poterli perfezionare a mano perchè il laser per quanto sia preciso genera un taglio conico ed è fondamentale tenerne conto. Lavorando con la lima a mano ogni incastro ho fatto in modo di generare un accoppiamento molto preciso tra le parti.

Anche i fori delle sedi dei cuscinetti li avevo fatti più piccoli per poi alesarli a mano con il dremel e tanta (ma veramente tanta) pazienza.

Tutte le filettature le ho realizzate a mano al trapano a colonna perchè si ottiene la massima perpendicolarità tra maschio e pezzo.

Dopo aver preparato ogni singolo pezzo è arrivato il tanto atteso momento della verità, l'assemblaggio di tutto il robot. Sono rimasto sorpreso nello scoprire che ogni pezzo si incastrava esattamente nell'altro con le giuste tolleranze.

Le parti in ferro in alcuni punti iniziavano a formare dei punti di ruggine così mi sono deciso di smontare tutto il robot (per la ormai decima volta) pezzo per pezzo e di verniciare solo le parti in ferro applicando prima un primer e poi una vernice rosso fluo anche per dargli un tocco più industriale ;-)







































Chi ha letto gli articoli precedenti (il progettola meccanica e i test di movimento) avrà probabilmente notato alcune differenze rispetto al progetto originale, infatti ho apportato un paio di modifiche significative, una all'avambraccio o meglio al giunto 4 e una al gomito o meglio al giunto 3.

Giunto 3 - bug Fix n.1 

​Dopo i risultati dei test ho dovuto apportare alcune modifiche per migliorare la precisione del robot.

La prima modifica riguarda il giunto n.3 in particolare quando si trovava nella condizione più sfavorevole esercitava una trazione eccessiva della cinghia e di conseguenza il motore era sempre sotto sforzo. La soluzione era quella di dare un aiuto applicando una forza contraria al senso di rotazione.

Ho passato notti intere a ragionare su quale poteva essere la soluzione migliore senza dover rifare tutto.
Inizialmente ho pensato di applicare una grossa molla a torsione ma cercando online non ho trovato qualcosa di soddisfacente così ho optato per un pistone a gas (come già avevo progettato per il giunto n.2), ma il punto fondamentale era capire dove metterlo perchè non avevo spazio a sufficienza.

Rinunciando un po all'estetica ho valutato che il posto migliore dove collocare il pistone era sul fianco. Ho fatto i calcoli sulla potenza necessaria del pistone considerando il punto in cui doveva esercitare la forza e poi ho ordinato su ebay un pistone da 150 N lungo 340 mm poi ho progettato i nuovi supporti per poterlo fissare.







Giunto 4 - bug Fix n.2

La seconda modifica riguarda il giunto n. 4 dove inizialmente avevo progettato la trasmissione con la cinghia ritorta poi mi sono accorto che gli spazi erano ridotti e la cinghia non lavorava bene come sperato. Ho deciso così di rifare completamente tutto il giunto progettando le spalle in modo da accogliere il motore in senso parallelo rispetto ad esse delle pulegge.

Con questa nuova modifica ora la cinghia lavora in modo corretto ed è anche più facile metterla in tensione grazie al sistema con chiave che ho progettato per tendere con facilità la cinghia.









Elettronica di comando

​L'elettronica di controllo dei motori è la stessa che viene utilizzata per una classica CNC a 3 assi con la differenza che ci sono 3 driver e 3 motori in più da gestire.

Tutta la logica di controllo degli assi viene calcolata dall’applicativo, l'elettronica ha il solo compito di ricevere istruzioni per sapere di quanti gradi dovranno ruotare i motori affinché il giunto non raggiunga la posizione desiderata.

Le parti che compongono l’elettronica sono:
  • Scheda Arduino Mega
  • n. 6 driver DM542T
  • n. 4 Relè
  • n. 1 Alimentatore da 24V
  • n. 2 Elettrovalvole (per la pinza pneumatica)

Su Arduino viene caricato lo sketch che si occupa di gestire contemporaneamente i movimenti dei motori come accelerazione, decelerazione, velocità, passi e limiti massimi ed è programmato per ricevere via seriale dei comandi da eseguire.

Rispetto ai motion controller professionali che possono arrivare a costare anche diverse migliaia di euro Arduino nel suo piccolo si difende molto bene ovviamente operazioni troppo complesse non è in grado di gestirle come ad esempio il multithread utile soprattutto quando si devono gestire più motori contemporaneamente.







Software

Ogni robot ha una sua forma e angoli di spostamento differenti e la cinematica è diversa per ognuno di essi.
Al momento per eseguire i test sto usando il software di Chris Annin (www.anninrobotics.com) però la cinematica scritta per il suo robot non si adatta perfettamente al mio infatti alcune zone dell’area di lavoro non riesco a raggiungerle perchè il calcoli degli angoli non sono completi.

Il software di Annin è un ottimo punto di partenza, va bene adesso per fare gli esperimenti ma dovrò iniziare a pensare di scrivere un software mio che si adatti al 100% con la fisica del mio robot.

Ho già iniziato a fare qualche test utilizzando Blender e scrivendo la parte di motion controller il Python e sembra una buona soluzione, ci sono alcuni aspetti da mettere a punto ma questa combo (Blender + Ptyhon) è molto facile da implementare soprattutto è comoda per pianificare e simulare i movimenti senza avere il robot davanti a se. Più avanti a software completato pubblicherò nuovi aggiornamenti.





e per concludere, una pinza pneumatica...

Le classiche pinze costruite con i servi motori non mi hanno mai convinto, sono leggere e hanno poca forza di tenuta così la scelta è caduta su una pinza pneumatica, in questo modo regolando la pressione dell'aria con un classico manometro posso regolare la forza in base al tipo di oggetto da afferrare.

Alla base ho realizzato un supporto inferro rotondo per poterla fissare al polso del robot e alle pinze ho aggiunto dei quadrotti di alluminio per poter variare l'ampiezza della presa.
Il controllo dell'apertura e chiusura l'ho fatto con un relè e due elettrovalvole Festo














grazie per la lettura e al prossimo progetto... ;-)

8 commenti:

  1. proje tasarımlarınızı payalaşabilirmisniz?

    RispondiElimina
  2. What is the payload of the robot (how much weight when fully extended it can handle) ?

    RispondiElimina
    Risposte
    1. hi, I saw that you asked me the same question on instructables.com, I answered you from there.
      regards

      Elimina
  3. Ciao Mirko,

    ti avevo seguito all'inizio e grazie a te ho fatto la mia CNC.

    Questa volta mi sa che non riesco a copiarti. :-))

    Complimenti, grandissimo.

    Grazie per la condivisione del tuo ingegno.

    Loris

    RispondiElimina
  4. Hi, still can I buy the design using PayPal? Are the 3D model can be opened by solidwork

    RispondiElimina