Pianificazione di moto per robot

antongardner
Salve a tutti!
Mi sono appena iscritto e, dopo aver letto alcuni post, non posso esimermi dal farvi i più fervidi complimenti per la passione e l'impegno con cui vi dedicate alla matematica. :-) Fra l'altro ho avuto la certezza di essere molto più ignorante in materia di quanto credessi.
Il mio questito è il seguente. Sto preparando la mia tesi di laurea e devo trovare una condizione necessaria per la fattibilità della pianificazione di moto per i robot. Ho pensato ad una teoria che sicuramente voi matematici definirete "una schifezza" :-), ma in prima istanza sembra funzionare. Vi confesso che ci sono arrivato un po' a caso, tuttavia il mio spiccato senso ingegneristico (del "si vede a occhio") mi convince abbastanza sulla bontà della stessa.
Cercherò di rendere la teoria più semplice possibile (perché la possa capire anche io, oltre che voi :-D)
Abbiamo due funzioni generiche, f e g, e il sistema di equazioni:

f(q1,q2) = a
g(q1,q2) = b

a e b sono due funzioni scalari (eventualmente dipendenti dal tempo) che rappresentano i vincoli del problema.
Si tratta di trovare l'andamento di q1 e q2 affinché queste due funzioni rispettino i vincoli.
Io ho pensato questo: costruiamo una matrice "qualitativa" M, che nella posizione [i,j] ha un 'uno' se la funzione i-sima dipende dalla variabile j-sima e 'zero' altrimenti. In questo caso sarebbe:

M = [1, 1; 1, 1]

Chiamiamo "D" il numero minimo di '1' su ogni riga di M.
Facendo varie prove ho visto che in generale NON esiste una soluzione se:
1) il numero minimo di '1' su ogni riga si annulla;
oppure se
2) rango(M) + D < S + 1, dove S è la dimensione del sistema.
In questo caso D = 2, S = 2 ed, in effetti, una soluzione PUO' esistere.

Consideriamo invece questa situazione:

f() = a
g(q1,q2) = b

La prima condizione è violata (f è guidata da altre variabili da noi non controllabili) e quindi in generale la pianificazione non è possibile.

Altro caso:

f(q1) = a
g(q1) = b

La seconda condizione è violata.
Infatti se io riesco a risolvere q1 dall'inversione di f (e non è detto), q1 risulta bloccato e non posso agire su g affinché "segua" b!!

La matrice M deve essere sempre quadrata: se volessimo introdurre un terzo vincolo, occorrerebbe considerare anche una terza variabile q3.

Questa congettura, relazione... - non so neanche io come chiamarla - pare funzionare.
Sicuramente ho scoperto l'acqua calda (o, ancor peggio, ho detto una cavolata assurda).
Sareste in grado di fornirmi una dimostrazione di quel che vi ho raccontato, o almeno dirmi quale argomento di matematica viene toccato, in modo tale da poterlo approfondire per conto mio? (se poteste fornirmi la dimostrazione sarebbe meglio però!, visti i tempi stretti con i quali sto portando avanti la mia tesi ;-D)

Vi ringrazio, siete mitici.

Risposte
antongardner
"thelawyer":
OK. non prendertela.

No problem. :wink:

"thelawyer":
Il tuo problema è trovare una "condizione necessaria per la fattibilità della pianificazione di moto" per un robot.

Il mio problema è trovare una condizione necessaria per la risoluzione di un sistema non lineare, eventualmente tempo-variante, nella forma (inglobando tutto nel primo termine):

f[size=75]1[/size](q[size=75]1f[/size][size=59]1[/size],q[size=75]2f[/size][size=59]1[/size],...,q[size=75]N[/size][size=59]f1[/size][size=75]f[/size][size=59]1[/size]) = 0
.
.
.
f[size=75]M[/size](q[size=75]1f[/size][size=59]M[/size],q[size=75]2f[/size][size=59]M[/size],...,q[size=75]N[/size][size=59]fM[/size][size=75]f[/size][size=59]M[/size]) = 0

