Budowanie lokalnej mapy otoczenia - skaner z czujnikiem podczerwieni Kod 1

Nasza ocena:

3
Pobrań: 147
Wyświetleń: 1071
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Budowanie lokalnej mapy otoczenia - skaner z czujnikiem podczerwieni Kod 1 - strona 1 Budowanie lokalnej mapy otoczenia - skaner z czujnikiem podczerwieni Kod 1 - strona 2 Budowanie lokalnej mapy otoczenia - skaner z czujnikiem podczerwieni Kod 1 - strona 3

Fragment notatki:


R=rotz(-pi/3) * roty(pi/6) * rotx(-pi/4) det(R)=1 det(R)
ans = 1.0000
Własność jest spełniona.
R -1 ≡ R T R -1 odwr=inv(R) odwr = 0.4330 -0.7500 -0.5000 0 0.4356 0.6597 -0.6124 0 0.7891 0.0474 0.6124 0 0 0 0 1.0000 R T trans=R.' trans = 0.4330 -0.7500 -0.5000 0 0.4356 0.6597 -0.6124 0 0.7891 0.0474 0.6124 0 0 0 0 1.0000 Własność jest spełniona, ponieważ R -1 ≡ R T .
n T o=o T a=a T n≡ 0 Wpisujemy kolejno polecenia w MATLABIE:
n=R(:,1) n =
0.4330
-0.7500
-0.5000
0
nt=n.' nt =
0.4330 -0.7500 -0.5000 0
o=R(:,2) o =
0.4356
0.6597
-0.6124
0
a=nt*o a = -5.5511e-017
ot=o.' ot = 0.4356 0.6597 -0.6124 0
b=ot*R(:,3) b = 5.5511e-017
c=R(:,3).'*n c = 1.1102e-016
Wyniki składników a b c są bliskie 0, ponieważ Matlab zaokrągla wyniki.
Własność jest spełniona.
||n|| = ||o|| = ||a|| = 1 Wpisujemy w MATLABIE:
norm(R(:,1)) norm(R(:,2)) norm(R(:,3)) Dla każdej wpisanej wyżej komendy otrzymujemy ten sam wynik: ans = 1
Normy powyższych 3 wektorów są równe 1.
n x o = a, o x a =n, a x n = o, gdzie R≡[n o a] R(:,3) a =
0.7891
0.0474
0.6124
0
nxo=cross(R (1:3,1),R(1:3,2)) nxo =
0.7891
0.0474
0.6124
Rot(:,1) n =
0.4330
-0.7500
-0.5000
0
oxa=cross(Rot(1:3,2),Rot(1:3,3))

(…)

…].'
>>T01=[-1 0 0 3;0 1 0 -6;0 0 -1 4;0 0 0 1]
>>T21=[0 -1 0 2;1 0 0 5;0 0 1 0;0 0 0 1]
Obliczamy macierz odwrotna do macierzy T21
>>R21=T21(1:3,1:3)
>>R12=R21.'
>>d21=T21(1:3,4)
>>d12=-R12*d21
>>T12(1:3,1:3)=R12;
>>T12(1:3,4)=d12;
>>T12(4,1:3)=0;
>>T12(4,4)=1
Obliczmy macierz T02
>>T02=T01*T12
Obliczamy macierz T20 (odwrotna do T02)
>>R02=T02(1:3,1:3)
>>R20=R02.'
>>d02=T02(1:3,4)
>>d20=-R20*d02
>>T20(1…
…)
L1=link([-pi/2 0 q(1) 0 0])
L2=link([0 a(1) q(2) 0 0])
L3=link([0 a(2) q(3) 0 0])
antropo=robot({L1,L2,L3})
Funkcja wymaga podania - w postaci wektorów - parametrów manipulatora (a jest wektorem długości poszczególnych członów, q zestawem zmiennych konfiguracyjnych).
kiść sferyczna
nadgarst(d6,q)
L1=link([-pi/2 0 q(1) 0 0])
L2=link([pi/2 0 q(2) 0 0])
L3=link([0 0 q(3) d6 0])
nadgarstek=robot({L1,L2…
… jest taka sama jak macierz wynikowa rotacji. Macierz obrotu R03b różni się od macierzy obrotu R03u.
1.7
R03u= RZ(-π)RY(π/2)RX(π/2)
1.8
>>Rxyz=rotz(-pi)*roty(pi/2)*rotx(pi/2)
>>tr=rpy2tr(-pi,pi/2,pi/2)
Macierze rotacji są identyczne, tak więc wynik jest poprawny. Tworzymy wizualizację orientacji układu {3} w układzie {0}:
>>tr3d(tr)
1.9
R03b= RX(π/2) RY(π/2) RZ(-π)
Obliczamy macierz R03b korzystając z poleceń rotz, roty, rotx:
>>R3=rotx(pi/2)*roty(pi/2)*rotz(-pi)
Macierze rotacji są identyczne, tak więc wynik jest poprawny. Tworzymy wizualizację orientacji układu {3} w układzie {0}:
>>tr3d(R3)
1.11
>>a=tr2rpy(R)
Aby otrzymać daną macierz R musimy dokonać obrotu o kąty RPY względem układu ustalonego o kąt -π/2 wokół osi X, następnie o kąt 0 wokół osi Y oraz o kąt -π wokół osi Z.
>>b=tr2eul(R)
Zadaną macierz rotacji…
... zobacz całą notatkę

Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz