c10.pdf
(
78 KB
)
Pobierz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
wiczenia 10
!
ledzenie obiektów kamer¡ NXTCam-v3 - z zasto-
sowaniem kontrolera PID
Specyfikacja kamery:
- kamera daje mo»liwo±ci ±ledzenia do o±miu ró»nych kolorów, z cz¦stotliwo±ci¡ 30
klatek na sekund¦,
- kolory s¡ definiowane po podł¡czeniu kamery kablem USB do komputera,
- mo»e by¢ wykorzystywana do ±ledzenia linii,
- dostarcza w czasie rzeczywistym informacji o ±ledzonych obiektach, podaje ich
ilo±¢, kolor, współrz¦dne i wielko±¢,
- kamera rejestruje obraz w rozdzielczo±ci (176 x 144) piksele, po podł¡czeniu do
komputera,
- rozdzielczo±¢ ±ledzonych obiektów wynosi 88 x 144, 30 klatek na sekund¦
- u»ywa protokołu komunikacji kompatybilnego z I2C
Aby uzyska¢ szczegółow¡ instrukcj¦ obsługi kamery NXTCam-v3,
wpisz w google, NXTCam-v3-User-Guide.pdf.
Definiowanie kolorów w kamerze NXTCam-v3
W celu zdefiniowania kolorów, pobieramy oprogramowanie NXTCamView,
- pobieramy sterowniki kamery NXTCam v3p0
- podł¡czamy kamer¦ do komputera za po±rednictwem kabla USB i wskazujemy ste-
rowniki podczas pierwszego podł¡czenia,
- uruchamiamy program NXTCamView
- ł¡czymy si¦ z kamer¡ przyciskiem connect,
- ustawiamy przed kamer¡ kolor, który chcemy zapisa¢ do ±ledzenia,
- robimy zdj¦cie, wciskaj¡c opcj¦ capture,
- wybieramy w zakładce colors numer buforu, w którym umie±cimy kolor,
- zaznaczamy na zdj¦ciu interesuj¡cy nas kolor przy u»yciu kursora, ustawiaj¡c po-
ziom mo»liwej rozbie»no±ci od odcienia i klikamy upload
Mo»liwo±¢ ±ledzenia wczytanych kolorów mo»na przetestowa¢, wybieraj¡c opcj¦ trac-
king i pokazuj¡c kamerze wybrane obiekty do ±ledzenia,
Obsługa kamery NXTCam-v3 w bibliotece NXT++
Kamer¦ inicjujemy w porcie IN 2, bezpo±rednio po nawi¡zaniu komunikacji z robo-
tem,
NXT
::
NxtCam
::
NxtCamInit
(&
comm
,
IN2
);
Przed u»yciem kamery mo»emy ka»dorazowo czy±ci¢ jej rejestry.
NXT
::
NxtCam
::
NxtCamFlush
(&
comm
,
IN2
);
Aby pobra¢ ilo±¢ widzianych obiektów, u»ywamy polecenia
ilob
=
NXT
::
NxtCam
::
GetNxtCamNumObjects
(&
comm
,
IN2
);
naturalnie zmienna il ob powinna by¢ wcze±niej zadeklarowana jako warto±¢ całko-
wita,
Dane pobierane z kamery maj¡ format wektorowy, st¡d deklarujemy tablic¦ wekto-
row¡ data cam nast¦puj¡co,
std
::
vector
<
std
::
vector
<
int
>>
datacam
;
Po deklaracji i wykryciu ilo±ci widzianych obiektów, nadajemy tablicy data cam
odpowiedni wymiar i czy±cimy j¡,
datacam
.
resize
(
ilob
);
for
(
int
i
=0;
i
<
datacam
.
size
();
i
++)
f
datacam
[
i
].
resize
(6);
g
for
(
int
i
=0;
i
<
ilob
;
i
++)
f
for
(
int
j
=0;
j
<6;
j
++)
f
datacam
[
i
][
j
]=0;
g
g
W kolejnym kroku wczytujemy dane o napotkanych obiektach do tablicy da-
ta cam, uwzgl¦dniane s¡ dane obiektów, które przekraczaj¡ maksymaln¡ powierzch-
ni¦ determinowan¡ przez trzeci argument funkcji GetNxtCamObjects.
datacam
=
NXT
::
NxtCam
::
GetNxtCamObjects
(&
comm
,
IN2
,0);n%
pobranie informacji z
kamery
Zakładaj¡c, »e kamera wykryła dwa obiekty przekraczaj¡ce ustalon¡ wielko±¢,
dane pobrane z kamery maj¡ format:
obiektpierwszy
:
datacam
[0][1]
współrz¦dnapikselowax
datacam
[0][1]
współrz¦dnapikseloway
datacam
[0][1]
wysoko±¢obiektu
datacam
[0][1]
szeroko±¢obiektu
datacam
[0][1]
symbolwykrytegokoloru
,
obiektdrugi
:
datacam
[1][1]
współrz¦dnapikselowax
datacam
[1][1]
współrz¦dnapikseloway
datacam
[1][1]
wysoko±¢obiektu
datacam
[1][1]
szeroko±¢obiektu
datacam
[1][1]
symbolwykrytegokoloru
,
Zadanie do wykonania
3) Zapoznaj si¦ ze sposobem u»ywania kamery NXTCam-v3 w bibliotece NXT++.
4) Napisz podprogram ±ledzenia piłki o kolorze czerwonym za pomoc¡ kamery NXT
v3, sterowanie kołami zaimplementuj przy u»yciu kontrolera PID, podprogram ±le-
dzenia koloru uruchom klawiszem T.
Plik z chomika:
monibach
Inne pliki z tego folderu:
c10.pdf
(78 KB)
Inne foldery tego chomika:
Ćw 1
Ćw 2
Ćw 3
Ćw 4
Ćw 5
Zgłoś jeśli
naruszono regulamin