Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[OSNROB] 1. laboratorijska vježba - 2021/2022

Kuhar

Jel bi se ovaj taylor trebao rijesavat preko neke rekurzije ili sta?


Viks

Kuhar ja pokusavam rekurzijom, cini se jednostavnije


snorlaxx

jel netko voljan sherati labos kad ga napravi? 🙂


Kuhar

Viks
Ja sam probavao ali cini mi se da funkcija ima pre malo ulaza, jer ako se spustim rekurzivno u to ‘stablo’ neznam dokle moram van, odnosno koji je interval izmedju točki, da ga ne predjem. Na neki način moram znat početne točke od kojih sam krenuo. Možda ja samo ipak neznam rekurziju hahaha


Viks

Kuhar nisan sigurna da san te skroz svatila, pa cu pokusat objasnit kako sam ja to logicki krenila, sad mi u kodu stvara problem kako spremat tocke u matricu bez da se ponavljaju
no u principu kad obavis sve i dodes do provjere uvjeta, ako uvjet prode (tj manje je od tolerancije) - super gotovo, a ako ne prode - pozoves funkciju 2 puta: jednom za ‘livo’ od medutocke (w1 - wM) i jednom za desno (wM-w2)
na ovaj nacin pokrijes cilo stablo


Kuhar

Viks mislim da mozes np.unique() pa bi ti on trebao izbacit sve vrijednosti koje se ponavljaju. a sto se tice principa tak sam i ja napravio samo dobijem dosta tocaka hahaha pa sam mislio da mi je krivo. Kako si izracunavala normu? To jest onaj kriterij da je ispod 0.01?


Viks

Kuhar u najs, probat cu s tim, hvala ti
well, nisam jos bas tocke dobila, iz nekog razloga ne izlazi iz rekurzije
prvo sam probala np.max(abs(w_m - w_M)) jer sam tako vidila negdi u starim materijalima (iako je to u matlabu, ne bi trebalo bit neke razlike), ali cini mi se da mi to izaziva problem
sad mi je ideja probati np.dot(wm-wM)


Kuhar

Evo ako neko ima problema s taylorom. Inace neke stvari ne radi kao recimo zbrajanje pa treba koristit np.add i tako neke sitnice ( la.norm isto meni nije radio, pa treba drugacije slozit ). Ali rekurzija i izlaz da su sve točke lijepo u istoj matrici bi trebalo radit. Razlika je sto ova funkcija vraca bas točke, a za pokretanje robota trebaju zakreti zglobova. U pripremi pise da mora vratit točke pa zato i vrača točke. Kasnije ce trebat s funkcijom def_ik to pretvorit u zakrete zglobova

import numpy.linalg as la

def taylor_swift(self, w0, w1, q0, tol=0.01):

    q0 = self.get_ik(w0,q0)
    q1 = self.get_ik(w1,q0)
    q_m = (q0+q1)/2.0
    w_m = self.get_dk(q_m)
    w_M = (w0+w1)/2.0
    
    # L2 norma 
    if la.norm(w_m, w_M) <= tol:
        return np.array([w0, w1])  
    else:
        left = taylor_swift(w0, w_M)  
        right = taylor_swift(w_M, w1)  
        return np.vstack((left, right))  

Kuhar

Kuhar

ova funckija ima EPIC fail. dodaje u ifu tocku u sredinu (w_M), sto nebi smjela ( treba samo w0 iw1 ), tako da PRIPAZITE na to.


Kuhar

Bica

Reznox

Kolege vec ste vjv napravili direktnu ali nek se nađe. Za ono sto sam ja testirao meni vraca dobre točke:


snorlaxx

Jel radi jos netko u The Construct-u? Imam problema na samom pocetku, uopce ne mogu promjeniti source, ne prihvaca mi one naredbe iz uputa. Jel sam trebala jos neki korak napraviti osim dodati projekt i pokrenuti ga?


Kuhar

Ak se neko muci sa plotanjem :

ja sam to napravio u 3d-u u matlabu, sad neznam jel to tako treba :

dio1 = importdata('poze_point.txt');
Spill=dio1.data;
dio2 = importdata('poze_taylor.txt');
Spill2=dio2.data;

X = Spill(:,1);
Y = Spill(:,2);
Z = Spill(:,3);

plot3(X,Y,Z,'r')
xlabel('X[m]');
ylabel('Y[m]');
zlabel('Z[m]');

hold on

X2 = Spill2(:,1);
Y2 = Spill2(:,2);
Z2 = Spill2(:,3);

plot3(X2,Y2,Z2,'b')

hold on

X3 = matrica(:,1);
Y3 = matrica(:,2);
Z3 = matrica(:,3);

plot3(X3,Y3,Z3,'g')

grid on

matrica je samo matrica s točkama kroz koje prolazi :


Kuhar

Kuhar i u ifu tol mora biti <= 😃


Bobinator

ima netko voljan podjelit svoj funkcionalni kod prve vjezbe nama E-ovskim smrtnicima?


« Prethodna stranica