Braccio planare a 2 giunti Parametri di giunto: theta1 , theta2. La

Braccio planare a 2 giunti
Parametri di giunto: theta1 , theta2.
La posizione desiderata è individuata nel piano dai punti x e y.
Calcolo della cinematica diretta
La cinematica diretta è calcolata geometricamente e definisce le
coordinate della posizione dell’ end-effector nel piano di lavoro
conoscendo i parametri di giunto.
π‘₯
[𝑦] = 𝑓(π‘‘β„Žπ‘’π‘‘π‘Ž1, π‘‘β„Žπ‘’π‘‘π‘Ž2)
Definite le lunghezze dei due bracci
l1 = 10; % length of first arm
l2 = 7; % length of second arm
e definiti i valori degli angoli operativi possibili
theta1 = 0:0.1:pi/2; % some first angle [rad]
theta2 = 0:0.1:pi; % some second angle
è possibile ricavare la posizione dell’ end-effector dalle relazioni della
cinematica diretta:
x = l1 * cos(theta1(i)) + l2 * cos(theta1(i)+theta2(j)); % x coordinate
y = l1 * sin(theta1(i)) + l2 * sin(theta1(i)+theta2(j)); % y coordinate
Calcolo della cinematica inversa
E’ utie per calcolare la posizione angolare dei giunti fornendo la posizione
voluta dall’end-effector
[
π‘‘β„Žπ‘’π‘‘π‘Ž1
] = 𝑓 (π‘₯, 𝑦)
π‘‘β„Žπ‘’π‘‘π‘Ž2
L’inversione cinematica non è sempre possibile risolverla analiticamente.
Calcolo della cinematica inversa tramite ANN
Definiamo il vettore di input come tutte le possibili combinazioni ricavate
dalla cinematica diretta, inserendo i valori degli angoli calcolati
precedentemente; queti ultimi valori costituiranno il vettore target.
T=theta12; P=xy;
net=newff(P,T,neurons,{'tansig','purelin'},'trainlm');
%training
[net,tr]= train(net, P, T);
Il sistema in catena diretta presenta dei blocchi di riferimento.
Un blocco nel quale è implementata la funzione sim(net) utile per
calcolare la cinematica inversa.
Un blocco rappresentativo del plant che implementa la cinematica diretta
calcolata precedentemente.
Infine il blocco scope, utile per rappresentare le posizioni nello spazio di
lavoro dei riferimenti in colore magenta e dell’ end-effector in colore
giallo.
La rete neurale utilizzata presenta 7 neuroni nello strato nascosto.
Si nota come ci sono delle differenze tra l’andamento voluto e quello
reale.
Controllo con PI
Poniamo dei riferimenti di coordinate e li trasformiamo in parametri dei
giunti tramite rete neurale come nel primo esempio. Per realizzare questo
tipo di controllo bisogna rertroazionare i valori ottenuti dal plant del
robot e compararli per fornire al controllore PI gli errori di posizione di
coordinate. Per rendere possibile questa conversione utilizziamo una rete
nel ramo di retroazione.
In seguito è mostrata la risposta del sistema.