dove {q[size=75]1f[/size][size=59]K[/size],q[size=75]2f[/size][size=59]K[/size],...,q[size=75]N[/size][size=59]fK[/size][size=75]f[/size][size=59]K[/size]} è un sottoinsieme di Q = {q[size=75]1[/size],q[size=75]2[/size],...,q[size=75]M[/size]} per K = 1...M e
dove unione[q[size=75]1f[/size][size=59]1[/size],q[size=75]2f[/size][size=59]1[/size],...,q[size=75]N[/size][size=59]f1[/size][size=75]f[/size][size=59]1[/size], ... ,q[size=75]1f[/size][size=59]M[/size],q[size=75]2f[/size][size=59]M[/size],...,q[size=75]N[/size][size=59]fM[/size][size=75]f[/size][size=59]M[/size]] = Q
e l'intersezione fra gli insiemi {q[size=75]1f[/size][size=59]K[/size],q[size=75]2f[/size][size=59]K[/size],...,q[size=75]N[/size][size=59]fK[/size][size=75]f[/size][size=59]K[/size]} può non essere vuota.

Costruendo la matrice B di dimensione [MxM] che ha un '1' in posizione [i,j] se la funzione f[size=75]i[/size] dipende dalla variabile q[size=75]j[/size] e '0' altrimenti, sono sicuro che NON esiste in generale una soluzione al sistema (neanche ottenuta con metodi numerici) se:

D = 0
oppure
rango(B)+D
dove D è il numero minimo di '1' presenti sulle righe della matrice.

Nel primo post ho fatto qualche semplice ragionamento su esempietti stupidi. Ma il discorso sembra tornare.


"thelawyer":
forse potrebbe aiutarti il teorema di incompletezza di Godel.

Ah, andiamo bene. L'ho solo sentito nominare e non mi pare sia successo in birreria. :-D

thelawyer1
OK. non prendertela.
Il tuo problema è trovare una "condizione necessaria per la fattibilità della pianificazione di moto" per un robot.
Forse se spieghi meglio cosa intendi, sia per "condizione necessaria" e sia per "fattibilità della pianificazione"
potrebbe venire fuori che il problema più che matematico, sembrerebbe logico.
Da quel che par di capire dalla tua descrizione, se quelle funzioni sono parte del sistema stesso,
forse potrebbe aiutarti il teorema di incompletezza di Godel.
Insomma si tratta di capire "dove" cerchi la "condizione necessaria".
O forse sto sparando una cavolata.

antongardner
"thelawyer":
Ecco perché l'università va male .....

Questa potevi anche risparmiartela.

"thelawyer":
Secondo me, prima di qualsiasi cosa, dovresti definire i gradi di libertà che vuoi dare al tuo robot

Probabilmente la mia premessa è stata fuorviante. Trascurando il titolo del post e l'introduzione, nella teoria che ho esposto non si menziona nè il concetto di robot nè quello di pianificazione, ma si parla soltanto di risoluzione di sistemi non lineari tempo-varianti. Che poi quel sistema rappresenti la cinematica di un robot o un problema di finanza è soltanto un discorso di applicazione.

"thelawyer":
e che tipo di movimentazione vuoi utilizzare: se moti lineari o circolari.

La mia precedente replica vale anche per questa tua asserzione: stiamo parlando di teoria, non di applicazione. Mi dispiace contraddirti di nuovo, ma la differenziazione fra giunto prismatico e rotoidale serve soltanto per il _calcolo_ della cinematica diretta del robot (parametri DH, ispezione geometrica...). Una volta nota la funzione, però, possiamo anche scordarci della natura dei giunti. Benché l'università vada male, su queste cose mi sento abbastanza sicuro. ;-)

"thelawyer":
Solo da queste semplici premesse di realtà, puoi tirare fuori una descrizione "matematica" del problema,

Una descrizione matematica di ciò che devo fare è stata già ampiamente data. Il problema, come espresso nel mio primo post, è di sapere se le due condizioni che ho trovato sono un caso particolare di qualche teorema che esiste in matematica e che, giacché l'università va male, i miei professori in 5 anni non sono stati in grado di spiegarmi. Grazie mille. :)

thelawyer1
Ecco perchè l'università va male .....
Secondo me, prima di qualsiasi cosa, dovresti definire i gradi di libertà che vuoi dare al tuo robot, e che
tipo di movimentazione vuoi utilizzare: se moti lineari o circolari.
Solo da queste semplici premesse di realtà, puoi tirare fuori una descrizione "matematica" del problema,
altrimenti corri il rischio di costruire sulla sabbia una bellissima "teoria" che non serve a nulla.
Ciao :-D :-D :-D

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.