Robot antropomorfo a 6 assi

scusate per il domandone da 1 milione di ?uro.

chi mi aiuta a sviluppare un algoritmo per risolvere la cinematica inversa di un robot antropomorfo a 6 assi?

ovviamente non chiedo la pappa pronta (anche perche' ho gia' completato l'

80% facendo a modo mio [mi manca un solo asse]), ma vorrei info su come si fanno in modo serio queste cose.

grazie, ciao ilmira

Reply to
ilmira
Loading thread data ...

Il 13 Mag 2005, 21:14, "ilmira" ha scritto:

Si fanno con camionate di equazioni, derivate e integrali. Io ci avevo provato circa 15 anni fa quando ero ancora fresco di studi di matematica, era per un robot a 5 assi e poi alla fine ho lasciato perdere la matematica e ho regolato le accelerazioni semplicemente per non avere troppi errori. Probabilmente oggi farei le cose piu' seriamente, all'epoca non c'era ancora internet e sui libri avevo trovato poco. Penso che adesso si possa trovare molta piu' documentazione e software per risolvere questi problemi, anche per via numerica invece che analitica.

-------------------------------- Inviato via

formatting link

Reply to
brown fox

sono un po a digiuno di tecniche di calcolo sui robot. cosa intendi per "ho regolato le accelerazioni semplicemente per non avere troppi errori" ?

ho letto in rete di metodi che fanno approssimazioni successive con un calcolo iterativo in cui variano gli angoli dei giunti, ricalcolano la posizoine della mano (usando la cinematica diretta), finche' non ottengono un errore entro i limiti impostati. oppure metodi che usano calcoli matriciali, che purtroppo non conosco.

io non ho usato formule matematiche particolarmente complesse, solo rototraslazioni sul piano e trigonometria. sono riuscito a fare la cinematica diretta, ma per quella inversa sono giorni che mi rodo per trovare l'angolo dell'ultimo giunto.

se hai ancora qualche info aggiuntiva da darmi, te ne sarei grato.

ciao ilmira

Reply to
ilmira

Il 14 Mag 2005, 14:43, "ilmira" ha scritto:

Anch'io! All'epoca sono andato completamente allo sbaraglio e sucessivamente non ho piu' affrontato l'argomento, percio' quello che ti dico potrebbe metterti, allo stato attuale, su strade sbagliate.

Il problema principale e' far muovere il sistema di assi il piu' velocemente possibile per portare l'utensile da una posizione ad un'altra, seguendo una determinata traiettoria e senza andare oltre la coppia massima fornibile da ogni motore. A seconda delle posizioni, ogni giunto vede un carico dinamico variabile, dovuto alle variazioni dei momenti di inerzia, delle velocita' e accelerazioni degli altri assi. Per fare un esempio semplice, il motore della base avra' bisogno di piu' coppia quando l'utensile e' distante e di meno coppia quando l'utensile e' vicino. Quando si muovono tutti gli assi contemporaneamente diventa un casino che io all'epoca non sono riuscito a risolvere per via analitica. Quello che ho fatto e' stato di trovare empiricamente l'accelerazione massima di ogni motore nelle condizioni di carico (circa) piu' sfavorevoli. In questo modo il robot non si muoveva mai alla massima velocita' possibile, ma almeno ero (quasi) sicuro che la coppia fornibile da ogni motore fosse sufficiente per mantenere la traiettoria.

Un momento, forse prima avevo capito male. Tu sei ancora al punto di, date le coordinate spaziali e gli angoli della mano o utensile, calcolare gli angoli dei vari giunti? Se e' cosi', i calcoli dipendono dalla configurazione del robot, ma da quello che mi ricordo non sono particolarmente difficili, si tratta di eseguire n rototraslazioni, dall'utensile alla base, e questo lo si fa con il calcolo matriciale. Ricordo che questi calcoli venivano eseguiti in meno di un millisecondo con un 386 e coprocessore matematico, e questo era molto importante per fare eseguire all'utensile una traiettoria precisa.

Beh, anche se usassi i calcoli matriciali alla fine vedresti che arrivi sempre a equazioni trigonometriche, da li' non si scappa! Usando le matrici hai il vantaggio di avere calcoli piu' puliti. Fai attenzione che quasi sempre ci sono piu' soluzioni alle equazioni ed e' vitale scegliere quelle simili per due posizioni vicine dell' utensile altrimenti ti puo' capitare,come era successo a me inizialmente, che per per spostare di pochi millimetri l'utensile il robot si sconquassi tutto!

Purtroppo mi rendo conto di non averti dato molte informazioni utili e di non potertene dare. Forse ti manca qualche nozione di algebra, comunque se sei riuscito ad arrivare fino a qui con la sola trigonometria, direi che puoi farcela. In bocca al lupo!

-------------------------------- Inviato via

formatting link

Reply to
brown fox

"brown fox" ha scritto nel messaggio news: snipped-for-privacy@usenet.libero.it...

si, sono ancora all'inizio :-) e da quello che mi scrivi, i calcoli matriciali sono la strada pulita, quindi dovro' mettermi a studiare, peccato, perche' visto quel che avevo fatto, pensavo di poterci arrivare lo stesso.

Per quel che riguarda il calcolo delle coppie dei singoli motori, non ho capito bene a cosa serve. Io pensavo di dare in pasto ad un classico algoritmo PID le posizioni dei giunti ottenute dalla cinematica inversa. Normalmente nei controlli di posizione che faccio io, aggiungo anche 2 guadagni di feedforward costanti, uno legato alla velocita' e uno legato all'accelerazione, in questo caso potrebbero non essere costanti ma variabili in base allo sbraccio visto dal giunto.

crepi il lupo! ;-)

ciao ilmira

Reply to
ilmira

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.