politechnika wrocławska wydział elektroniki praca dyplomowa

Transkrypt

politechnika wrocławska wydział elektroniki praca dyplomowa
POLITECHNIKA WROCŁAWSKA
WYDZIAŁ ELEKTRONIKI
K IERUNEK :
S PECJALNO Ś Ć :
Automatyka i Robotyka
Robotyka
PRACA DYPLOMOWA
MAGISTERSKA
System śledzenia położenia dla platformy mobilnej
Position tracking system for a mobile platform
AUTOR :
Michał Mielnicki
P ROWADZ ACY
˛
PRAC E˛:
dr inż. Bogdan Kreczmer
O CENA PRACY:
WROCŁAW 2010
Prac˛e dedykuj˛e rodzicom.
Spis treści
1
Wst˛ep
3
2
Kinematyka i dynamika platformy mobilnej klasy (2,0)
2.1 Kinematyka nieholonomicznej platformy mobilnej klasy (2,0)
2.2 Model dynamiki . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Sterownik kinematyczny Lee, Lee i Tenga . . . . . . . . . . .
2.4 Sterownik dynamiczny - algorytm dokładnej linearyzacji . . .
2.5 Wyznaczanie drogi na podstawie przyspieszeń . . . . . . . . .
2.6 Wyznaczanie pr˛edkości obrotowej na podstawie
przyspieszeń . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Zjawisko aliasingu . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
5
5
7
9
10
10
. . . . . . . . .
. . . . . . . . .
12
13
3
Pakiety do wyszukiwania znaczników w obrazie wideo
3.1 Przeglad
˛ narz˛edzi do wyszukiwania znaczników . . . . . . . . . . . . . . . . .
3.2 ARToolKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
16
4
Platforma mobilna
4.1 Ogólna charakterystyka . . . . . . . . . . . .
4.2 Czujniki . . . . . . . . . . . . . . . . . . . .
4.2.1 Enkoder magnetyczny AS5045 . . . .
4.2.2 Akcelerometr MMA7260 . . . . . . .
4.2.3 Żyroskop ADIS16100 . . . . . . . .
4.3 Filtr analogowy dolnoprzepustowy MAX7400
4.4 Sterownik serwomechanizmów MC9S12A64
4.5 Sterownik główny AT91SAM7S256 . . . . .
4.6 Układ zasilania . . . . . . . . . . . . . . . .
4.7 Komunikacja poprzez Bluetooth . . . . . . .
4.8 Układ nap˛edowy . . . . . . . . . . . . . . .
4.9 Opis oprogramowania . . . . . . . . . . . . .
4.9.1 MC68S12a64 . . . . . . . . . . . . .
4.9.2 AT91SAM7s256 . . . . . . . . . . .
19
19
20
20
22
23
25
26
28
30
30
33
35
35
35
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
Aplikacja sterujaca
˛
37
6
Badania
6.1 Identyfikacja serwomechanizmów . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Dokładność pomiaru pozycji i orientacji na podstawie obrazu wideo . . . . . .
6.2.1 Wyznaczanie stabilności pomiaru położenia na podstawie obrazu wideo
39
39
40
40
2
SPIS TREŚCI
6.2.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
7
Wyznaczanie dokładności pomiaru dwóch znaczników
wzgl˛edem siebie . . . . . . . . . . . . . . . . . . . . . . . .
Wyznaczanie przebytej drogi na podstawie enkoderów magnetycznych
Skalowanie i wyznaczanie zera akceleromatru . . . . . . . . . . . . .
Wyznaczanie przebytej drogi na podstawie przyspieszeń . . . . . . .
Wyznaczanie pr˛edkości katowej
˛
na podstawie żyroskopu . . . . . . .
Wykrywanie przeszkód . . . . . . . . . . . . . . . . . . . . . . . . .
Śledzenie trajektorii bez korekcji z obrazu wideo . . . . . . . . . . .
Korekcja położenia pochodzaca
˛ od systemu wizyjnego . . . . . . . .
Podsumowanie
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
45
46
48
51
51
53
55
57
A Schematy elektroniki
59
B Wymiary robota
65
C Fotografie
69
Bibilografia
76
Rozdział 1
Wst˛ep
Poruszanie si˛e dowolnego robota mobilnego wia˛że si˛e z problemem określania jego położenia.
Każdy poruszajacy
˛ si˛e obiekt powinien posiadać informacj˛e dokad
˛ zmierza oraz gdzie aktualnie
si˛e znajduje.
W celu określenia pozycji można zastosować wiele rodzajów układów sensorycznych. Wybór zależy od warunków pracy, zakłóceń, wymaganej dokładności oraz obszaru poruszania si˛e
obiektu. Globalnym systemem nawigacji jest system GPS stosowany do określania pozycji
obiektów poruszajacych
˛
si˛e na dużych odległościach. Za jego pomoca˛ można określić pozycj˛e samolotu, czy samochodu. Jednak gdy samochód wjedzie do tunelu sygnał znika i pojazd
traci łaczność
˛
z satelita.˛ Takiego systemu nie można stosować w obszarach wymagajacych
˛
wysokiej precyzji określania położenia. Inne systemy zawieraja˛ układy sensoryczne wyposażone
w żyroskopy, akcelerometry,akcelerometry, enkodery, czy też kompasy. Położenie można dodatkowo określić używajac
˛ znaczników radiowych. Sygnały radiowe wykorzystywane sa˛ m.in.
w rolnictwie do dokładnego określania pozycji maszyny wykonujacej
˛ prace na polu. Systemy
takie charakteryzuja˛ si˛e wysoka˛ precyzja,˛ jednak niezb˛edne jest wcześniejsze, bardzo dokładne
rozstawienie nadajników radiowych. Do wykrywania przeszkód cz˛esto służa˛ dalmierze optyczne wykorzystujace
˛ fale podczerwone oraz sonary. Dodatkowo coraz cz˛eściej stosuje si˛e kamery określajace
˛ położenie obiektów oraz wykrywajace
˛ przeszkody. Aby zapewnić niezawodność systemu śledzenia położenia stosuje si˛e systemy posiadajace
˛ kilka rodzajów czujników.
W przypadku platform mobilnych najcz˛eściej wykorzystywanymi czujnikami sa˛ enkodery zliczajace
˛ obroty kół. Tego rodzaju czujniki zwykle bardzo dobrze nawiguja˛ robota, jednak gdy
koła ulegaja˛ poślizgom pozycja odczytana może być nieprawidłowa. Do wykrywania poślizgów
i zderzeń moga˛ służyć czujniki przyspieszenia.
W ramach niniejszej pracy przewidziana jest realizacja systemu śledzenia pozycji platformy
mobilnej oraz wykonanie samej platformy, która ma być lokalizowana przez stworzony system.
Przewiduje si˛e, że b˛edzie on zrealizowany w oparciu o układ wizyjny i istniejacy
˛ pakiet oprogramowania pozwalajacy
˛ na identyfikacj˛e znaczników.
Oprócz lokalizacji platformy za pomoca˛ systemu wizyjnego, jej pozycja ma być również
wyznaczana na podstawie wskazań enkoderów oraz czujników bezwładnościowych. Oprogramowanie całego stanowiska powinno umożliwić porównanie wskazań w odniesieniu do systemu wizyjnego. Należy również określić eksperymentalnie bład
˛ wyznaczenia położenia platformy za pomoca˛ samego systemu wizyjnego.
Rozdział 2
Kinematyka i dynamika platformy
mobilnej klasy (2,0)
2.1
Kinematyka nieholonomicznej platformy mobilnej klasy
(2,0)
Przyjmujac
˛ założenie, że platforma mobilna porusza si˛e bez poślizgów i buksowania kół, można
wyprowadzić ograniczenia fazowe w postaci Pfaffa[14]
A(q)q̇ = 0
(2.1)
Takie ograniczenia dla platform mobilnych oznaczaja,˛ że w punkcie kontaktu koła z podłożem wektor pr˛edkości jest zerowy. W tym celu należy przyjać
˛ nast˛epujacy
˛ wektor stanu, który
zawiera wszystkie współrz˛edne niezb˛edne do wyznaczenia równań kinematyki platformy mobilnej


x


 y 



(2.2)
q=
 θ ,


φ
 1 
φ2
gdzie x, y - współrz˛edne robota, θ - orientacja, φ1 , φ2 - katy
˛ obrotu kół wokół ich własnej
osi.
Brak poślizgu bocznego można określić poniższym równaniem:
ẋ · sinθ − ẏcosθ = 0.
(2.3)
Ograniczenia na poślizg wzdłużny i brak buksowania kół zostały przedstawione w ogólnej postaci dla i-tego koła jako:
Vi − Rφi = 0,
(2.4)
ẋi = Vi cosθ,
(2.5)
ẏi = Vi sinθ,
(2.6)
gdzie Vi to pr˛edkość liniowa i-tego koła, a xi i yi to jej składowe wzdłuż odpowiednich osi.
Pr˛edkość liniowa˛ można przedstawić w postaci sumy składowych
Vi = ẋi cosθ + ẏi sinθ.
Pr˛edkość koła pierwszego w kierunku każdej z osi można wyprowadzić nast˛epujaco:
˛
(2.7)
6
2. Kinematyka i dynamika platformy mobilnej klasy (2,0)
Rysunek 2.1 Ruch robota na płaszczyźnie.
x1 = x + L2 sinθ,
y1 = y − L2 cosθ,
po zróżniczkowaniu
ẋ1 = ẋ1 + θ̇ L2 cosθ,
ẏ1 = ẏ1 − θ̇ L2 sinθ.
Podstawiajac
˛ powyższe zależności do równania (2.7) oraz korzystajac
˛ z zależności (2.4) otrzymujemy ostatecznie równanie opisujace
˛ brak poślizgów wzdłużnych koła pierwszego
ẋ1 cosθ + ẏ1 sinθ +
L
θ̇ − Rφ̇1 = 0.
2
(2.8)
Analogicznie wyprowadzajac
˛ ograniczenie dla drugiego koła ostatecznie otrzymano
ẋ2 cosθ + ẏ2 sinθ −
L
θ̇ − Rφ̇2 = 0.
2
(2.9)
Ostatecznie równania (2.3) (2.8) (2.9) można zapisać w postaci Pfaffa:


sinθ −cosθ 0
0
0




L
−R 0  
A(q)q̇ =  cosθ sinθ

2

L
cosθ sinθ − 2
0 −R 


ẋ
ẏ
θ̇
φ̇1
φ̇2




.



(2.10)
Nast˛epnie należy znaleźć macierz G(q), której kolumny rozpinaja˛ przestrzeń liniowa˛ jadra
˛ macierzy A(q) oraz spełniajac
˛ a˛ warunek
A(q)G(q)[nxm] ≡ 0,
(2.11)
gdzie m = n − l, l-liczba zmiennych stanu, n-ilość ograniczeń. Można ja˛ wybrać w nast˛epujacy
˛
sposób:


cosθ cosθ


 sinθ sinθ 
 2

− L2 
(2.12)
G(q) = 
 L
.
 2

0 
 R
2
0
R
2.2. Model dynamiki
7
Ostatecznie można przedstawić model kinematyki platformy mobilnej klasy (2,0) w postaci
bezdryfowego układu sterowania

q̇



=



ẋ
ẏ
θ̇
φ̇1
φ̇2



cosθ cosθ
 

  sinθ sinθ 
  2

=
− L2 
  L

  2

0
  R

2
0
R
η1
η2
!
= G(q)η.
(2.13)
Pr˛edkości pomocnicze η1 i η2 (spełniaja˛ rol˛e sterowań) maja˛ sens przeskalowanych pr˛edkości
obrotu poszczególnych kół platformy, co opisuje 4 i 5 wiersz równania (2.13).
Za pomoca˛ pr˛edkości η1 i η2 można wyrazić pr˛edkość liniowa˛ v i obrotowa˛ ω platformy
v
ω
2.2
!
=
η1 + η2
2
L (η1 − η2 )
!
.
(2.14)
Model dynamiki
W celu wyprowadzenia modelu dynamiki robota z ograniczeniami (2.1), należy najpierw zdefiniować funkcj˛e Lagrange’a[8] (zwana˛ lagranżjanem) dla układu swobodnego (bez ograniczeń
fazowych):
L(q, q̇) = K(q, q̇) − V (q),
(2.15)
gdzie
K(q, q̇) - energia kinetyczna układu,
V (q) - energia potencjalna układu swobodnego.
Na mocy zasady najmniejszego działania Hamiltona, równania dynamiki układu robotycznego
przyjmuja˛ postać równań Eulera-Lagrange’a[8]
d ∂L(q, q̇) ∂L(q, q̇)
−
= F,
dt ∂ q̇
∂q
(2.16)
gdzie wektor F symbolizuje uogólnione siły niepotencjalne działajace
˛ na układ (m.in. sterowania). Układ (2.16) jest układem równań różniczkowych drugiego rz˛edu,
∂ 2 L(q, q̇)
∂L(q, q̇)
∂ 2 L(q, q̇)
q̈
+
q̇ −
= F.
2
∂ q̇
∂q∂ q̇
∂q
(2.17)
Energia kinetyczna ma postać formy kwadratowej pr˛edkości uogólnionej z symetryczna˛ i dodatnio określona˛ macierza˛
1
K(q, q̇) = q̇ T Q(q)q̇.
(2.18)
2
Podstawiajac
˛ zależność (2.18) do równania (2.17) otrzymujemy nast˛epujac
˛ a˛ postać ogólna˛ równania dynamiki układu robotycznego[14]
Q(q)q̈ + C(q, q̇)q̇ + D(q) = F,
gdzie
(2.19)
8
2. Kinematyka i dynamika platformy mobilnej klasy (2,0)
Q(q) - macierz bezwładności układu,
C(q, q̇) =
D(q) =
1 ∂
d
dt Q(q) − 2 ∂q (Q(q)q̈)
∂V (q)
∂q
- macierz sił Coriolisa i odśrodkowych,
- wektor sił grawitacji.
Zgodnie z zasada˛ d’Alemberta siły uogólnione F zapewniajace
˛ spełnienie ograniczeń fazowych
(2.1) nie wykonuja˛ pracy na dopuszczalnych przemieszczeniach. Ponieważ na robota działaja˛
uogólnione siły zewn˛etrzne (w postaci sterowań silnikami) na mocy zasady d’Alemberta i równania (2.17) otrzymujemy zmodyfikowana˛ postać równań dynamiki
Q(q)q̈ + C(q, q̇)q̇ + D(q) = AT (q)λ + Bu,
(2.20)
gdzie λ = (λ1 , λ2 , · · · , λl ) jest wektorem niezdeterminowanych mnożników Lagrange’a, B
- macierz sterowań. Z postaci ograniczeń fazowych zdefiniowanych równaniem (2.1) wynika,
że dla układu istnieja˛ pewne pomocnicze pr˛edkości spełniajace
˛ zależność
q̇ = G(q)η,
(2.21)
q̈ = Ġ(q)η + G(q)η̇
(2.22)
a po zróżniczkowaniu
W celu wyeliminowania mnożników Lagrange’a korzystamy z zależności
GT (q)AT (q) = 0
(2.23)
i mnożymy lewostronnie równanie (2.20) przez GT (q). Dodatkowo korzystajac
˛ z zależności
(2.21) oraz (2.22) otrzymujemy równania ruchu dla układu z ograniczeniami fazowymi (2.1)
bez mnożników Lagrange’a
GT (q)Q(q)G(q)η̇ + GT (q)(Q(q)Ġ(q) + C(q, q̇)G(q))η + GT (q)D(q) = GT (q)Bu,
(2.24)
co można skrótowo zapisać w postaci
Q∗ (q)η̇ + C ∗ (q, q̇)η + D∗ (q) = B ∗ u.
(2.25)
W przypadku skonstruowanej platformy mobilnej kolejne macierze maja˛ nast˛epujac
˛ a˛ postać[10]:

Q∗ (q) = 

Mt +
Ip
2
(L
2)
Mt −
∗
Mt −
+ 4Mk
Ip
2
(L
2)
B =
"
Mt +
2
R
0
0
2
R
Ip
2
(L
2)
Ip
2
(L
2)
+ 4Mk


,
(2.26)
#
,
(2.27)
gdzie
Mk – masa koła,
Mt – całkowita masa platformy z kołami,
Ip – całkowity moment bezwładności platformy wzgl˛edem osi OZ jej lokalnego układu
współrz˛ednych,
L – szerokość platformy,
R – promień koła.
Macierze C(q, q̇) i D(q) maja˛ wszystkie elementy zerowe.
2.3. Sterownik kinematyczny Lee, Lee i Tenga
2.3
9
Sterownik kinematyczny Lee, Lee i Tenga
Rozważmy równanie wyprowadzone w punkcie 2.1 kinematyki platformy jezdnej klasy (2,0):




ẋ
cosθ · v

 

 ẏ  =  sinθ · v  ,
ω
θ̇
v
ω
!
=
η1 + η2
2
L (η1 − η2 )
!
,
(2.28)
gdzie (x, y) jest wektorem współrz˛ednych kartezjańskich środka osi, na której umieszczone
sa˛ koła robota, natomiast θ jest jej orientacja˛ wzgl˛edem osi OX lokalnego układu odniesienia
(rysunek 2.1). Zadaniem platformy jest śledzenie pewnej trajektorii. Trajektoria zadana musi
spełniać warunki ograniczeń nieholonomicznych nałożonych na układ (brak poślizgów i buksowania kół).
Pr˛edkości vd i ωd sa˛ to pr˛edkości jakie musi mieć pojazd, aby realizować zadana˛ trajektori˛e (xd (t), yd (t), ωd (t)). W celu przedstawienia algorytmu sterowania kinematyka˛ zdefiniujmy
bł˛edy śledzenia trajektorii w taki sposób







ex
cosθ sinθ 0
xd − x
xe

 




 ye  = Rot(Z, −θ)  ey  =  −sinθ cosθ 0   yd − y  .
eθ
0
0
1
θd − θ
θe
(2.29)
Algorytm Lee, Lee i Tenga zapewnia asymptotyczna˛ zbieżność bł˛edów odniesienia xe , ye , θe do
zera.
Sterowanie vr , ωr zapewniajace
˛ zbieżność bł˛edów odniesienia do zera[10] przedstawiono
na poniższych równaniach:
vr = k0 xe + vd cosθe ,
(2.30)
ωr = 1 +
εye
β
+ k1 (θe +
),
α
a+Λ
(2.31)
gdzie
β=ε
ḣye −hωd xe +hvd sinθe
hye
2
− (1+Λ)
2 Λ (ye vd sinθe − k0 xe )
1+Λ
εhθe ye
e
α = a + εhx
− (1+Λ)
2Λ
q 1+Λ
2
2
2
Λ = θe + xe + ye ,
(2.32)
1
gdzie k0 , k1 > 0, h(t) = 1+γcos(t−t0 ), 0 < γ < 1, oraz 0 < ε < 2(1+γ)
. Działanie algorytmu
zależy od dobranych parametrów. Warto wspomnieć, że wybór parametrów zależy od rodzaju
trajektorii zadanej.
Pr˛edkości referencyjne niezb˛edne do działania sterownika dynamicznego (punkt 2.4) uzyskujemy korzystajac
˛ z przekształcenia
η1ref = 21 (v + Lω)
η2ref = 12 (v − Lω).
(2.33)
10
2.4
2. Kinematyka i dynamika platformy mobilnej klasy (2,0)
Sterownik dynamiczny - algorytm dokładnej linearyzacji
Do obiektu robotycznego (2.25) dołaczamy
˛
sterowanie postaci[10]
u = (B ∗ )−1 {Q∗ ω + C ∗ η},
(2.34)
gdzie ω jest wektorem nowych wejść do układu zlinearyzowanego. Wówczas równanie zamkni˛etej p˛etli układu (2.25) ze sterowaniem (2.34) jest nast˛epujace
˛
η̇ = ω.
(2.35)
Aby zapewnić śledzenie trajektorii w powyższym układzie liniowym wybierzmy nast˛epujace
˛
sterowanie
ω = η̇r − Km (η − ηr ),
(2.36)
przy czym macierz Km jest diagonalna i dodatnio określona.
2.5
Wyznaczanie drogi na podstawie przyspieszeń
Pr˛edkość jest zmiana˛ położenia w czasie, natomiast przyspieszenie określa szybkość zmiany
pr˛edkości. Innymi słowy pr˛edkość jest pochodna˛ położenia a przyspieszenie jest pochodna˛
pr˛edkości. Zachodzi także relacja odwrotna. Całkujac
˛ przyspieszenie otrzymujemy pr˛edkość
oraz analogicznie otrzymujemy położenie po scałkowaniu pr˛edkości. Podsumowujac,
˛ położenie otrzymujemy po dwukrotnym scałkowaniu wartości przyspieszenia[12]
V =
Zt
a dt,
(2.37)
0
s=
Zt
V dt =
0
Zt Zt
( a dt)dt.
0
(2.38)
0
Przedstawiona zależność jest prawdziwa dla układów ciagłych.
˛
W układach dyskretnych jakimi sa˛ niewatpliwie
˛
systemy mikroprocesorowe pomiary dokonywane sa˛ w odst˛epach czasu
(najcz˛eściej stałych). Im cz˛eściej próbkujemy sygnał, tym dokładniejszy mamy obraz sygnału
wejściowego. W przypadku dyskretyzacji całkowania równanie (2.38) staje si˛e suma˛ pobranych
próbek sygnału (ponieważ całka jest interpretowana jako pole pod krzywa)
˛
s=
n
X
i=1
Vi ∆t =
n X
i
X
(
ak ∆t)∆t,
(2.39)
i=1 k=1
gdzie ∆t - okres próbkowania, Vi - wartość pr˛edkości po i próbkach, ak - k-ta próbka wartości przyspieszenia. Ilustracj˛e równania (2.39) przedstawia rysunek 2.2.
Wspomniany sposób całkowania nazywany jest całkowaniem metoda˛ prostokatów.
˛
Jest to
najprostszy sposób numerycznego wyznaczania całki z funkcji (rysunek 2.3). Najwi˛eksza˛ wada˛ tej metody jest spora niedokładność obliczanej sumy ze wzgl˛edu na dyskretny charakter
dokonywanych pomiarów. Bład
˛ całkowania wzrasta wraz ze zwi˛ekszaniem si˛e cz˛estotliwości
badanego sygnału. Ilustracj˛e problemu przedstawia rysunek 2.4. Warto zwrócić uwag˛e, że przy
sygnale narastajacym
˛
metoda prostokatów
˛
generuje zawsze niższa˛ sum˛e niż sygnał rzeczywisty, natomiast przy sygnale opadajacym
˛
suma jest nieco wi˛eksza od badanego sygnału (rysunek
2.5. Wyznaczanie drogi na podstawie przyspieszeń
11
Rysunek 2.2 Otrzymywanie drogi na podstawie przyspieszeń.
Rysunek 2.3 Całkowanie metoda˛ prostokatów.
˛
2.3), co prowadzi do wniosku, że poruszajac
˛ si˛e z pewnym przyspieszeniem a w czasie t, a nast˛epnie z przyspieszeniem −a w takim samym czasie nie powrócimy do punktu startowego.
Jednym z najprostszych sposobów minimalizacji bł˛edów całkowania jest zastosowanie metody trapezów (rysunek 2.5).
Nazwa metody pochodzi od reprezentacji kolejnych próbek w postaci trapezów prostokat˛
nych (rysunek 2.5). Każda próbka sygnału dzielona jest na dwie cz˛eści. Jedna z nich jest prostokatem,
˛
który mieści si˛e całkowicie pod krzywa.˛ Kolejna jest trójkatem
˛
powstałym przez
podzielenie pozostałej cz˛eści prostokata
˛ na dwa równe trójkaty.
˛ Z powstałych cz˛eści składany
jest trapez. Pole powierzchni n-tej próbki przedstawia zależność (2.40) zgodnie z rysunkiem
2.5.
!
P robkan − P robkan−1
P olen = P robkan−1 +
T,
2
gdzie T oznacza czas pomi˛edzy kolejnymi próbkowaniami.
(2.40)
12
2. Kinematyka i dynamika platformy mobilnej klasy (2,0)
Rysunek 2.4 Bład
˛ całkowania metoda˛ prostokatów.
˛
Rysunek 2.5 Całkowanie metoda˛ trapezów.
2.6
Wyznaczanie pr˛edkości obrotowej na podstawie
przyspieszeń
Metoda opiera si˛e na zjawisku przyspieszenia odśrodkowego. Jest ono zależne od wartości pr˛edkości katowej
˛
oraz promienia krzywizny po jakiej porusza si˛e obiekt (2.41)
a=
ω2
.
r
(2.41)
Przekształcajac
˛ równanie (2.41) otrzymujemy zależność modułu pr˛edkości obrotowej od wartości przyspieszenia odśrodkowego
√
|ω| = ar.
(2.42)
Ponieważ w skonstruowanym robocie oś Y akcelerometru pokrywa si˛e z osia˛ symetrii platformy (rysunek 2.6) możliwe jest bezpośrednie odczytanie przyspieszenia odśrodkowego a = ay .
Aby otrzymać kierunek obracania si˛e robota należy odczytać znak przyspieszenia z osi prostopadłej, a dokładniej znak pr˛edkości liniowej po okr˛egu (scałkowana wartość przyspieszenia
(punkt 2.5). Dodatnia pr˛edkość liniowa w kierunku osi x akcelerometru jest równoważna z dodatnia˛ pr˛edkościa˛ obrotowa.˛
Orientacj˛e platformy uzyskujemy dzi˛eki scałkowaniu wartości pr˛edkości obrotowej
θ=
Z t
0
ωdt.
(2.43)
2.7. Zjawisko aliasingu
13
Rysunek 2.6 Położenie akcelerometru w skonstruowanej platformie mobilnej.
2.7
Zjawisko aliasingu
Z przetwarzaniem sygnału analogowego na cyfrowy wia˛że si˛e poj˛ecie dyskretyzacji. Polega
ono na wykonywaniu pomiarów badanego sygnału w określonych odst˛epach czasu, ograniczonych z góry maksymalna˛ cz˛estotliwościa˛ pracy przetwornika. W technice mikroprocesorowej
wia˛że si˛e to ze zamiana˛ sygnału napi˛ecia na reprezentacj˛e liczbowa˛ zgodna˛ z rozdzielczościa˛ zastosowanego przetwornika. Ze wzgl˛edu na dyskretny charakter wykonywanych pomiarów nie
wiadomo jak wyglada
˛ przebieg sygnału pomi˛edzy dokonanymi próbkowaniami. Aby sygnał
cyfrowy prawidłowo odwzorowywał sygnał analogowy niezb˛edna jest wiedza na temat widma cz˛estotliwościowego sygnału analogowego. Bez niej wykonane pomiary moga˛ dać bł˛edne
wyniki, co ilustruje rysunek 2.7. Zbyt mała cz˛estotliwość pomiarów źle odwzorowuje badany
sygnał - jest to zjawisko aliasingu.
Rysunek 2.7 Zjawisko aliasingu.
Aby zapobiec bł˛ednej interpretacji badanego sygnału niezb˛edne jest próbkowanie co najmniej z odpowiednia˛ cz˛estotliwościa˛ minimalna.˛ Zgodnie z twierdzeniem Shannona−N yquista
cz˛estotliwość próbkowania sygnału musi być wi˛eksza niż dwukrotność cz˛estotliwości badanego sygnału. Oczywiście im krótsze sa˛ odst˛epy próbkowania tym lepiej odwzorowany zostanie
sygnał rzeczywisty.
Jeśli nie posiadamy wiedzy o szerokości pasma sygnału analogowego lub nie możemy osia˛
gnać
˛ minimalnej cz˛estotliwości próbkowania niezb˛edne jest zastosowanie analogowego filtru
dolnoprzepustowego, tak aby cz˛estotliwość odci˛ecia sygnału była co najmniej dwa razy mniejsza od cz˛estotliwości próbkowania z jaka˛ zamierzamy badać sygnał.
Rozdział 3
Pakiety do wyszukiwania znaczników
w obrazie wideo
3.1
Przeglad
˛ narz˛edzi do wyszukiwania znaczników
ARToolKit plus jest narz˛edziem stworzonym do wyznaczania pozycji i orientacji kamery wzgl˛e-
dem znaczników w czasie rzeczywistym. Narz˛edzie jest rozszerzeniem pakietu zastosowanego
w niniejszej pracy magisterskiej. Oprogramowanie jest dedykowane dla doświadczonych programistów C++, wcześniej korzystajacych
˛
z ARToolKit. Pakiet oprogramowania przestał być
rozwijany w 2006, mimo to jest nadal udost˛epniany. Wykorzystuje znaczniki, które potrafi znaleźć w obrazie wideo oraz określić ich pozycje i orientacj˛e.
Nast˛epca˛ pakietu ARToolKit plus jest Studierstube Tracker. Jest pakietem oprogramowania
bardzo podobnym do ARToolKit plus, jednak o znaczaco
˛ różniacym
˛
si˛e kodzie źródłowym. Narz˛edzie charakteryzuje si˛e bardzo niskim wykorzystaniem pami˛eci oraz bardzo szybkim przetwarzaniem obrazu (około 2 razy szybszy od ARToolKit plus). Kolejna˛ cecha˛ jest duża stabilność
położenia znacznika oraz dynamicznie dobierany próg jasności. W przypadku pakietu ARToolKit
próg jasności jest dobierany r˛ecznie przez użytkownika. Podobnie jak ARToolKit pakiet oprogramowania opiera si˛e na wyszukiwaniu znaczników w obrazie. Narz˛edzie posiada zamkni˛ety
kod oprogramowania.
Ostatnim przedstawianym pakietem oprogramowania do wyszukiwania znaczników w obrazie wideo jest ARToolKit professional. Jest to obecnie najpopularniejsze narz˛edzie stosowane
w aplikacjach wirtualnej rzeczywistości. Narz˛edzie jest rozwijane od 10 lat. Jest udost˛epniane jedynie odpłatnie. Pakiet podobnie jak ARToolKit potrafi wyszukiwać dowolnie definiowane znaczniki w kształcie kwadratu. Oprogramowanie cechuje si˛e bardzo wysoka˛ dokładnościa˛
i stabilnościa˛ wyszukiwania znacznika.
Rysunek 3.1 Sposób działania wirtualnego muzeum.
16
3. Pakiety do wyszukiwania znaczników w obrazie wideo
Ciekawym przykładem zastosowania wspomnianych pakietów oprogramowania jest wirtualne muzeum. W pomieszczeniu zamiast obrazów, lub innych eksponatów umieszczono na
ścianach znaczniki rozpoznawane przez ARToolKit. Odpowiednie oprogramowanie pozwala na
rozpoznawanie znacznika w telefonie komórkowym, nast˛epnie telefon komunikuje si˛e z komputerem w celu otrzymania zdj˛ecia, które powinno być wyświetlone zamiast znacznika (rysunek
3.1).
3.2
ARToolKit
ARToolKit jest wysokopoziomowa˛ biblioteka˛ wykorzystywana˛ do rozpoznawania i śledzenie
obiektów za pomoca˛ kamery. Główna˛ zasada˛ działania biblioteki jest wyszukiwanie wzorca
umieszczonego w kwadracie. Przykładowy wzorzec przedstawia rysunek 3.2. Wzorce moga˛
Rysunek 3.2 Przykładowy wzorzec rozpoznawany przez ARToolKit.
być dowolne i wielokolorowe. Ważne jest aby były umieszczone w kwadracie z czarna˛ obwódka˛ (jak na rysunku 3.2). Do stworzenia wzorca służy specjalnie w tym celu napisana aplikacja,
która jest dostarczana razem z biblioteka.˛ Biblioteka działa na wielu platformach systemowych
(Linux, Windows, MAC OS X, SGI). ARToolKit umożliwia śledzenie kilku znaczników jednocześnie, oraz współprac˛e z wieloma rodzajami kamer wideo. Wykorzystuje m.in. OpenGL
oraz bibliotek˛e GLUT (rysunek 3.3). Działa w czasie rzeczywistym. Przeci˛etny komputer jest
w stanie przetworzyć 10 ramek na sekund˛e przy rozmiarze wideo 960x720 pikseli.
Algorytm wykrywania wzorca przedstawia rysunek 3.4. Pierwszym etapem przetwarzania
wideo jest progowanie jasności obrazu, czyli dzielenie pikseli na jaśniejsze i ciemniejsze od zadanego progu. Dzi˛eki temu otrzymujemy obraz binarny którego rozmiar, a co za tym idzie szybkość obliczeń, jest znacznie mniejszy. Nast˛epnie obraz binarny jest porównywany ze wzorcem
w celu odnalezienia znacznika. Kolejnym krokiem jest wyszukiwanie konturów, czyli granic
znaczników oraz zapisanie wzorów na proste przechodzace
˛ przez te linie w strukturze danych
opisujacych
˛
znacznik. Po wykryciu narożników znacznika jest on porównywany ze wzorcem
umieszczonym w pliku. Nast˛epuje normalizacja, ponieważ wzorzec może być ustawiony pod
różnym katem
˛
do kamery. Warto zwrócić uwag˛e, że biblioteka wykorzystuje prawdopodobieństwo do określania czy wykryta figura jest znacznikiem. Za znacznik uznawany jest kontur,
który ma najwyższe prawdopodobieństwo bycia znacznikiem. Końcowym efektem przetwarza-
3.2. ARToolKit
17
Rysunek 3.3 Architektura biblioteki ARToolKit.
nia jest macierz transformacji pomi˛edzy układem współrz˛ednych kamery i znacznika

"
R T
0 1
#



=
cosϕcosυ cosϕsinυsinψ − sinϕcosψ cosϕsinυcosψ + sinϕsinψ
sinϕcosυ sinϕsinυsinψ + cosϕcosψ sinϕsinυcosψ − cosϕsinψ
−sinυ
cosυsinψ
cosυcosψ
0
0
0
x
y
z
1



,

(3.1)
gdzie
R – cz˛eść rotacyjna,
T – cz˛eść translacyjna,
ϕ – kat
˛ obrotu wokół osi Z,
υ – kat
˛ obrotu wokół osi Y ,
ψ – kat
˛ obrotu wokół osi X,
x – translacja wzdłuż osi X,
y – translacja wzdłuż osi Y ,
z – translacja wzdłuż osi Z.
W celu wyznaczenia położenia i orientacji platformy mobilnej wzgl˛edem płaszczyzny po jakiej si˛e porusza niezb˛edna jest zamiana układu współrz˛ednych odniesienia. Poczatkowo
˛
należy
wyznaczyć nowy układ współrz˛ednych poprzez ustawienie robota w dowolnej pozycji oraz
obliczenie macierzy transformacji pomi˛edzy kamera˛ i znacznikiem znajdujacym
˛
si˛e na robocie. Nast˛epnie należy wyliczyć macierz odwrotna,˛ tzn. transformacj˛e z układu współrz˛ednych
znacznika do układu współrz˛ednych kamery. Aby otrzymać położenie znacznika wzgl˛edem
nowego układu współrz˛ednych należy pomnożyć macierz przejścia z nowego układy współrz˛ednych do układu kamery przez transformacj˛e z układu kamery do układu znacznika (robota). Wynikowa macierz jest macierza˛ transformacji z nowego układu współrz˛ednych do układu
znacznika (robota).
Ponieważ w macierzy obrotu nie ma jawnie wyznaczonego kata
˛ obrotu wokół osi Z należy
skorzystać z 1 i 2 wiersza pierwszej kolumny cz˛eści obrotowej (3.1)
r21
sinϕcosυ
ϕ = arctg
= arctg
r11
cosϕcosυ
!
!
sinϕ
= arctg
= arctg(tg(ϕ)).
cosϕ
(3.2)
18
3. Pakiety do wyszukiwania znaczników w obrazie wideo
Rysunek 3.4 Algorytm wyszukiwania wzorca.
Rozdział 4
Platforma mobilna
4.1
Ogólna charakterystyka
Skonstruowana platforma jest robotem mobilnym klasy (2,0). Posiada dwa niezależnie nap˛edzane koła. Nie jest wyposażona w koła skr˛etne, mimo to potrafi poruszać si˛e w każdym kierunku
na płaszczyźnie.
Rysunek 4.1 Schemat blokowy zbudowanej platformy mobilnej.
Oprócz dwóch kół zamontowano także trzeci punkt podparcia (kula), który potrafi poruszać
si˛e w każdym kierunku. Robot został wyposażony w dwa enkodery magnetyczne (punkt 4.2.1),
dzi˛eki którym możliwy jest pomiar położenia (po odpowiednich obliczeniach, także pr˛edkości
20
4. Platforma mobilna
obrotowej) kół. Dodatkowymi czujnikami sa˛ akcelerometr analogowy trzyosiowy oraz żyroskop. Robot komunikuje si˛e z komputerem poprzez moduł Bluetooth.
Główne cechy robota:
• robot klasy (2,0),
• dwa mikrokontrolery: AT91SAM7S256 oraz MC68HCS12a64,
• bezprzewodowa komunikacja Bluetooth,
• bateria (Li-Pol) 2200mAh,
• czujniki: enkodery magnetyczne, żyroskop, akcelerometr,
• pr˛edkość maksymalna ok 18cm/s.
Robot został wyposażony w dwa mikrokontrolery: ARM7 (punkt 4.5) firmy Atmel oraz HC12
(punkt 4.4) firmy Freescale. Mikrokontroler HC12 zajmuje si˛e sterowaniem pr˛edkościa˛ obrotowa˛ kół. Został na nim zaimplementowany regulator PID. Informacj˛e o nastawach otrzymuje
poprzez interface SPI. Sterownikiem nadrz˛ednym jest ARM7. Zajmuje si˛e on zbieraniem danych z czujników, obliczaniem aktualnej pozycji, generowaniem trajektorii, sterowaniem oraz
komunikacja˛ z komputerem. Wszystkie obliczenia wykonywane sa˛ z cz˛estotliwościa˛ 100Hz.
4.2
4.2.1
Czujniki
Enkoder magnetyczny AS5045
Zastosowany enkoder magnetyczny[5] został wyprodukowany przez firm˛e Austria Microsystems. Jego zasada działania opiera si˛e na pomiarze nat˛eżenia pola magnetycznego tworzonego
przez znajdujacy
˛ si˛e w pobliżu magnes (rysunek 4.2). Domyślnie czujnik pracuje z rozdzielczościa˛ 12 bitów, dzi˛eki czemu czułość pomiaru wynosi 0, 0879o . Możliwe sa˛ także 3 inne
rozdzielczości: 1024, 256 oraz 64 bity. Maksymalna pr˛edkość obrotowa przy najmniejszej dokładności pomiaru jest bliska 10000 obr/min.
Rysunek 4.2 Typowe umieszczenie magnesu.
Odczyt danych z czujnika możliwy jest poprzez interface SSI (Synchronous Serial Interface). Dodatkowo enkoder został wyposażony w wyjście PWM o stałej cz˛estotliwości i wypełnieniu zależnym od pozycji magnesu. Układ może pracować w dwóch standardach napi˛eciowych:
5V lub 3,3V.
4.2. Czujniki
21
Rysunek 4.3 Rozmieszczenie pinów enkodera AS5045.
Opis wyprowadzeń przedstawiono w tabeli 4.1. Komunikacja za pomoca˛ interfejsu SSI wyNumer
1
2
6
7
8
9
10
11
12
15
16
Nazwa
MagINCn
MagDECn
Mode
VSS
Prog_DI
DO
CLK
CSn
PWM
VDD3V3
VDD5V
Opis
Określa czy magnes si˛e oddalił
Określa czy magnes si˛e zbliżył
Wybór pomi˛edzy szybkim i wolnym trybem pomiaru
Masa
Wejście programowania
Wyjście danych interfejsu SSI
Wejście zegarowe interfejsu SSI
Chip Select
Wyjście sygnału PWM
Wyjście 3,3V z wew. regulatora
Wejście zasilania od 3V do 5,5V
Tabela. 4.1 Opis wyprowadzeń enkodera magnetycznego AS5045.
maga każdorazowo wysłania 18 bitów (rysunek 4.4). Pierwsze 12 bitów oznacza pozycj˛e magnesu. Pozostałe 6 bitów sa˛ bitami kontrolnymi kolejno oznaczajacymi:
˛
• OCF – jedynka oznacza zakończony pomiar - dane poprawne,
• COF – jedynka oznacza, że magnes jest zbyt daleko czujnika, 0 - dane poprawne,
• LIN – 0 oznacza, że dane sa˛ prawidłowe,
• MagINC/MagDEC – odpowiednio: oddalenie lub zbliżenie si˛e magnesu,
• Even Par – bit parzystości.
Maksymalna cz˛estotliwość komunikacji wynosi 1 MHz. W trybie szybkim (pin mode niepodłaczony
˛
lub w stanie wysokim) czas konwersji wynosi 96µs, co daje możliwość pomiaru pr˛edkości obrotowej do 153 obr/min przy maksymalnej rozdzielczości.
22
4. Platforma mobilna
Rysunek 4.4 Komunikacja z enkoderem magnetycznym AS5045.
4.2.2
Akcelerometr MMA7260
Trójosiowy akcelerometr firmy Freescale[7] jest analogowym czujnikiem przyspieszenia. Posiada 4 programowalne czułości w zakresach od 1.5g do 6g. Mierzy przyspieszenie w trzech
osiach. Gdy na danej osi przyspieszenie ma wartość zerowa˛ na odpowiednim dla tej osi pinie
powinno być napi˛ecie równe połowie napi˛ecia zasilania. Opis uzyskiwania pr˛edkości liniowej
i obrotowej znajduje si˛e w punktach 2.5 oraz 2.6.
Cechy akcelerometru:
• Pomiar przyspieszenia w trzech osiach,
• Wyjścia analogowe,
• 4 zakresy pracy: 1,5g / 2g / 4g / 6g,
• Niski pobór pradu:
˛ 0,5 mA oraz 3µA w stanie uspienia,
• Napi˛ecie pracy od 2,2V do 3,6V,
• Wymiary 6mm x 6mm x 1,45mm, obudowa QFN,
• Pasmo sygnału ograniczone do 11kHz przez wew. filtr dolnoprzepustowy.
Rysunek 4.5 Rozmieszczenie pinów akcelerometru MMA7260.
Cz˛estotliwość próbkowania sygnału na wyjściach analogowych akceleromteru powinna być
tak dobrana aby nieinterferowała z cz˛estotliwościa˛ 11kHz. Jest to wewn˛etrzna cz˛estotliwość
próbkowania układu. Nieodpowiednio dobrana cz˛estotliwość może spowodować zjawisko aliasingu (punkt 2.7).
4.2. Czujniki
23
Numer
1,2
Nazwa
g-Select1/2
3
4
12
13
14
15
VDD
VSS
Sleep Mode
Zout
Yout
Zout
Opis
Ustawianie czułości akcelerometru
0,0: 1.5g - 800mV/g
0,1: 2g - 600mV/g
1,0: 4g - 300mV/g
1,1: 6g - 200mV/g
Zasilanie 3,3V
Masa
Stan niski aktywuje uśpienie czujnika
Wyjście napi˛eciowe osi Z
Wyjście napi˛eciowe osi Y
Wyjście napi˛eciowe osi X
Tabela. 4.2 Opis wyprowadzeń akcelerometru MMA7260.
4.2.3
Żyroskop ADIS16100
Żyroskop jest urzadzeniem
˛
mierzacym
˛
pr˛edkość obrotowa.˛ Model ADIS16100 firmy Analog
Devices dokonuje pomiaru w jednej osi.
Głównymi cechami układu sa[2]:
˛
• wbudowany 12 bitowy przetwornik A/C (1MSPS),
• wewn˛etrzny czujnik temperatury,
• zakres pomiarów ±300o /s,
• osobne źródło zasilania dla cz˛eści analogowej (5V) i cyfrowej (od 3V do 5V),
• wymiary 8,2mm x 8,2mm x 5,2mm, obudowa LGA,
• komunikacja poprzez interfejs SPI,
• dwa dodatkowe wejścia do przetwornika A/C.
Rysunek 4.6 Rozmieszczenie pinów w żyroskopie ADIS16100.
Opis wyprowadzeń przedstawia tabela 4.3. Układ posiada wewn˛etrzny dolnoprzepustowy
24
4. Platforma mobilna
Numer
1
2
3
5
6
7
8,9
10
11
12,13
14
Nazwa
DIN
SCLK
DOUT
RATE
FILTR
Vdrive
AIN1/2
COM
Vref
ST2/1
Vcc
Opis
Wejście magistrali SPI (MOSI)
Linia zegarowa magistrali SPI
Wyjście danych magistrali SPI (MISO)
Sygnał reprezentujacy
˛ pr˛edkość katow
˛ a˛
Wejście zewn˛etrznego kondensatora filtrujacego
˛
Zasilanie cz˛eści cyfrowej
Zewn˛etrzne wejścia przetwornika A/C
masa
Wyjście napi˛ecia referencyjnego - 2,5V
Wejścia testowe
Zasilanie toru analogowego
Tabela. 4.3 Opis wyprowadzeń żyroskopu ADIS16100.
filtr RC. Fabryczna cz˛estotliwość odci˛ecia wynosi 40Hz. Istnieje możliwość zmiany tej cz˛estotliwości dzi˛eki dołaczeniu
˛
dodatkowego rezystora i kondensatora pomi˛edzy pinami RATE
i FILTR. Poniższa zależność przedstawia wzór na wyznaczenie cz˛estotliwości z dołaczonym
˛
kondensatorem
1
fout =
.
(4.1)
2πRout (Cext + 0, 022µF )
gdzie Rout - wewn˛etrzny rezystor o wartości 180kΩ, Cext - zewn˛etrzny kondensator. Rezystancj˛e Rout można zmienić dołaczaj
˛
ac
˛ dodatkowy rezystor. Wtedy Rout wyznaczamy nast˛epujaco:
˛
Rout =
180kΩRext
,
180kΩ + Rext
(4.2)
gdzie Rext oznacza wartość dołaczonego
˛
rezystora.
Komunikacja z żyroskopem odbywa si˛e poprzez magistral˛e SPI. Każda ramka zawiera 16
bitów. Każdorazowo należy wysłać pełna˛ ramk˛e. W przeciwnym przypadku układ nie zakończy
konwersji danych i nie zostana˛ one wysłane podczas nast˛epnego transferu. W czasie każdej
komunikacji żyroskop odbiera dane, które określaja˛ z jakiego kanału przetwornika A/C należy
dokonać pomiaru. Dane wysyłane zawieraja˛ wynik ostatniego pomiar oraz poprzednio wybrany
kanał przetwornika (rysunek 4.7).
Rysunek 4.7 Ramka komunikacji z żyroskopem ADIS16100.
Opis kolejnych bitów nadawczych przedstawia tabela 4.4.
4.3. Filtr analogowy dolnoprzepustowy MAX7400
Nr bitu
15
13,12,7,6,3:0
11,10
4
Nazwa
Write
D/C
ADD1, ADD0
CODE
25
Opis
1 - zapis komendy do pami˛eci wew.
0 - komenda nie ważna
Nie ma znaczenia
wybór kanału przetwornika
00: pr˛edkość obrotowa żyroskopu
01: czujnik temperatury
10/11: analogowe wejścia zewn˛etrzne 1 i 2
format danych wyjściowych
0: dane w kodzie uzupełnień do 2 (ze znakiem)
1: dane w kodzie binarnym bez znaku
Tabela. 4.4 Opis bitów wysyłanych do żyroskopu ADIS16100.
4.3
Filtr analogowy dolnoprzepustowy MAX7400
MAX7400 jest układem filtrujacym
˛
sygnał napi˛eciowy. Jest filtrem analogowym, dolnoprzepustowym o charakterystyce eliptycznej. Wyprodukowany został przez firm˛e Maxim. Najważniejsze cechy[9]:
• filtr dolnoprzepustowy 8-biegunowy,
• regulowana cz˛estotliwość odci˛ecia od 1Hz do 10kHz,
• tłumienie w paśmie zaporowym - 82dB,
• niski pobór pradu
˛ - 2mA,
• napi˛ecie zasilania 5V (dost˛epne także wersje 3,3V).
Filtr charakteryzuje si˛e bardzo stromym przejściem od pasma przenoszenia do pasma zaporowego (rysunek 4.8) (r=1.5) oraz bardzo dużym współczynnikiem tłumienia cz˛estotliwości
w paśmie zaporowym (-82dB).
Rysunek 4.8 Odpowiedź cz˛estotliwościowa filtru MAX7400.
26
4. Platforma mobilna
Układ został wykorzystany do filtracji sygnału pochodzacego
˛
z akcelereometru (rozdział
4.2.2). Dzi˛eki temu możliwe jest próbkowanie z cz˛estotliwościa˛ 100Hz, która jest dużo mniejsza od granicy pasma sygnału pochodzacego
˛
z akcelerometru, co zapobiega zjawisku aliasingu
(rozdział 2.7).
Cz˛estotliwość odci˛ecia fc można ustalić na dwa sposoby. Pierwszym jest dołaczenie
˛
do pinu
CLK kondensatora o pojemności dobranej według równania
K · 103
[Hz],
fc =
Cext · 100
(4.3)
h
i
gdzie Cext [pF ] jest pojemnościa˛ dołaczonego
˛
kondensatora, K = 38 pF
- stała zależna
s
od rodzaju filtru. Drugim sposobem ustalenia cz˛estotliwości odci˛ecia fc jest doprowadzenie
do pinu CLK sygnału zegarowego, którego wypełnienie zawiera si˛e w przedziale zamkni˛etym
pomi˛edzy 40% i 60%. Cz˛estotliwość odci˛ecia jest wtedy dana wzorem
fc =
fosc
,
100
(4.4)
gdzie fosc jest cz˛estotliwościa˛ doprowadzonego sygnału zegarowego.
4.4
Sterownik serwomechanizmów MC9S12A64
Mikrokontrolerem sterujacym
˛
pr˛edkościa˛ obrotowa˛ serw jest układ MC9S12a64[6] firmy Freescale. Mikrokontrolery z rodziny HC12 zostały wyposażone w bardzo wydajna,˛ 16-bitowa˛ jednostk˛e centralna˛ (CPU12). Ważna˛ zaleta˛ CPU12 jest wbudowany emulator z interfejsem BDM
(Background Debug Mode). Interfejs pozwala na programowanie i debugowanie oprogramowania bezpośrednio na mikrokontrolerze. Schemat blokowy mikrokontrolera przedstawiono na
rysunku 4.9.
Główne cechy mikrokontrolera MC9S12a64
• 16 bitowa jednostka centralna CPU12,
• szybkość procesora do 50MHz,
• interfejs BDM,
• wbudowane instrukcje Fuzzy Logic,
• 64 kB wbudowanej pami˛eci FLASH,
• 4 kB wbudowanej pami˛eci RAM,
• 1024 bajty wbudowanej pami˛eci EEPROM,
• 8-kanałowy, 10-bitowy przetwornik A/C,
• 16-bitowy system timerów,
• 16 bitowy akumulator impulsów,
• 7-kanałowy modulator PWM,
• interfejsy komunikacyjne: dwa SCI, SPI, I2 C, CAN,
4.4. Sterownik serwomechanizmów MC9S12A64
Rysunek 4.9 Schemat blokowy mikrokontrolera MC9S12a64.
• obudowa QFP80,
• napi˛ecie zasilania 3,3V – 5,5V,
• wewn˛etrzny stabilizator napi˛ecia 2,5V.
27
28
4. Platforma mobilna
4.5
Sterownik główny AT91SAM7S256
Sterownikiem głównym skonstruowanej platformy mobilnej jest mikrokontroler
AT91SAM7S256[4] firmy Atmel z bardzo wydajnym rdzeniem ARM7TDMI. Mikrokontrolery
oparte na rdzeniu ARM uzyskuja˛ coraz wi˛eksza˛ popularność, ze wzgl˛edu na ich wysoka˛ moc
obliczeniowa˛ przy stosunkowo energooszcz˛ednej architekturze. W kolejnych rdzeniach ARM
uzyskano wydajność pozwalajac
˛ a˛ bezproblemowo uruchamiać nawet systemy operacyjne. Zdecydowano si˛e zastosować mikrokontroler z rdzeniem ARM7TDMI ze wzgl˛edu na jego popularność, dost˛epność oraz przyst˛epna˛ cen˛e. Mikrokontroler jest zbudowany zgodnie z architektura˛
von Neumanna, co oznacz, że ma wspólna˛ magistral˛e dla danych i rozkazów. Mikrokontroler
z rdzeniem ARM7 znajduje si˛e w osobnym module (rysunek 4.10), który zapewnia stabilizacj˛e
napi˛ecia, odpowiednia˛ p˛etl˛e PLL zapewniajac
˛ a˛ prac˛e z cz˛estotliwościa˛ 48MHz oraz zawiera
złacze
˛ JTAG MULTI_ICE służace
˛ do programowania i debugowania.
Rysunek 4.10 Moduł z mikrokontrolerem AT91SAM7s256.
Głównymi cechami charakteryzujacy
˛ mikrokontroler AT91SAM7S256 sa:
˛
• Bardzo wydajna 32-bitowa architektura RISC,
• Wbudowany emulator EmbeddedICE - debugowanie, interfejs JTag,
• 256 kB pami˛eci flash,
• 64 kB pami˛eci RAM,
• wbudowany kontroler poboru mocy,
• Zaawansowany kontroler systemu przerwań - 8 poziomów przerwań,
• specjalna jednostka do debugowania z własnym interfejsem UART,
• 20-bitowy licznik generujacy
˛ przerwania cykliczne,
• wbudowany Real Time Clock,
• 11-kanałowy kontroler DMA,
• port USB,
• dwa kanały USART (UART), w tym jeden pełny,
• interfejs SPI 8/16 bitowy,
• interfejs TWI,
• wbudowany 10-bitowy przetwornik analogowo cyfrowy,
4.5. Sterownik główny AT91SAM7S256
• 4-kanałowy, 16-bitowy kontroler PWM,
• możliwość programowanie za pomoca˛ interfejsu Jtag i USB,
• napi˛ecie zasilania 3,3V,
• wi˛ekszość pinów cyfrowych akceptuje napi˛ecia do 5,5V,
• możliwość niezależnego ustawienia pinów w tryb MultiDrive (Open Drain),
• maksymalna cz˛estotliwość pracy - 55MHz,
• obudowa LQFP 64-pinowa.
Rysunek 4.11 Schemat blokowy mikrokontrolera AT91SAM7s256.
29
30
4.6
4. Platforma mobilna
Układ zasilania
Robot został wyposażony w zasilanie bateryjne. Na pokładzie znajduja˛ si˛e dwa połaczone
˛
szeregowo ogniwa Litowo-Polimerowe firmy KOKAM o pojemności 2200mAh i napi˛eciu znamionowym 7,4V. Ogniwa zostały umieszczone w robocie na stałe. Ładowanie możliwe jest dzi˛eki
złaczu
˛
ładowania . Aby naładować bateri˛e należy bezwzgl˛ednie wyłaczyć
˛
zasilanie. Wtedy nast˛epuje odci˛ecie baterii od pozostałej cz˛eści układu i prad
˛ ładowania płynie wyłacznie
˛
do ogniw
Li-Pol. Układ zasilania znajduje si˛e na płytce drukowanej razem ze sterownikiem serw. Schemat
układu zasilania przedstawia rysunek 4.12.
Rysunek 4.12 Schemat układu zasilania.
Układ zasilania posiada dwa stabilizatory napi˛ecia: 5V i 3,3V; których wydajność pradowa
˛
wynosi 800mA. Jest to około 4-krotność rzeczywistego poboru mocy przez wszystkie układy cyfrowe. Dzi˛eki dużemu zapasowi nie trzeba było stosować radiatorów zajmujacych
˛
wiele miejsca. Warto zwrócić uwag˛e na układ odci˛ecia zasilania[15]. Umieszczony wzmacniacz
operacyjny odcina prad
˛ cewki gdy napi˛ecie baterii spadnie poniżej 6V. Zapobiega to uszkodzeniom, na jakie sa˛ narażone ogniwa Li-Pol w przypadku zbyt dużego rozładowania. Dodatkowo
elektronika została wyposażona w bezpiecznik 3,15A, który zabezpiecza bateri˛e przed pradem
˛
zwarcia.
4.7
Komunikacja poprzez Bluetooth
Robot komunikuje si˛e z komputerem PC za pomoca˛ modułu Bluetooth BTM-112[11] (rysunek 4.13), przy wykorzystaniu warstwy protokołu RFCOMM[1]. Zapewnia ona przeźroczysta˛
(z punktu widzenia programisty) zamian˛e portu RS232 na komunikacj˛e poprzez Bluetooth. Po
wykryciu modułu na komputerze należy połaczyć
˛
si˛e z urzadzeniem
˛
i wpisać kod pin, który
zabezpiecza przed nieautoryzowanym dost˛epem do modułu Bluetooth. Po sparowaniu urzadzeń
˛
można przegladn
˛ ać
˛ usługi, które oferuje moduł. Jedyna˛ dost˛epna˛ jest SPP (Serial Port Profile).
4.7. Komunikacja poprzez Bluetooth
31
Wybierajac
˛ t˛e usług˛e na komputerze pojawi si˛e nowy wirtualny port RS232, przez który można
wysyłać dane bezprzewodowo z wykorzystaniem modułu Bluetooth.
Rysunek 4.13 Moduł Bluetooth BTM-112.
Główne cechy modułu Bluetooth BTM-112:
• klasa 2,0 - zasi˛eg 10m,
• napi˛ecie zasilania 3V – 3,6V,
• komunikacja poprzez interfejsy UART, USB, SPI oraz PCM,
• obsługa protokołu SPP (Serial Port Profile) wraz z komendami AT[1],
• fabryczne ustawienia pozwalajace
˛ uruchomić moduł bez żadnej konfiguracji.
Zastosowany moduł Bluetooth posiada kilka interfejsów komunikacyjnych. Każdy ma inne zastosowanie. Interfejs SPI może służyć do programowania pami˛eci flash modułu (aktualizacja
oprogramowania). Interfejs PCM służy do przesyłania sygnału dźwi˛ekowego. Dzi˛eki wykorzystaniu interfejsu UART można przesyłać dane wykorzystujac
˛ profil portu szeregowego. Interfejs UART posiada 4 linie: CTS, RTS, Tx oraz Dx. Dwie pierwsze służa˛ do sprz˛etowej kontroli
przepływu danych. Linia Tx jest linia˛ nadawcza˛ modułu a linia Rx odbiorcza.˛ Jeśli nie korzysta
si˛e z linii kontroli przepływu danych można je pozostawić niepodłaczone
˛
lub połaczyć
˛
ze soba.˛
Moduł korzystajac
˛ z interfejsu UART może pracować w dwóch trybach. Pierwszym jest tryb
komend. Jest aktywny gdy moduł nie jest połaczony
˛
z innym urzadzeniem.
˛
Istnieje wtedy możliwość ustawiania parametrów modułu za pomoca˛ komend AT w postaci znaków ASCI. Spis
niektórych komend przedstawia tabela 4.5.
Gdy moduł zostanie połaczony
˛
z zewn˛etrznym urzadzeniem
˛
zostanie wysłany komunikat
informujacy
˛ o tym fakcie poprzez interfejs UART. Analogicznie przy rozłaczeniu.
˛
Dane wysyłane przez moduł BTM-112 nie sa˛ przekazywane dalej natychmiastowo. Wysyłane sa˛ paczkami, dlatego czasami moga˛ pojawić si˛e opóźnienia w transmisji danych. Takie
zjawisko daje si˛e zauważyć, gdy znaczaco
˛ oddalimy moduł od urzadzenia,
˛
z którym jest poła˛
czony. Słaby sygnał powoduje bł˛edy w sumach kontrolnych przesyłanych danych i transmisja
jest powtarzana. Zauważone podczas pracy z modułem przerwy w transmisji danych si˛egały
nawet 1 sekundy.
Robot wysyła do komputera wszystkie pomiary oraz swoja˛ pozycj˛e i orientacj˛e. Dane wysyłane sa˛ cyklicznie co 10ms. Jedna paczka danych wysyłana przez platform˛e mobilna˛ zawiera
32 bajty danych uporzadkowanych
˛
nast˛epujaco:
˛
32
4. Platforma mobilna
Komenda
C
K
L
M
N
P
Z
Opis
Właczanie/wył
˛
aczanie
˛
kontroli przepływu danych (linie CTS/RTS)
C0 – Brak kontroli przepływu
C1 – kontrola właczona
˛
C? – zwraca wersj˛e oprogramowania
wybór liczby bitów stopu
K0 – 1 bit stopu
K1 – dwa bity stopu
K? – zwraca aktualne ustawienie
Szybkość transmisji
L0 – 4800 b/s
L2 – 19200 b/s
L5 – 115200 b/s
L? – zwraca aktualne ustawienie
ustawianie bitu parzystość
M0 – brak bitu parzystości
M1 – bit nieparzystości
M2 – bit parzystości
M? – zwraca aktualne ustawienie
Zmiana nazwy urzadzenia
˛
N=“nazwa”, gdzie nazwa to max. 16 znaków
zmiana numeru PIN
P=xxxx, gdzie xxx to numer PIN (4-8 znaków)
P0 – wyłaczenie
˛
żadania
˛
numeru PIN
przywracanie ustawień fabrycznych
Z0 – przywracanie ustawień fabrycznych
Z? – zwraca aktualne ustawienia
Tabela. 4.5 Wybrane komendy konfiguracyjne modułu BTM-112.
1. pomiar przyspieszenia w osi X,
2. pomiar przyspieszenia w osi Y,
3. pomiar przyspieszenia w osi Z,
4. pomiar temperatury termometru,
5. pomiar pr˛edkości obrotowej żyroskopu,
6. pomiar temperatury żyroskopu,
7. pr˛edkość obrotowa koła lewego,
8. pr˛edkość obrotowa koła prawego,
9. położenie w osi X,
10. położenie w osi Y,
11. orientacja.
4.8. Układ nap˛edowy
33
Pierwsze 6 pomiarów przesyłanych jest w postaci liczby signed short. Pozostałe sa˛ danymi
float składajacymi
˛
si˛e z 4 bajtów. Ponieważ operacje przesuni˛eć bitowych na liczbach float
sa˛ niedozwolone i jednocześnie wymagane aby je przesłać poprzez interfejs UART (wysyłanie
bajt po bajcie) można wykorzystać uni˛e danych składajac
˛ a˛ si˛e z liczby float oraz unsigned
int (każda liczba musi składać si˛e z 4 bajtów). Aby wykonać przesuni˛ecia bitowe na liczbie float zapisujemy ja˛ do uni jako zmienna˛ float i nast˛epnie wykonujemy operacje bitowe
odwołujac
˛ si˛e do zmiennej unsigned int. W ten sposób mamy bezpośredni dost˛ep do reprezentacji bitowej liczby rzeczywistej. Kolejnym warunkiem poprawnego przesyłu liczby rzeczywistej jest ta sama reprezentacja liczby floatna obydwu jednostkach (np. wg normy IEEE: 1
bit - znak, 8 kolejnych bitów - wykładnik, pozostałe - mantysa).
4.8
Układ nap˛edowy
Układ nap˛edowy stanowia˛ dwa przerobione serwomechanizmy modelarskie MG-995 firmy Tower Pro. Nowe serwomechanizmy maja˛ ograniczony kat
˛ obrotu oraz sterowane sa˛ sygnałem
o
PWM. Aby można było obracać mechanizm o 360 niezb˛edne jest usuni˛ecie blokady mechanicznej. Dodatkowo usuni˛eta została cała elektronika sterujaca.
˛ Aby móc odczytać położenie
osi zamontowano po jednym enkoderze magnetycznym (punkt 4.2.1) w obudowie serwomechanizmu. Do potencjometru znajdujacego
˛
si˛e wewnatrz
˛ silnika przyklejono magnes. Enkodery
zamontowano na niewielkiej płytce drukowanej.
Rysunek 4.14 Umieszczenie enkodera w serwomechaniźmie.
Magnes znajduje si˛e w odległości około 1mm od obudowy układu - tak jak zaleca producent.
Do obudowy serwomechanizmu doprowadzono 7 przewodów: dwa zasilajace
˛ silnik elektryczny, zasilanie oraz mas˛e dla enkoderów oraz 3 linie SPI (MISO, CLK oraz CS). Serwomechanizmy sterowane sa˛ podwójnym mostkiem H L298N[13]. Układ posiada możliwość sterowania
obrotem kół. Pr˛edkość obrotowa zależna jest od wypełnienia sygnału PWM doprowadzonego do pinów właczaj
˛
acych
˛
sterowanie silnikami. Cz˛estotliwość sygnału to 32kHz. Mniejsze
34
4. Platforma mobilna
cz˛estotliwość moga˛ powodować skokowa˛ prac˛e silnika. Wypełnieniem steruje mikrokontroler
MC68S12a64 (punkt 4.4). Sterowanie pr˛edkościa˛ zapewnia zaimplementowany regulator PID
postaci:
u(t) = Kp e(t) + Ki
d e(t)
0 e(t)dt + Kd dt ,
Rt
którego wartościa˛ wyjściowa˛ jest wypełnienie sygnału PWM w zakresie od 0 do 250.
4.9. Opis oprogramowania
4.9
35
Opis oprogramowania
Oprogramowanie stworzone do sterowania robotem zostało zaimplementowane w j˛ezyku C. Mikrokontroler MC68S12a64 zajmuje si˛e sterowaniem serwomechanizmami. Główny sterownik
AT91SAM7s256 zbiera dane pomiarowe, oblicza sterowania kół oraz komunikuje si˛e z komputerem PC.
4.9.1
MC68S12a64
W mikrokontrolerze sterujacym
˛
serwomechanizmami zaimplementowano regulator PID
u(t) = Kp e(t) + Ki
d e(t)
0 e(t)dt + Kd dt .
Rt
niezależnie sterujacy
˛ pr˛edkościa˛ obrotowa˛ każdego koła. Mikrokontroler pobiera informacje
z enkoderów magnetycznych, oblicza sterowanie oraz ustawia odpowiednie wypełnienie sygnału PWM. Wszystko odbywa si˛e z cz˛estotliwościa˛ 100Hz. Proces sterowania odbywa si˛e
w p˛etli głównej programu. Podczas transmisji SPI (w trybie Slave) mikrokontroler odbiera 8
bajtów danych. Dane odbierane zawieraja˛ nastawy pr˛edkości obrotowej. Danymi wysyłanymi sa˛ poprzednio obliczone pr˛edkości obrotowe kół. Po transmisji ostatniego bajtu ustawiona
zostaje flaga która pozwala na jednorazowe wykonanie pobierania danych z enkoderów i obliczenie sterowania. Aby uniezależnić si˛e od nadchodzacej
˛ z zewnatrz
˛ cz˛estotliwości sterowania
mikrokontroler do obliczania pochodnej oraz całki korzysta z wewn˛etrznego timera, z którego
odczytuje czas pomi˛edzy kolejnymi sterowaniami. Zaimplementowanie procesu obliczeń w p˛etli głównej i wykorzystanie flagi właczaj
˛
acej
˛ sterowanie było niezb˛edne, ponieważ mikrokontroler komunikuje si˛e ze sterowanikiem głównym poprzez interfejs SPI w trybie slave i musi
natychmiast reagować na przerwanie przychodzace
˛ po zakończeniu transmisji. Aby zapobiec
ustawianiu nowych nastaw w trakcie wykonywania obliczeń, proces sterowania uruchamiany
jest dopiero po przesłaniu wszystkich danych.
4.9.2
AT91SAM7s256
Układ AT91SAM7s256 jest sterownikiem głównym skonstruowanej platformy mobilnej. Podstawowym zadaniem układu jest sterowanie robotem. Proces sterowania odbywa si˛e cyklicznie z cz˛estotliwościa˛ 100Hz. Na poczatku
˛ procesu sterowania układ najpierw pobiera dane ze
wszystkich dost˛epnych czujników. Wszystkie dane z wyjatkiem
˛
pomiaru temperatury (1-Wire)
zbierane sa˛ poprzez interfejs SPI. Ponieważ mikrokontroler ARM7 zasilany jest napi˛eciem 3,3V
a pozostałe układy z którymi si˛e komunikuje 5V niezb˛edne było użycie trybu Multi-Drive dla
pinów portu SPI. Oznacza to, że stan niski wymuszany jest przez mikrokontroler, natomiast
zamiast wymuszania na linii MOSI stanu wysokiego, piny przechodza˛ w stan wysokiej impedancji. Stan wysoki na wyjściu (5V) wymuszany jest przez dołaczenie
˛
zewn˛etrznych rezystorów o wartości 510Ω. Prawie wszystkie piny mikrokontrolera AT91SAM7s256 moga˛ pracować z napi˛eciami do 5,5V. Wi˛ekszość danych składa si˛e z dwóch bajtów. Pr˛edkości obrotowe
kół odbierane sa˛ w postaci liczb rzeczywistych. Temperatura otoczenia z czujnika temperatury
odczytywana jest co sekund˛e (wynika to z czasu konwersji czujnika DS18b20). Po zebraniu
pomiarów nast˛epuje proces sterowania. Obliczane jest obecne położenie i orientacja platformy.
Nast˛epnie uruchamiany jest generator trajektorii, który określa w jakim punkcie powinna si˛e
znajdować platforma mobilna. Kolejno uruchamiane sa˛ sterownik kinematyczny i dynamiczny których efektem jest wyliczenie nastaw sterowań kół, które zostana˛ wysłane do sterownika
serw podczas kolejnej transmisji danych. Po zakończeniu wszystkich obliczeń uruchamiana
36
4. Platforma mobilna
jest transmisja danych (jeśli użytkownik na to zezwolił) poprzez interfejs UART w trybie DMA
(Direct Memory Access). Cała transmisja odbywa si˛e sprz˛etowo. Aby mikrokontroler mógł
odbierać dane od komputera niezb˛edne było ustawienie wyższego priorytetu na przerwanie
pochodzace
˛ z UART niż przerwania cyklicznego. Po przyjściu każdego bajtu mikrokontroler
przerywa dotychczasowe obliczenia i wczytuje odczytane dane. Jeśli mikrokontroler odebrał
dane zawierajace
˛ aktualne położenie i orientacj˛e, przed wykonaniem obliczeń pozycja jest aktualizowana.
Rozdział 5
Aplikacja sterujaca
˛
Do sterowania zbudowana˛ platforma˛ mobilna˛ została napisana aplikacja korzystajaca
˛ z biblioteki Qt4 (rysunek 5.1). Główna˛ cz˛eścia˛ jest mapa, na której wyświetlana jest pozycja i orientacja
platformy. Na mapie rysowana jest również trajektoria, po której porusza si˛e robota. Może to
być linia prosta, okrag
˛ lub punkt. Pod mapa˛ znajduja˛ si˛e przyciski służace
˛ do sterowania robotem. W cz˛eści Pr˛
edkość liniowa i Pr˛
edkość katowa
˛
można zadawać pr˛edkość liniowa˛
i katow
˛ a˛ platformy. Dane z nastawami sa˛ wysyłane natychmiast po zmianie ich wartości. Przyciski uruchamiajace
˛ i zatrzymujace
˛ platform˛e znajduja˛ si˛e obok w cz˛eści kierunek. Przyciski Do
przodu i Do tyłu służa˛ do poruszania si˛e odpowiednio do przodu i do tyłu z zadana˛ pr˛edkościa˛
liniowa.˛ Przyciski W lewo i W prawo służa˛ do obrotu platformy w lewo i prawo. Po klikni˛eciu
przycisku start Platforma porusza si˛e po okr˛egu o promieniu zadanym przez pr˛edkość liniowa˛
i obrotowa.˛ W przypadku, gdy pr˛edkość katowa
˛
wynosi zero, trajektoria˛ jest linia prosta. Jeśli
właczone
˛
jest sterowanie do punktu, po klikni˛eciu Start robot kontynuuje to sterowanie. Przycisk Stop zatrzymuje platform˛e. Sterowanie do punktu można uruchomić klikajac
˛ w dowolnym
miejscu mapy lewym przyciskiem myszy. Po klikni˛eciu do robota zostanie wysłana informacja
o położeniu punktu końcowego. Aby zakończyć sterowanie do punktu należy kliknać
˛ prawym
przyciskiem myszy na dowolnym miejscu mapy.
Z lewej strony mapy znajduje si˛e lista czujników. Przy każdym czujniku co sekund˛e wyświetlana jest aktualna wartość pomiaru. Dodatkowo poniżej wyświetlane sa˛ informacje o aktualnej pr˛edkości liniowej, katowej
˛
oraz położeniu i orientacji platformy. Robot transmituje dane
tylko gdy zaznaczone jest pole Transmisja danych. Dane można zapisywać do pliku do czego
służy pole Zapis do pliku. Przycisk Nowy ukl służy do wyznaczania układu współrz˛ednych
wzgl˛edem którego b˛edzie obliczana pozycja robota pochodzaca
˛ z obrazu wideo.
Podczas startu aplikacji inicjowany jest port /dev/rfcomm służacy
˛ do komunikacji z robotem oraz pobieranie obrazu z kamery wideo. Przed uruchomieniem aplikacji należy upewnić si˛e, że poprawnie skonfigurowano połaczenie
˛
z modułem oraz podłaczona
˛
jest kamera
/dev/video1. Aplikacja odczytuje wysyłane dane przez platform˛e mobilna˛ podczas obsługi
przerwania określajacego
˛
przyjście co najmniej 20 bajtów danych.
38
5. Aplikacja sterujaca
˛
Rysunek 5.1 Aplikacja sterujaca.
˛
Rozdział 6
Badania
Przeprowadzone badania w niniejszej pracy magisterskiej zostały wykonane przy użyciu opisanej wcześniej platformy mobilnej oraz narz˛edzia ARToolKit do przetwarzania obrazu wideo.
Pomiary z czujników wewn˛etrznych robota były wysyłane poprzez Bluetooth do komputera,
gdzie zostały zapisane i przetworzone przy wykorzystaniu pakietu Octave.
6.1
Identyfikacja serwomechanizmów
Poczatkowo
˛
w konstrukcji robota użyto 10-bitowych enkoderów magnetycznych. Maksymalna cz˛estotliwość sterowania dla zastosowanych serw wynosi około 50Hz. Po przeprowadzeniu
identyfikacji okazało si˛e, że serwa sa˛ w stanie zmienić swoja˛ pr˛edkość obrotowa˛ o prawie 50%
pomi˛edzy kolejnymi próbkami położenia. Zdecydowano si˛e na zmian˛e czujników na 12-bitowe.
Dzi˛eki zamianie możliwe było zwi˛ekszenie cz˛estotliwości sterowania do 100Hz. Cz˛estsze sterowanie znacznie zmniejszyło maksymalna˛ zmian˛e pr˛edkości katowej
˛
kół pomi˛edzy kolejnymi
odczytami położenia.
Rysunek 6.1 Identyfikacja serw MG-995.
Na rysunku 6.1 umieszczono przebieg identyfikacji serwomechanizmów. Podczas narastania sygnału sterownik serw zda˛żył 8 razy odczytać położenie katowe
˛
koła z enkoderów magnetycznych. Parametry regulatora PID sterujacego
˛
pr˛edkościa˛ obrotowa˛ kół dobrano doświadczalnie.
40
6.2
6. Badania
Dokładność pomiaru pozycji i orientacji na podstawie obrazu wideo
Pomiar dokładności wyszukiwania wzorca w obrazie wideo został wykonany dzi˛eki dost˛epnym przykładom dostarczanym wraz z narz˛edziem (cz˛eściowo zmodyfikowanych na potrzeby
badań). Najważniejszym elementem poprawnej detekcji położenia wzorca jest skrupulatna kalibracja kamery. Domyślne ustawienia daja˛ niepoprawne wyniki i należy je skorygować. Kalibracja powinna być wykonana w dwóch krokach. Pierwszy służy do określania promienia
krzywizny soczewki kamery. Drugi służy do określenia gł˛ebi i polega na stopniowym odsuwaniu kamery (o stałym kroku oddalenia) od kartki z wydrukowana˛ kratka˛ i zaznaczaniu linii
poziomych i pionowych. Wi˛ecej o kalibracji można przeczytać na stronie internetowej z dokumentacja˛ narz˛edzia[3]. Wszystkie badania zostały wykonane po przeprowadzeniu procesu kalibracji. Fakt, że domyślne ustawienia kamery sa˛ niepoprawne został określony w czasie krótkiego doświadczenia polegajacego
˛
na odczytaniu położenia kamery z obrazu wideo i porównaniu
z położeniem zmierzonym za pomoca˛ linijki.
6.2.1
Wyznaczanie stabilności pomiaru położenia na podstawie obrazu
wideo
Badanie miało na celu wyznaczenie dokładności, z jaka˛ narz˛edzie ARToolKit potrafi określić
położenie wzorca na podstawie obrazu wideo odczytywanego z kamery internetowej. Zostało
wykonane przy świetle dziennym z dodatkowo właczonym
˛
sztucznym oświetleniem. Proces
badania polegał na ustawieniu w dowolnym punkcie wzorca i wykonaniu długiej serii pomiarów
położenia wzgl˛edem układu współrz˛ednych kamery. Za bład
˛ metody uznano różnic˛e pomi˛edzy
wartościa˛ minimalna˛ i maksymalna˛ odczytanego położenia.
Rysunek 6.2 Pomiar w osi X, wartość średnia=-520,6mm, min=-528,53mm, max=512,13mm,
dokładność=16,5mm.
Jak widać na wykresach prezentowanych na rysunkach 6.2, 6.3 i 6.4 najgorzej wypada pomiar wzdłuż osi Z. Dokładność pomiaru wzdłuż osi X oraz Y jest na zadowalajacym
˛
poziomie.
Bład
˛ pomiaru nie przekracza 16,5mm.
6.2. Dokładność pomiaru pozycji i orientacji na podstawie obrazu wideo
41
Rysunek 6.3 Pomiar w osi Y , wartość średnia= 262, 45mm, min= 258, 28mm, max=
266, 48mm, dokładność= 8, 5mm.
Rysunek 6.4 Pomiar w osi Z, wartość średnia= 1508mm, min= 1483, 1mm, max=
1531, 3mm, dokładność= 48, 5mm.
W dotychczas wykonanych pomiarach pozycja znacznika była określana wyłacznie
˛
na podstawie ostatnio pobranego obrazu wideo. Powodowało to znaczne oscylacje wokół wartości
średniej. Istnieje możliwość zmniejszenia tych oscylacji poprzez wykorzystanie historii do wyznaczania położenia. Użycie historii znaczaco
˛ zmniejsza wahania wokół wartości średniej, gdyż
poprzedni pomiar jest także uwzgl˛edniany w wyznaczaniu położenia.
Wyniki pomiarów przedstawione na rysunkach 6.5, 6.6 i 6.7 zawieraja˛ odczyty pozycji
z uwzgl˛ednieniem historii. Różnica pomi˛edzy pomiarami z historia˛ i bez historii jest znacza˛
ca. W badaniach z uwzgl˛ednieniem poprzedniego pomiaru niedokładność spadła kilkakrotnie.
Uzyskane wyniki wydaja˛ si˛e być zadowalajace.
˛ Wcia˛ż jednak pozostaje problem pomiaru odległości wzdłuż osi Z (gł˛ebia kamery). Wydaje si˛e, że pomiar odległości od kamery jest najbardziej wrażliwy na zmian˛e wartości pikseli obrazu. Gdy obramowanie wzorca zostanie zmniej-
42
6. Badania
Rysunek 6.5 Pomiar w osi X, wartość średnia= −169, 15mm, min= −169, 33mm, max=
−168, 28mm, dokładność= 1, 5mm
Rysunek 6.6 Pomiar w osi Y , wartość średnia= 140, 01mm, min= 139, 24mm, max=
140, 2mm, dokładność= 1mm
szone o kilka pikseli środek znacznika nie ulega przesuni˛eciu, natomiast powoduje nieistniejace
˛
oddalenie znacznika od kamery co jest zauważane przez funkcje przetwarzajace
˛ obraz.
Warto także zwrócić uwag˛e na wykresy przedstawione na runkach 6.5, 6.6 i 6.7 w okolicy 300-setnego pomiaru. Widoczny jest znaczny skok odczytów. Być może w tym momencie
kamera zmieniała swoje ustawienie kontrastu co mogło wpłynać
˛ na dokładność pomiarów. Po
zauważonym impulsie oscylacje znaczaco
˛ spadły.
6.2. Dokładność pomiaru pozycji i orientacji na podstawie obrazu wideo
43
Rysunek 6.7 Pomiar w osi Z, wartość średnia= 1516, 9mm, min= 1507, 4mm, max= 1519mm,
dokładność= 11, 5mm
6.2.2
Wyznaczanie dokładności pomiaru dwóch znaczników
wzgl˛edem siebie
Badanie miało na celu wyznaczenie dokładności pomiaru jednego znacznika w układzie współrz˛ednych drugiego wzorca. W tym celu w obszarze widoczności kamery ułożono dwa znaczniki
(rysunek 6.8). Po znalezieniu obydwu znaczników w obrazie wideo należy wykonać obliczenia
transformujace
˛ jeden z nich z układu współrz˛ednych kamery do układu współrz˛ednych drugiego znacznika (rozdział 3.2).
Rysunek 6.8 Ułożenie znaczników na płaszczyźnie.
Wykonane pomiary przedstawiaja˛ wykresy na rysunkach 6.9, 6.10 oraz 6.11. Badania zo-
44
6. Badania
stały wykonane bez użycia historii.
Rysunek 6.9 Pomiar odległości znaczników w osi X.
Rysunek 6.10 Pomiar odległości znaczników w osi Y .
Na podstawie wygenerowanych wykresów obliczono poniższe wyniki:
• wartość średnia w osi X=520,23mm, rzeczywista=515mm„ niedokładność=9,5mm
• wartość średnia w osi Y=0,17mm, rzeczywista=0mm„ niedokładność=9mm
• wartość średnia w osi Z=17,4mm, rzeczywista=0mm, niedokładność=77mm.
Porównujac
˛ wyniki przeprowadzonego badania z wartościami rzeczywistymi zmierzonymi za
pomoca˛ linijki można stwierdzić, że dokładność pozycji w płaszczyźnie na której znajduja˛ si˛e
oba znaczniki wynosi 10mm, natomiast położenie w trzeciej osi jest znaczaco
˛ różniace
˛ si˛e od
rzeczywistości.
6.3. Wyznaczanie przebytej drogi na podstawie enkoderów magnetycznych
45
Rysunek 6.11 Pomiar odległości znaczników w osi Z.
6.3
Wyznaczanie przebytej drogi na podstawie enkoderów
magnetycznych
Enkodery magnetyczne sa˛ urzadzeniami
˛
służacymi
˛
do pomiaru kata
˛ obrotu magnesu umieszczonego w pobliżu czujnika. Zapewniaja˛ bezstykowy pomiar położenia oparty na rozkładzie
pola magnetycznego. Podstawa˛ poprawnego jest pomiaru korzystanie z magnesu o odpowiednio dobranym nat˛eżeniu pola magnetycznego[5] oraz umieszczenie go w odległości około 1mm
od obudowy czujnika. Oprócz niedokładności pomiaru czujnika wpływ na rozbieżność pomiaru
przebytej drogi może także mieć niedokładne zmierzenie średnicy kół, gdyż wartość przebytej
drogi jest zależna od obwodu koła. Aby odczytać przebyta˛ drog˛e na podstawie enkoderów można skorzystać z równań kinematyki przedstawionych w rozdziale 2.1. Ponieważ z enkoderów
można odczytać położenie magnesu przymocowanego do silnika należy na podstawie aktualnego pomiaru i poprzedniego obliczyć zmian˛e, która jednocześnie określa pr˛edkość obrotowa.˛
Nast˛epnie korzystajac
˛ z zależności (2.13) określamy wartość przeskalowanej pr˛edkości
R
(6.1)
ηi = φ̇i .
2
Pr˛edkość liniowa˛ i katow
˛ a˛ platformy mobilnej klasy (2,0) można wyrazić za pomoca˛ wzoru
(2.14):
v
ω
=
η1 +η2
2
L (η1 −η2 )
.
Na rysunkach 6.12 i 6.13 przedstawiono badania przebytej drogi odczytanej na podstawie enkoderów magnetycznych. Na rysunku 6.12 przedstawiono odczyt drogi przy pr˛edkości
10cm/s. Droga rzeczywista zmierzona linijka˛ wynosiła kolejno 103cm do przodu oraz 98cm
do tyłu. Trasa odczytana na podstawie enkoderów wynosiła odpowiednio 102cm do przodu
i 96,5cm. Wykres umieszczony na rysunku 6.13 przedstawia odczytana˛ drog˛e przy wi˛ekszej
pr˛edkości liniowej i o dłuższej trasie. Platforma mobilna poruszała si˛e do przodu z pr˛edkościa˛
17cm/s. W tym czasie przebyła droga˛ 148cm do przodu a nast˛epnie 143cm do tyłu. Wartości
odczytana z enkoderów to odpowiednio 146,5cm oraz 141cm. Z przeprowadzonego doświadczenia wynika, że enkodery na krótkich odcinkach dobrze odwzorowuja˛ rzeczywista˛ drog˛e.
Niedokładność pomiaru mieści si˛e w granicy 2%.
46
6. Badania
Rysunek 6.12 Odczyt przebytej drogi na podstawie enkoderów, droga rzeczywista=103cm.
Rysunek 6.13 Odczyt przebytej drogi na podstawie enkoderów, droga rzeczywista=148cm.
6.4
Skalowanie i wyznaczanie zera akceleromatru
Przed wykonaniem pomiarów przyspieszenia należy wyznaczyć tak zwane zero, które b˛edzie
odpowiadało przyspieszeniu zerowemu. Zero akcelerometru można łatwo wyznaczyć poprzez
wyznaczenie wartości średniej z pomiarów przyspieszeń dokonanych w stanie spoczynku robota. W tym celu należy umieścić robota na płaszczyźnie prostopadłej do wektora przyspieszenia
ziemskiego i wykonać seri˛e pomiarów, która˛ należy uśrednić. Wartości średnie na osiach X i Y
b˛eda˛ równe zerowemu przyspieszeniu. Przykładowy przebieg pomiarów przedstawia rysunek
6.14.
Po przeprowadzeniu badania uzyskano nast˛epujace
˛ wyniki:
x0 = −0, 075237g,
y0 = 0, 0057783g.
Skalowanie akcelerometru polega na wyznaczeniu wartości liczbowej odpowiadajacej
˛ przyspieszeniu ziemskiemu. Na podstawie tej wartości b˛edzie możliwe przeliczenie późniejszych
wyników pomiarów na wartość reprezentujac
˛ a˛ przyspieszenie w danej osi.
6.4. Skalowanie i wyznaczanie zera akceleromatru
47
Rysunek 6.14 Odczyty z osi X akcelerometru w stanie spoczynku.
Proces skalowania akcelerometru wyglada
˛ tak samo dla każdej z osi. Należy ustawić robota w takiej pozycji, aby zwrot i kierunek danej osi pokrywał si˛e z wektorem przyspieszenia
ziemskiego. Nast˛epnie należy lekko przechylać robota w różnych kierunkach. Z tak uzyskanych
pomiarów napi˛ecia na wyjściach akcelerometru wybieramy wartość maksymalna,˛ która odpowiada wartości przyspieszenia równej 1g. Przebieg eksperymentu dla osi X ilustruje wykres
6.15.
Rysunek 6.15 Skalowanie osi X akcelerometru.
Po przeprowadzeniu eksperymentów dla każdej z osi otrzymano nast˛epujace
˛ wyniki:
x1g = 2, 4420V ,
y1g = 2, 4879V ,
z1g = 2, 4750V .
48
6. Badania
Jak widać wartość 1g ma inna˛ reprezentacj˛e w każdej z osi, zatem wyznaczenie jednej wartości
dla wszystkich osi jednocześnie może powodować dodatkowe bł˛edy odczytu. Gdy znamy już
zero oraz wartość odpowiadajac
˛ a˛ przyspieszeniu 1g można wykonać pomiary. Od każdego pomiaru należy odjać
˛ wartość zerowa˛ co daje wartość liczbowa˛ w odniesieniu do zera danej osi.
Uzyskana˛ różnic˛e dzielimy przez wartość odpowiadajac
˛ a˛ 1g i otrzymujemy wartość rzeczywistego przyspieszenia.
6.5
Wyznaczanie przebytej drogi na podstawie przyspieszeń
Celem eksperymentu jest wyznaczenie drogi przejechanej przez platform˛e mobilna˛ korzystajac
˛ z przyspieszeń. Akcelerometr umieszczono na osi symetrii platformy mobilnej. Dodatnia
cz˛eść osi Y akcelerometru ma ten sam zwrot i kierunek co kierunek wskazujacy
˛ przód robota.
Odczyty z osi Y akcelerometru można wi˛ec traktować jako przyspieszenie liniowe platformy
mobilnej. Opis uzyskiwania położenia na podstawie przyspieszeń omówiono w punkcie 2.5.
Przebyta droga b˛edzie porównana z wynikami zawartymi w punkcie 6.3. Eksperyment został
przeprowadzony po wcześniejszym skalibrowaniu akcelerometru (punkt 6.4). Na rysunku 6.16
przedstawiono przebieg odczytów przyspieszenia liniowego platformy mobilnej. Szumy widoczne na przedstawionym rysunku sa˛ na tyle wysokie, że znaczaco
˛ zniekształcaja˛ wartości
prawidłowe. Prób˛e wyznaczenia drogi z takich odczytów przedstawia rysunek 6.17. Pomiary
napi˛ecia zostały dokonane po analogowej filtracji dolnoprzepustowej o cz˛estotliwości odci˛ecia
równej 5Hz. Zmiana cz˛estotliwości odci˛ecia nie miała wi˛ekszego wpływu na odczyty z akcelerometru. Zwi˛ekszenie cz˛estotliwości odci˛ecia powodowało lekkie zwi˛ekszenie si˛e szumów,
natomiast zmniejszenie miało negatywny wpływ na powstawanie impulsu przyspieszenia w momencie ruszania i zatrzymania.
Rysunek 6.16 Przyspieszenie liniowe platformy mobilnej.
Droga przedstawiona na rysunku 6.17 znaczaco
˛ odbiega od rzeczywistej wyznaczonej w punkcie 6.3. Podj˛eto prób˛e wyeliminowania szumów poprzez ustalenie wartości progowej, poniżej
której pomiary uznawane sa˛ za zerowe. Wartość ta˛ ustalono doświadczalnie na poziomie 23.
Rysunek 6.18 przedstawia przyspieszenie po odszumieniu. Rysunek 6.19 pokazuje drog˛e uzyskana˛ na podstawie odszumionych odczytów z akcelerometru.
6.5. Wyznaczanie przebytej drogi na podstawie przyspieszeń
49
Rysunek 6.17 Obliczona droga na podstawie przyspieszeń z szumami.
Rysunek 6.18 Przyspieszenie liniowe po uwzgl˛ednieniu wartości progowej.
Jak widać na rysunku 6.20 po przeprowadzeniu operacji progowania przyspieszenia droga
odczytana z akcelerometrów ma podobny kształt jak droga odczytana na podstawie enkoderów.
Droga odczytana z akcelerometrów pomimo, iż ma prawidłowy kierunek jest około 9 razy krótsza od prawdziwej. Przyczyna˛ takiego zjawiska może być zbyt wysoka wartość progowa, która
odcina cz˛eść przyspieszenia w momencie ruszania pozostawiajac
˛ jedynie krótki impuls. Ponieważ uzyskiwanie drogi wia˛że si˛e z sumowaniem przyspieszeń zbyt krótki impuls (rysunek
6.18) nie da wiarygodnych wyników gdyż przyspieszenie rzeczywiste w momencie ruszania
trwa dłużej. Zmniejszenie wartości progowej wprowadzi wyeliminowane szumy do pomiarów
co jeszcze bardziej negatywnie wpłynie na wyniki.
Poprawy odczytów z akcelerometrów należy doszukiwać si˛e w cz˛eści elektronicznej toru
pomiarowego. Wpływ na zaszumienia pomiarów moga˛ mieć zakłócenia elektromagnetyczne
pochodzace
˛ od sasiednich
˛
ścieżek sygnałowych (zwłaszcza transmisji o wysokiej cz˛estotliwości, np. SPI), niedokładności i szumy akcelerometru, niedokładności przetwornika A/C, niesta-
50
6. Badania
Rysunek 6.19 Droga uzyskana z przyspieszeń po usuni˛eciu szumów.
Rysunek 6.20 Porównanie drogi otrzymanej z przyspieszeń i enkoderów.
bilności napi˛ecia odniesienia oraz zasilania układów bioracych
˛
udział w pomiarze przyspieszeń.
Wykonany eksperyment wykazał, że bardzo ważna˛ rol˛e w pozyskiwaniu pozycji na podstawie
przyspieszeń pełni poprawnie zaprojektowany tor analogowy. Na wykresie 6.20 jest widoczne
zjawisko narastania odległości gdy robot si˛e nie porusza. Jest to zwiazane
˛
z bł˛edami numerycznymi oraz nierównomiernościa˛ przyspieszenia podczas ruszania i hamowania. Wystarczy
niewielka różnica aby pr˛edkość po zatrzymaniu nie wróciła do zera. Należy także zwrócić uwag˛e na fakt, iż chwilowe przyspieszenie wzdłuż toru jazdy pojawia si˛e w wyniku nierówności
powierzchni. Powstałe impulsy przyspieszenia sa˛ wynikiem siły odśrodkowej. Siła ta narasta
wraz ze zwi˛ekszeniem nierówności oraz pr˛edkości jazdy.
6.6. Wyznaczanie pr˛edkości katowej
˛
na podstawie żyroskopu
6.6
51
Wyznaczanie pr˛edkości katowej
˛
na podstawie żyroskopu
Badanie przeprowadzono dla ruchu obrotowego platformy mobilnej. Obrót nast˛epował wokół
osi obrotu. Platforma mobilna wykonała 3 obroty w lewo, a nast˛epnie 3 obroty w kierunku
przeciwnym. W celu wyznaczenia orientacji scałkowano charakterystyk˛e pr˛edkości katowej.
˛
Odczyty z żyroskopu porównano z wynikiem uzyskanym na podstawie enkoderów (rysunek
6.21).
Rysunek 6.21 Porównanie orientacji uzyskanej z żyroskopu i enkoderów.
Wyznaczone przebiegi orientacji niemalże si˛e pokrywaja.˛ Mimo, iż czas badania nie był
zbyt długi widać, że rozbieżności narastaja˛ wraz z upływem czasu. Pod koniec badania, gdy
zatrzymano platform˛e wskazania z obu czujników powróciły niemalże do tego samego punktu.
Po przeprowadzeniu eksperymentu można stwierdzić, że żyroskop może być stosowany do nawigacji gdy został wykryty poślizg lub buksowanie kół. Wtedy odczyty z enkoderów nie daja˛
prawidłowych przemieszczeń.
6.7
Wykrywanie przeszkód
Wyniki pozyskiwania przebytej drogi platformy mobilnej na podstawie przyspieszeń pokazały, iż w skonstruowanej platformie mobilnej nie daja˛ one wiarygodnych odczytów. Mimo tego
po zastosowaniu wartości progowej wcia˛ż zauważalne sa˛ impulsy w trakcie ruszania i zatrzymywania si˛e robota. Podobne impulsy powinny pojawiać si˛e gdy robot napotka przeszkod˛e na
swojej drodze. Wartość przyspieszenia powinna być zależna od kata
˛ pod jakim robot uderzył
w przeszkod˛e oraz czy przeszkoda pozostała w tym samym miejscu. Przeprowadzone badania
miały na celu zweryfikowanie powyższych założeń.
Zderzenie z przeszkoda˛ znajdujac
˛ a˛ si˛e na wprost toru jazdy robota przedstawia rysunek
6.22. Pierwszy impuls przyspieszenia oznacza start platformy. Drugi jest równoważny napotkaniu przeszkody (rysunek 6.22(a)). Wysoka wartość przyspieszenia po zderzeniu powstała
w wyniku lekkiego przechylenia si˛e platformy w stosunku do płaszczyzny, po której si˛e porusza. Widać, że akcelerometr prawidłowo zasygnalizował wykrycie przeszkody. Na rysunku
6.22(b) przedstawiono odczyty pr˛edkości katowej
˛
z żyroskopu podczas tego samego zderzenia.
52
6. Badania
Oscylacje pomi˛edzy 4 o 7 sekunda˛ przedstawiaja˛ ruch robota. Po nich nastapił
˛ znaczny impuls, który oznaczał zderzenie. Pomimo iż wydaje si˛e, że oba czujniki sa˛ w stanie prawidłowo
wykryć przeszkod˛e, na podstawie samego żyroskopu może si˛e to nie udać w przypadku, gdy
przeszkoda znajdzie si˛e idealnie na wprost robota i podczas zderzenia nie powstanie pr˛edkość
obrotowa. Do wykrycia przeszkód poprzecznych do toru jazdy lepiej nadaje si˛e akcelerometr.
(a) Odczyt z akcelerometru
(b) Odczyt z żyroskopu
Rysunek 6.22 Zderzenie czołowe z przeszkoda.˛
Kolejnym etapem badania było sprawdzenie reakcji czujników na przeszkod˛e umieszczona˛
pod katem
˛
ostrym do toru jazdy. Tym razem lepiej prezentuja˛ si˛e wyniki pomiarów pochodza˛
ce z żyroskopu. Jednoznacznie widać miejsce napotkania przeszkody. Dodatkowo z wykresu
można odczytać stron˛e, po której znajduje si˛e przeszkoda. Zderzenie nastapiło
˛
po 4 sekundzie
ruchu. Ponieważ pr˛edkość katowa
˛
jest dodatnia w tym czasie można stwierdzić, że przeszkoda
znajdowała si˛e z prawej strony. Po otarciu si˛e o przeszkod˛e robot zahaczył o nia˛ prawym narożnikiem co spowodowało obracanie si˛e w przeciwnym kierunku. Odczyt z akcelerometru także
prawidłowo zasygnalizował wykrycie zderzenia.
(a) Odczyt z akcelerometru
(b) Odczyt z żyroskopu
Rysunek 6.23 Zderzenie pod katem
˛
ostrym z przeszkoda.˛
Podsumowujac
˛ przeprowadzony eksperyment akcelerometr i żyroskop moga˛ tworzyć wzajemnie uzupełniajac
˛ a˛ si˛e par˛e czujników służac
˛ a˛ do wykrywania przeszkód. W przypadku przeszkód prostopadłych do toru jazdy najbardziej wiarygodnym czujnikiem wydaje si˛e akcelerometr. Podczas zderzenie z przeszkoda˛ skośna˛ oprócz informacji o zderzeniu pochodzacej
˛ z przyspieszeń można określić z jakiego kierunku pojawiła si˛e przeszkoda na podstawie żyroskopu.
6.8. Śledzenie trajektorii bez korekcji z obrazu wideo
6.8
53
Śledzenie trajektorii bez korekcji z obrazu wideo
Z badań przedstawionych w punkcie 6.3 wynika, że droga odczytana na podstawie enkoderów
magnetycznych jest zbliżona do rzeczywistej. Bład
˛ metody polega na niedokładności pomiarów
samych czujników, niepewności określania promienia koła oraz szerokości rozstawu kół. Każde
odchylenie od wartości rzeczywistej powoduje narastanie bł˛edów wraz z czasem. Na rysunku
6.24 przedstawiono porównanie odczytów drogi na podstawie enkoderów magnetycznych oraz
obrazu wideo. Robot startował z lewego dolnego narożnika wykresu. W momencie startu została przesłana do robota informacja o położeniu z kamery po czym robot zaczał
˛ nawigacj˛e
wyłacznie
˛
w oparciu o enkodery. Poruszajac
˛ si˛e po prostej robot zaczał
˛ odbiegać od trajektorii
rzeczywistej. Powodem tego może być (oprócz wspomnianej niedokładności enkoderów) bład
˛
pomiaru orientacji kamery. Ponieważ robot tylko raz otrzymał informacj˛e o położeniu i orientacji nie ma możliwości skorygowania swojej pozycji.
Rysunek 6.24 Jazda po linii prostej.
Kolejny test miał na celu sprawdzenie dokładności poruszania si˛e po okr˛egu. Podobnie jak
powyżej robot tylko na poczatku
˛ otrzymał informacj˛e o położeniu i orientacji a nast˛epnie określał położenie za pomoca˛ enkoderów. Przed badaniem założono, że poczatkowo
˛
robot b˛edzie
prawidłowo poruszał si˛e po okr˛egu a po dłuższym czasie zaczna˛ pojawiać si˛e różnice pomi˛edzy
trasami. Wynik eksperymentu przedstawia ilustracja 6.25. Czerwony przebieg oznacza trajektori˛e odczytana˛ za pomoca˛ enkoderów, niebieski - z obrazu wideo. Robot otrzymawszy komend˛e
start oraz informacje o swoim położeniu i orientacji zaczał
˛ szybko zbiegać do trajektorii zadanej, która˛ był okrag
˛ o promieniu 33cm. Robot osiagn
˛ a˛ zadana˛ trajektoria˛ w ciagu
˛ pełnego
okra˛żenia, po czym według odczytów z enkoderów poruszał si˛e cały czas po trajektorii zadanej. Rzeczywiste odczyty pochodzace
˛ z obrazu wideo pokazuj˛e że tak nie było. Poczatkowo
˛
obie trasy si˛e pokrywały. Z biegiem czasu rzeczywista trajektoria zacz˛eła coraz bardziej odbiegać od zadanej co obrazuje niebieski wykres na rysunku 6.25. Czas badania wynosił około
25,5 minuty. Przeprowadzony eksperyment potwierdza poczatkow
˛
a˛ tez˛e, że wraz z upływem
czasu ścieżka rzeczywista i ta odczytana na podstawie enkoderów b˛eda˛ si˛e coraz bardziej różniły. Pomimo tego, że odczyty z kamery wydaja˛ si˛e mniej precyzyjne (znaczaco
˛ oscyluja˛ wokół
wartości prawidłowej) to bł˛edy pomiarów nie sa˛ kumulowane jak w przypadku enkoderów oraz
pozostałych testowanych czujnikach zastosowanych w robocie. Każdy nast˛epny pomiar kamery
54
6. Badania
Rysunek 6.25 Porównanie trajektorii z kamery i enkoderów.
może skorygować bład
˛ z poprzedniego obrazu.
6.9. Korekcja położenia pochodzaca
˛ od systemu wizyjnego
6.9
55
Korekcja położenia pochodzaca
˛ od systemu wizyjnego
Przedstawione do tej pory badania wykazywały, iż trasa odczytana na podstawie czujników
wewn˛etrznych robota z biegiem czasu coraz bardziej różniła si˛e od rzeczywistej. Odczyt na
podstawie obrazu wideo jest mniej dokładny od np. enkoderów, jednak z biegiem czasu bład
˛
położenia nie narasta i za każdym razem mieści si˛e w stałej granicy. Aby uzyskać wysoka˛
dokładność śledzenia trajektorii oraz wyeliminować odbieganie od trajektorii z upływem czasu
postanowiono użyć do nawigacji enkoderów, których odczyty b˛eda˛ korygowane co jakiś czas
(np. co sekund˛e) przez odczyt z obrazu wideo. Wynik eksperymentu przedstawia rysunek 6.26.
Rysunek 6.26 Jazda po okr˛egu z korekcja˛ co sekund˛e.
Czas trwania eksperymentu wynosił 15 minut. Porównujac
˛ trasy z rysunków 6.26 oraz 6.25
widać, że po zastosowaniu korekcji położenia pochodzacej
˛ z obrazu wideo trajektoria robota nie oddala si˛e od zadanej z biegiem czasu. Mieści si˛e w pewnej granicy określonej przez
niedokładność pomiaru kamery.
Kolejnym etapem testu było sprawdzenie poprawiania położenia platformy mobilnej co 10
sekund. Czas trwania eksperymentu także wynosił 15 minut. Przebieg trajektorii przedstawiono na rysunku 6.27. Zwi˛ekszenie okresu niwelowania bł˛edów położenia wprowadziło wi˛eksze
oscylacje wokół trajektorii zadanej. Jeśli kamera popełni bład
˛ położenia a zwłaszcza orientacji
przez nast˛epne 10 sekund robot b˛edzie starał si˛e powrócić na trajektori˛e zadana˛ z niepoprawnie
określonym punktem startu. Im wi˛ekszy bład
˛ podczas korekcji położenia tym wi˛eksze odst˛epstwo od trajektorii zadanej. Mimo wi˛ekszych oscylacji wokół trajektorii zadanej w porównaniu
do rysunku 6.25 duży czas pomi˛edzy kolejnymi wyrównaniami położenia zapobiega oddalaniu
si˛e robota od właściwej trajektorii.
Podsumowujac
˛ wykonany eksperyment, wprowadzenie korekcji obrazu z kamery poprawia śledzenie trajektorii. Sprz˛eżenie robota z pomiarem z obrazu wideo całkowicie eliminuje
odbieganie położenia rzeczywistego od zadanego z biegiem czasu. W przypadku, gdy kamera
dysponuje dużym bł˛edem pomiaru (zwłaszcza orientacji) niezb˛edne jest cz˛este korygowanie
56
6. Badania
Rysunek 6.27 Jazda po okr˛egu z korekcja˛ co 10 sekund.
położenia. Im wi˛eksze odst˛epstwo pomiaru od wartości rzeczywistej, tym bardziej robot b˛edzie
odbiegał od trajektorii zadanej. Okres korekcji położenia powinien być zależny oprócz niedokładności kamery od szybkości poruszania si˛e robota oraz możliwości reagowania na zmian˛e.
Zbyt cz˛este korygowanie powoduje szarpany sposób sterowania, gdyż sterownik robota musi
reagować na nagłe skoki pozycji spowodowane korekcja.˛
Rozdział 7
Podsumowanie
Praca miała na celu skonstruowanie systemu śledzenia położenia, pozwalajacego
˛
na dokładne
określanie pozycji i orientacji platformy mobilnej oraz porównanie dokładności lokalizacji robota mobilnego na podstawie różnych czujników. Badania wykazały, że na podstawie danych
odczytanych z zastosowanych enkoderów magnetycznych na krótkich dystansach można z duża˛
dokładnościa˛ określić położenie i orientacj˛e robota mobilnego. Spośród czujników wewn˛etrznych robota okazały si˛e najdokładniejsze.
Bardzo dobre wyniki uzyskano wyznaczajac
˛ pr˛edkość katow
˛ a˛ platformy mobilnej na podstawie odczytów z żyroskopu. Porównanie jej z pr˛edkościa˛ obrotowa˛ uzyskana˛ dzi˛eki enkoderom wykazało niemalże identyczne pr˛edkości katowe.
˛
Jednak bł˛edy całkowania narastaja˛
wraz z liczba˛ wykonanych obrotów. Żyroskop może być stosowany do określania orientacji
np. w przypadku, gdy koła ulegaja˛ poślizgom i odczyty z enkoderów niepoprawnie określaja˛
położenie.
Zakłócenia odczytów z akcelerometrów okazały si˛e na tyle wysokie, że niemożliwe było
odczytania rzeczywistej pozycji robota. Ponadto podczas badań stwierdzono, iż bład
˛ odczytów narasta wraz ze wzrostem pr˛edkości i chropowatości powierzchni po której si˛e porusza
platforma mobilna. Do odczytów przyspieszeń wzdłuż drogi robota dodaja˛ si˛e impulsy siły
odśrodkowej generowane podczas jazdy po nierównościach (np. po dywanie).
Okazało si˛e, że mimo bardzo wysokich zakłóceń, na podstawie akcelerometru można stwierdzić zderzenie z przeszkoda.˛ Wraz z żyroskopem akcelerometr może tworzyć komplementarna
par˛e czujników do wykrywania przeszkód. Oprócz siły uderzenia odczytanej z akcelerometru
można określić z której strony nastapiło
˛
zderzenie z przeszkoda˛ dzi˛eki odczytom pr˛edkości
obrotowej z żyroskopu.
Zastosowanie obrazu wideo do śledzenia położenia okazało si˛e niezb˛edne. Podczas długiej
jazdy bł˛edy odczytów z enkoderów powoduja˛ znaczne (ciagle
˛ narastajace)
˛ odbieganie od trajektorii zadanej. Wprowadzenie cyklicznej korekty położenia z obrazu wideo poprawia wyniki
i nie pozwala robotowi mobilnemu na zbytnie oddalanie si˛e od trajektorii zadanej. Dokładność
wyznaczania oddalenia od kamery była nawet kilka razy gorsza od precyzji określania pozycji
w osiach X i Y. W tym przypadku warto by było sprawdzić działanie innych dost˛epnych pakietów oprogramowania do wyszukiwania znaczników w obrazie wideo. Dodatkowo podczas
eksperymentów stwierdzono, iż umieszczenie znacznika na górnej blasze robot powodowało
znaczne zakłócenia w odczycie z kamery, czego skutkiem było chwilowe zgubienie znacznika.
Powodem takiego zjawiska jest odbijanie si˛e promieni słonecznych od blachy aluminiowej, które nast˛epnie padaja˛ bezpośrednio na obiektyw kamery. Zakrycie całej górnej blachy biała˛ kartka˛
papieru całkowicie wyeliminowało to zjawisko. Dodatkowo stwierdzono, zależność dokładności określania położenia od jasności tła. Ponieważ pakiet ARToolKit ma statycznie określany
próg jasności, ta sama wartość dla różnych jasności tła powoduje cz˛este gubienie znacznika.
58
7. Podsumowanie
Podczas badań najlepsze rezultaty uzyskano, gdy platforma mobilna poruszała si˛e po białej,
matowej powierzchni, która nie kontrastowała z białym wn˛etrzem znacznika.
Poczatkowo
˛
zastosowane 10-bitowe enkodery magnetyczna maja˛ zbyt mała˛ rozdzielczość
w stosunku do pr˛edkości obrotowej zastosowanych serwomechanizmów. Sterowanie z cz˛estotliwościa˛ 50Hz pozwala na regulowanie pr˛edkości obrotowej, jednak wahania pr˛edkości kato˛
wej sa˛ zdecydowania za wysokie dla bardzo precyzyjnych zastosowań. Zmiana na 12-bitowy
czujnik pozwoliła dwukrotnie zmniejszyć okres sterowania, co pozytywnie wpłyn˛eło na stabilność utrzymywania pr˛edkości obrotowej. W podobnych konstrukcja zaleca si˛e umieszczenie
enkodera magnetycznego bezpośrednio na osi silnika (przed przekładnia).
˛ Dzi˛eki temu b˛edzie
możliwe zwi˛ekszenie cz˛estotliwości sterowania nap˛edami, co powinno pozytywnie wpłynać
˛ na
stabilizacj˛e pr˛edkości obrotowej oraz zmniejszyć niedokładność odczytu.
Dodatek A
Schematy elektroniki
Rysunek A.1 Schemat płytki z enkoderem AS5045.
60
A. Schematy elektroniki
Rysunek A.2 Schemat płyty głównej.
61
Rysunek A.3 Schemat układu zasilania.
62
A. Schematy elektroniki
Rysunek A.4 Schemat sterownika silników.
63
Rysunek A.5 Schemat płytki z modułem Bluetooth.
Dodatek B
Wymiary robota
Rysunek B.1 Widok robota z góry.
66
B. Wymiary robota
Rysunek B.2 Widok robota z boku.
67
Rysunek B.3 Widok otworów bocznych robota.
68
B. Wymiary robota
Rysunek B.4 Umieszczenie trzeciego punktu podparcia robota.
Dodatek C
Fotografie
Rysunek C.1 Widok robota.
70
C. Fotografie
Rysunek C.2 Widok z góry na płytki elektroniczne.
71
Rysunek C.3 Umiejscowienie baterii - widok z tyłu.
72
C. Fotografie
Rysunek C.4 Elektronika - widok z przodu.
Spis rysunków
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Ruch robota na płaszczyźnie. . . . . . . . . . . . . . . . . . . .
Otrzymywanie drogi na podstawie przyspieszeń. . . . . . . . . .
Całkowanie metoda˛ prostokatów.
˛
. . . . . . . . . . . . . . . . .
Bład
˛ całkowania metoda˛ prostokatów.
˛
. . . . . . . . . . . . . .
Całkowanie metoda˛ trapezów. . . . . . . . . . . . . . . . . . .
Położenie akcelerometru w skonstruowanej platformie mobilnej.
Zjawisko aliasingu. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
11
11
12
12
13
13
3.1
3.2
3.3
3.4
Sposób działania wirtualnego muzeum. . . . . . . . .
Przykładowy wzorzec rozpoznawany przez ARToolKit.
Architektura biblioteki ARToolKit. . . . . . . . . . . .
Algorytm wyszukiwania wzorca. . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
16
17
18
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
Schemat blokowy zbudowanej platformy mobilnej. .
Typowe umieszczenie magnesu. . . . . . . . . . . .
Rozmieszczenie pinów enkodera AS5045. . . . . . .
Komunikacja z enkoderem magnetycznym AS5045. .
Rozmieszczenie pinów akcelerometru MMA7260. .
Rozmieszczenie pinów w żyroskopie ADIS16100. . .
Ramka komunikacji z żyroskopem ADIS16100. . . .
Odpowiedź cz˛estotliwościowa filtru MAX7400. . . .
Schemat blokowy mikrokontrolera MC9S12a64. . .
Moduł z mikrokontrolerem AT91SAM7s256. . . . .
Schemat blokowy mikrokontrolera AT91SAM7s256.
Schemat układu zasilania. . . . . . . . . . . . . . . .
Moduł Bluetooth BTM-112. . . . . . . . . . . . . .
Umieszczenie enkodera w serwomechaniźmie. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
20
21
22
22
23
24
25
27
28
29
30
31
33
5.1
Aplikacja sterujaca.
˛
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
6.1
6.2
Identyfikacja serw MG-995. . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Pomiar w osi X, wartość średnia=-520,6mm, min=-528,53mm, max=512,13mm,
dokładność=16,5mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Pomiar w osi Y , wartość średnia= 262, 45mm, min= 258, 28mm, max= 266, 48mm,
dokładność= 8, 5mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Pomiar w osi Z, wartość średnia= 1508mm, min= 1483, 1mm, max= 1531, 3mm,
dokładność= 48, 5mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Pomiar w osi X, wartość średnia= −169, 15mm, min= −169, 33mm, max=
−168, 28mm, dokładność= 1, 5mm . . . . . . . . . . . . . . . . . . . . . . . 42
6.3
6.4
6.5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
74
SPIS RYSUNKÓW
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
6.18
6.19
6.20
6.21
6.22
6.23
6.24
6.25
6.26
6.27
Pomiar w osi Y , wartość średnia= 140, 01mm, min= 139, 24mm, max= 140, 2mm,
dokładność= 1mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Pomiar w osi Z, wartość średnia= 1516, 9mm, min= 1507, 4mm, max= 1519mm,
dokładność= 11, 5mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Ułożenie znaczników na płaszczyźnie. . . . . . . . . . . . . . . . . . . . . . . 43
Pomiar odległości znaczników w osi X. . . . . . . . . . . . . . . . . . . . . . 44
Pomiar odległości znaczników w osi Y . . . . . . . . . . . . . . . . . . . . . . 44
Pomiar odległości znaczników w osi Z. . . . . . . . . . . . . . . . . . . . . . 45
Odczyt przebytej drogi na podstawie enkoderów, droga rzeczywista=103cm. . . 46
Odczyt przebytej drogi na podstawie enkoderów, droga rzeczywista=148cm. . . 46
Odczyty z osi X akcelerometru w stanie spoczynku. . . . . . . . . . . . . . . . 47
Skalowanie osi X akcelerometru. . . . . . . . . . . . . . . . . . . . . . . . . . 47
Przyspieszenie liniowe platformy mobilnej. . . . . . . . . . . . . . . . . . . . 48
Obliczona droga na podstawie przyspieszeń z szumami. . . . . . . . . . . . . . 49
Przyspieszenie liniowe po uwzgl˛ednieniu wartości progowej. . . . . . . . . . . 49
Droga uzyskana z przyspieszeń po usuni˛eciu szumów. . . . . . . . . . . . . . . 50
Porównanie drogi otrzymanej z przyspieszeń i enkoderów. . . . . . . . . . . . 50
Porównanie orientacji uzyskanej z żyroskopu i enkoderów. . . . . . . . . . . . 51
Zderzenie czołowe z przeszkoda.˛ . . . . . . . . . . . . . . . . . . . . . . . . . 52
Zderzenie pod katem
˛
ostrym z przeszkoda.˛ . . . . . . . . . . . . . . . . . . . . 52
Jazda po linii prostej. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Porównanie trajektorii z kamery i enkoderów. . . . . . . . . . . . . . . . . . . 54
Jazda po okr˛egu z korekcja˛ co sekund˛e. . . . . . . . . . . . . . . . . . . . . . 55
Jazda po okr˛egu z korekcja˛ co 10 sekund. . . . . . . . . . . . . . . . . . . . . 56
A.1
A.2
A.3
A.4
A.5
Schemat płytki z enkoderem AS5045.
Schemat płyty głównej. . . . . . . . .
Schemat układu zasilania. . . . . . . .
Schemat sterownika silników. . . . . .
Schemat płytki z modułem Bluetooth.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
60
61
62
63
B.1
B.2
B.3
B.4
Widok robota z góry. . . . . . . . . . . . . . . .
Widok robota z boku. . . . . . . . . . . . . . . .
Widok otworów bocznych robota. . . . . . . . .
Umieszczenie trzeciego punktu podparcia robota.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
66
67
68
C.1
C.2
C.3
C.4
Widok robota. . . . . . . . . . . . . .
Widok z góry na płytki elektroniczne.
Umiejscowienie baterii - widok z tyłu.
Elektronika - widok z przodu. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
70
71
72
6.6
6.7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Spis tabel
4.1
4.2
4.3
4.4
4.5
Opis wyprowadzeń enkodera magnetycznego AS5045.
Opis wyprowadzeń akcelerometru MMA7260. . . . . .
Opis wyprowadzeń żyroskopu ADIS16100. . . . . . .
Opis bitów wysyłanych do żyroskopu ADIS16100. . .
Wybrane komendy konfiguracyjne modułu BTM-112. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
23
24
25
32
Bibliografia
[1] Brent A. Miller and Ph. D. Chatschik Bisdikian. Bluetooth: uwolnij si˛e od kabli. Helion,
Gliwice, 2003.
[2] Analog Devices. ADIS16100 ±300o /sec Yaw Rate Gyroscope with SPI.
[3] ARToolworks. http://www.hitl.washington.edu/artoolkit/documentation/.
[4] Atmel. AT91 ARM Thumb-based Microcontrollers.
[5] Austria Microsystems. AS5045 DataSheet.
[6] Freescale Semiconductor. MC9S12DJ64 Device User Guide, (covers also MC9S12D64,
MC9S12A64, MC9S12D32, MC9S12A32).
[7] Freescale Semiconductor. MMA7260 ±1.5g-6g Three Axis Low-g Micromachined Accelerometer.
[8] W. Jacak and K. Tchoń. Podstawy robotyki. Wydawnictwo Politechniki Wrocławskiej,
Wrocław, 1992.
[9] Maxim. 8th-Order, Lowpass, Eliptic, Switched-Capacitor Filters.
[10] A. Mazur. Model dynamiki i kinematyki manipulatora mobilnego typu RTR. raport serii
SPR 37/99, Instytut Cybernetyki Technicznej, Politechnika Wrocławska, 1999.
[11] Rayson. Class2 BC04-ext Module, BTM-112.
[12] Freescale Semiconductor. Implementing position algorithms using accelerometers. Aplication Note AN3397.
[13] STMicroelectronics. L298N, Dual Full-Bridge Driver.
[14] K. Tchoń, A. Mazur, I. Dul˛eba, R. Hossa, and R. Muszyński. Manipulatory i roboty
mobilne: modele, planowanie ruchu, sterowanie. Akademicka Oficyna Wydawnicza PLJ,
Warszawa, 2000.
[15] Łukasz Tułacz. Nawigacja robota mobilnego z użyciem czujników inercyjnych. Praca
magisterska, Politechnika Wrocławska, 2009.