Opis informatyczny użytych funkcji

Transkrypt

Opis informatyczny użytych funkcji
1
Opis informatyczny użytych funkcji
W tym dodatku przedstawiony został opis kluczowych funkcji użytych w aplikacji.
⇒ plik mainClass.h, mainClass.cpp:
Funkcje dodatkowe:
void freeImage (Image *img)
Funkcja dealokuje pamięć struktury Image.
Parametry funkcji:
1. Image *img – wskaźnik do struktury Image.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
int allocImage(Image *img,int xdim,int ydim)
Funkcja alokuje pamięć dla struktury Image.
Parametry funkcji:
1. Image *img – wskaźnik do struktury Image
2. int xdim – szerokość obrazu
3. int ydim – wysokość obrazu
Wartości zwracane:
0 – w przypadku błędnej alokacji pamięci
1 – w przypadku bezbłędnej alokacji pamięci
Wykorzystywane funkcje:
– freeImage()
void read cfg()
Funkcja przetwarza plik konfiguracyjny.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– process cfg line()
2
int get time(void)
Funkcja zwraca liczbę milisekund, które upłynęły od początku bieżącego dnia.
Parametry funkcji:
– brak –
Wartości zwracane:
(int) – liczba milisekund, która upłyneła od początku obecnego dnia
Wykorzystywane funkcje:
– brak –
void copyImage (Image *src, Image *dst)
Funkcja kopiuje zawartość jednej struktury Image do drugiej.
Parametry funkcji:
1. Image *src – wskaźnik do struktury wejściowej.
2. Image *dst – wskaźnik do struktury docelowej.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void freeImage (Image *img)
Funkcja dealokuje pamięć struktury Image.
Parametry funkcji:
1. Image *img – wskaźnik do struktury Image.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
int allocImage (Image *img,int xdim,int ydim)
Funkcja alokuje pamięć dla struktury Image.
Parametry funkcji:
1. Image *img – wskaźnik do struktury Image
2. int xdim – szerokość obrazu
2. int ydim – wysokość obrazu
Wartości zwracane:
0 – w przypadku błędnej alokacji pamięci
1 – w przypadku bezbłędnej alokacji pamięci
Wykorzystywane funkcje:
– freeImage()
3
Klasa mainClass:
Robot( QWidget *parent=0, const char *name=0 )
Konstruktor klasy Robot.
∼Robot(void)
Destruktor klasy Robot.
void insert2lista(char* text)
Funkcja dodaje do okienka informacyjnego komunikat.
Parametry funkcji:
1. char* text – łańcuch znakowy oznaczający tekst komunikatu
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void insert2lista(QString* text)
Funkcja dodaje do okienka informacyjnego komunikat.
Parametry funkcji:
1. QString* text – lancuch znakowy oznaczajacy tekst komunikatu
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
int AutProgBinaryzacji(Image *image,int where,int SumStart)
Funkcja oblicza i zwraca próg binaryzacji dla poszukiwania perspektywy.
Parametry funkcji:
1. Image *image – wskaźnik do struktury Image przechowującej aktualny obraz
2. int where – linia pozioma, na które funkcja oblicza próg
3. int SumStart – wartość startowa progu binaryzacji
Wartości zwracane:
(int) wartość progu binaryzacji
Wykorzystywane funkcje:
– brak –
4
int ProgBinaryzacji(Image *image)
Funkcja wywołuje procedurę poszukującą progu binaryzacji lub pobiera wartość progu od
użytkownika.
Parametry funkcji:
1. Image *image – wskaźnik do struktury z danymi obrazu
Wartości zwracane:
(int) próg binaryzacji
Wykorzystywane funkcje:
– AutProgBinaryzacji()
Wykorzystywane zmienne globalne:
– brak –
void Binaryzuj(Image *src, Image *dst,int prog)
Funkcja binaryzuje z ustalonym progiem obraz źródłowy (image src) i wynik zwraca w postaci obrazu wynikowego zbinaryzowanego image bin.
Parametry funkcji:
1. Image *image src – obraz źródłowy podlegający binaryzacji
2. Image *image bin – obraz wynikowy, zbinaryzowany
3. int prog – próg binaryzacji
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void Thinning(Image *src, Image *dst)
Funkcja pocienia obraz źródłowy. Na ogół obraz źródłowy to obraz krawędziowy, którego
krawędzie są pocieniane.
Parametry funkcji:
1. Image *image src – obrazek źrodłowy
2. Image *image dst – obrazek wynikowy
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– get time()
– allocImage()
– freeImage()
– stopka()
5
void Mediana(Image *img src, Image *img dst,int radius,int repeat)
Funkcja dokonuje filtracji medianowej obrazu img src. Wynik filtracji zapisywany jest do
obrazu img dst. Ustalana jest wielkość maski filtru (radius) oraz liczba powtorzeń operacji
filtorwania (repeat).
Opisywana funkcja działa jedynie dla obrazów binarnych.
Parametry funkcji:
1. Image *img src – obraz źródłowy podlegający filtracji medianowej
2. Image *img dst – obraz wynikowy
3. int radius – promień (wielkość maski) filtru medianowego
4. int repeat – liczba powtórzeń operacji filtrowania
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void Konwolucja(Image *image src, Image *image dst,int *filter)
Funkcja dokonująca konwolucji obrazu źródłowego.
Parametry funkcji:
1. Image *image src – obrazek źródłowy
2. Image *image dst – obrazek wynikowy
3. int *filter – maska filtru konwolucyjnego (rozmiar 3x3)
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void Krawedzie(Image *image med, Image *image conv)
Funkcja przetwarza obraz źródłowy na obraz krawędziowy przy użyciu maski konwolucyjnej
Laplace’a.
Parametry funkcji:
1. Image *image med – obrazek źródłowy
2. Image *image conv – obrazek wynikowy
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– Konwolucja()
6
void HoughSpace(Image *image conv, Image *hough space)
Funkcja przetwarza obraz źródłowy (najczęściej krawędziowy) na obraz transformaty Hough’a.
Parametry funkcji:
1. Image *image conv – obraz źródłowy (krawędziowy)
2. Image *hough space – obraz wynikowy (Transformata Hougha)
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– get time()
– stopka()
void Butterfly(int xdim,int ydim, Image *hough space, Image *butterfly)
Funkcja przetwarza obraz Transformaty Hougha stosując filtr motylkowy.
Parametry funkcji:
1. int xdim – szerokość obrazu źródłowego, na podstawie którego utworzono obraz Transformaty Hugha
2. int ydim – wysokość obrazu źródłowego, na podstawie którego utworzono obraz Transformaty Hugha
3. Image *hough space – obraz Transformaty Hougha
4. Image *butterfly – obraz po filtracji filtrem motylkowym
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– get time()
– stopka()
void rysujLinie(Image *image src, Accum linia,int tdim, int rdim,int kolor)
Funkcja rysuje linię na obrazie wejściowym.
Parametry funkcji:
1. Image *image src – wskaźnik na strukturę przechowującą dane o obrazie
2. Accum linia – linia w postaci parametrycznej (ρ, θ)
3. int tdim, rdim – szerokość oraz wysokość obrazu zawierającego przestrzeń Hougha
4. int kolor – kolor rysowanej linii w skali szarości (0, 255)
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
7
void find maxima(Image *hough, Accum *maxima,int nmax,int theta neigh,int
rho neigh, double angle, double angle dev, int r start,int r end,int min value)
Funkcja poszukuje maksimow w obrazie Transformaty Hougha.
Parametry funkcji:
1. Image *hough - Obraz Transformaty Hougha
2. Accum *maxima - maksima znalezione w obrazie Transformaty Hougha
3. int nmax - liczba maksimów do znalezienia
4. int theta neight - sąsiedztwo kątów (theta) pomijane podczas analizowania maksimów
5. int rho neight - sąsiedztwo odleglości (rho) pomijane podczas analizowania maksimów
6. double angle - kąt nachylenia poszukiwanych linii podczas analizowania maksimów
7. double angle dev - możliwa odchyłka od podanego kąta nachylenia linii
8. int r start - minimalny parametr „rho” analizowanych maksimów
9. int r end - maksymalny parametr „rho” analizowanych maksimów
10. int min value - minimalna wartość analizowanych maksimów (dlugość linii)
Wartości zwracane:
- brak Wykorzystywane funkcje:
- get time()
- stopka()
Point find intersection(Accum line1, Accum line2,int rdim,int tdim,int xdim,int
ydim)
Funkcja szuka punktu przecięcia linii ’line1’ oraz ’line2’.
Parametry funkcji:
1. Accum line1 - linia pierwsza w postaci parametrycznej
2. Accum line2 - linia druga w postaci parametrycznej
3. int rdim, tdim - wysokość oraz szerokość obrazu zawierającego transformate Hougha
4. int xdim, ydim - szerokość oraz wysokość obrazu źródłowego
8
Point findPerspective(Image *image src, Image *hough space, Image *image dst)
Funkcja szuka perspektywy na obrazie wejsciowym.
Parametry funkcji:
1. Image *image src - analizowany obraz wejściowy
2. Image *hough space - obraz Transformaty Hougha
3. Image *image src - obraz wyjściowy z zaznaczonymi liniami perspektywy
Wartości zwracane:
(Point) Punkt o współrzędnych perspektywy oraz wartość logiczna wyniku analizy
Wykorzystywane funkcje:
- get time()
- stopka()
- find maxima()
- rysujLinie()
- copyImage()
- koleczko()
- krzyzyk()
- find intersection()
int findDoorThreshold(Image *image src,int where,int SumStart,int *prog x)
Funkcja szuka na podanym obrazie progu binaryzacji dla poszukiwania drzwi.
Parametry funkcji:
1. Image *image src - obraz wejsciowy
2. int where - nr linii poziomej, na ktorej nastepuje analiza histogramu
3. int SumStart - wartosc poczatkowa progu
4. int &prog x - nr piksela na linii ’where’, gdzie znaleziono prog binaryzacji
Wartości zwracane:
(int) wartosc liczbowa progu binaryzacji
Wykorzystywane funkcje:
- get time()
- stopka()
9
Point findDoor(Image *image conv, Image *image dst, Image *hough space)
Funkcja znajduje drzwi na obrazie wejściowym, posługując się przy tym analiza maksimów
w przestrzeni parametrycznej Hougha.
Parametry funkcji:
1. Image *image conv - obraz wejściowy (krawędziowy)
2. Image *image dst - obraz wyjściowy z zaznaczonymi liniami tworzącymi drzwi
3. Image *hough space - obraz Transformaty Hougha
Wartości zwracane:
(Point) - współrzędne lewego górnego rogu drzwi lub punkt (0, 0) w przypadku błędu analizy
drzwi
Wykorzystywane funkcje:
- get time()
- stopka()
- allocImage()
- copyImage()
- find maxima()
- rysujLinie()
- check line cover()
- find intersection()
10
Bool check line cover(Image *img, Accum line, Accum parallel1, Accum parallel2,int tdim,int rdim,int cover factor)
Bool Robot::check line cover(Image *img, Accum line, Accum parallel1, Accum parallel2,
int tdim, int rdim, int cover factor)
Opis funkcji:
Funkcja sprawdza pokrycie linii ’line’ w granicach punktów przeciec z liniami ’parallel1’ i
’parallel2’ z punktami na binarnym obrazie wejściowym ’img’.
Parametry funkcji:
1. Image *img - wskaźnik do struktury przechowującej obraz wejściowy
2. Accum line - linia do testowania pokrycia z obrazem wejściowym
3. Accum parallel1 - linia, której przecięcie z linia ’line’ daje początek linii do analizy pokrycia
4. Accum parallel2 - linia, której przecięcie z linia ’line’ daje koniec linii do analizy pokrycia
5. int tdim - szerokość obrazu Transformaty Hougha
6. int rdim - wysokość obrazu Transformaty Hougha
7. int cover factor - wymagany procent pokrycia linii
Wartości zwracane:
0 - w przypadku pokrycia poniżej progu ’cover factor’
1 - w przypadku pokrycia powyżej lub równego wartości ’cover factor’
Wykorzystywane funkcje:
- brak Point check pixel cover xdominant (Image *img,int x,int y)
Funkcja sprawdza pokrycie jednego piksela obrazu źródłowego. Sprawdzane jest czy przynajmniej jeden z najbliższych sąsiadów punktu (x,y) istnieje (ma wartość równa zero (BLACK)).
W przypadku odnalezienia takiego sąsiada, funkcja zwraca współrzędne tego sąsiada i wynik
TRUE oraz zamienia wartość piksela na 255 (WHITE). W przeciwnym przypadku funkcja
zwraca wartość FALSE i współrzędne (0,0). Punkt (x,y) jest traktowany jako należący do
prostej typu X-dominant.
Parametry funkcji:
1. Image *img - wskaźnik do struktury przechowującej dane o obrazie wejściowym.
2. int x, int y - współrzędne punktu do sprawdzenia na obrazie źródłowym
Wartości zwracane:
(Point) - współrzędne znalezionego sąsiada oraz wynik szukania (FALSE/TRUE)
Wykorzystywane funkcje:
- brak -
11
Point check pixel cover ydominant (Image *img,int x,int y)
Funkcja sprawdza pokrycie jednego piksela obrazu źródłowego. Sprawdzane jest czy przynajmniej jeden z najbliższych sąsiadów punktu (x,y) istnieje (ma wartość równa zero (BLACK)).
W przypadku odnalezienia takiego sąsiada, funkcja zwraca współrzędne tego sąsiada i wynik
TRUE oraz zamienia wartość piksela na 255 (WHITE). W przeciwnym przypadku funkcja
zwraca wartość FALSE i współrzędne (0,0). Punkt (x,y) jest traktowany jako należący do
prostej typu Y-dominant.
Parametry funkcji:
1. Image *img - wskaźnik do struktury przechowującej dane o obrazie wejściowym.
2. int x, int y - współrzędne punktu do sprawdzenia na obrazie źródłowym
Wartości zwracane:
(Point) - współrzędne znalezionego sąsiada oraz wynik szukania (FALSE/TRUE)
Wykorzystywane funkcje:
- brak int WallDetect(Image *image src, Accum linia,int rdim,int tdim)
funkcja sprawdzająca czy przy podanej linii nie znajduje się ciemny pas płytek wskazujący
na istnienie w pobliżu ściany
Parametry funkcji:
1. Image *image src - wskaźnik do struktury zawierającej analizowany obraz
2. Accum linia - linia perspektywy, wzdłuż której bada się występowanie ciemnego pasa
płytek
Wartości zwracane:
0 - gdy nie ma zagrożenia,
1 - gdy ściana znajduje się w pobliżu,
-1 - sytuacja niepewna.
Wykorzystywane funkcje:
- insert2lista()
- stopka()
- get time()
- koleczko()
12
void histogram(Image *image src)
Funkcja liczy histogram obrazka źródłowego.
Parametry funkcji:
1. Image *image src – wskaźnik do struktury przechowującej obraz źródłowy
Wartości zwracane:
- brak Wykorzystywane funkcje:
- insert2lista()
- stopka()
- get time()
- allocImage()
void wyrownaj histogram(Image *image src, Image *image dst)
Funkcja poprawia jakość obrazu źródłowego poprzez wyrównanie jego histogramu.
Parametry funkcji:
1. Image *image src – wskaźnik do struktury przechowującej obraz źródłowy.
2. Image *image dst – wskaźnik do struktury, która zawiera obraz histogramu po dokonaniu
korekty.
Wartości zwracane:
- brak Wykorzystywane funkcje:
- insert2lista()
- get time()
- stopka()
- copyImage()
- allocImage()
- histogram()
void NalozObrazki(Image *img1 fix, Image *img2 )
Nadpisuje wartości pikseli obrazu img2 na obraz img1 fix.
Parametry funkcji:
1. Image *img1 fix – obraz na który nakładany jest drugi obraz.
2. Image *img2 – obraz, który jest nakładany na obraz img1 fix.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
13
int grabImage(Image *image loaded)
Funkcja pobiera obraz z karty TV i przepisuje klatkę do struktury podanej jako parametr.
Parametry funkcji:
1. Image *image loaded – wskaźnik do struktury do której zapisywana jest aktywna klatka
obrazu
Wartości zwracane:
1 – w przypadku bezbłędnego pobrania danych z karty TV
0 – w przypadku pojawienia się błędu akwizycji danych z karty TV
Wykorzystywane funkcje:
– insert2lista()
– get time()
– freeImage()
– allocImage()
– stopka()
bool loadImage(const char *fileName )
Funkcja otwiera plik podany w parametrze i przepisuje jej zawartość do struktury image loaded.
Parametry funkcji:
1. const char* fileName – nazwa pliku wejściowego
Wartości zwracane:
0 – w przypadku pojawienia się błędu w trakcie odczytu danych
1 – w przypadku bezbłędnego odczytu danych z pliku
Wykorzystywane funkcje:
– insert2lista()
– QImage2Image()
– allocImage()
– copyImage()
void saveImage img(char* filename, Image *image src)
Funkcja zapisuje obraz ze struktury Image do pliku.
Parametry funkcji:
1. char* filename – nazwa pliku wynikowego
2. Image *image src – wskaźnik do struktury z danymi
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
14
void QImage2Image(Image *obrazek)
Funkcja kopiuje obraz ze struktury Image do obiektu QImage (image).
Parametry funkcji:
1. Image *obrazek – wskaźnik do struktury Image
Wartości zwracane:
- brak Wykorzystywane funkcje: - brak void Image2QImage(Image* obrazek)
Funkcja kopiuje obrazek typu Image do obiektu typu QImage.
Parametry funkcji:
1. Image* obrazek – obraz typu Image do przekopiowania
Wartości zwracane:
- brak Wykorzystywane funkcje:
– get time()
– stopka()
void info(char* Tekst)
Funkcja wyswietla okienko „pop–up” z informacj dla użytkownika.
Parametry funkcji:
1. char* Tekst - tekst wiadomości do wyswietlenia w okienku
Wartości zwracane:
- brak Wykorzystywane funkcje:
- brak void info(QString Tekst)
Funkcja wyswietla okienko „pop–up” z informacj dla użytkownika.
Parametry funkcji:
1. QString Tekst - tekst wiadomości do wyswietlenia w okienku
Wartości zwracane:
- brak Wykorzystywane funkcje:
- brak -
15
void przytnij(Image *image,int top,int bottom)
Przycina obraz wejściowy od góry i od dołu o zadaną liczbę pikseli. (Zamalowuje je na kolor
biały).
Parametry funkcji:
1. Image *image – obraz wejściowy
2. int top – liczba pikseli do przycięcia od góry
3. int bottom – liczba pikseli do przycięcia od dołu
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void koleczko(int x,int y,int r, Image *obrazek,int kolor)
Rysuje kółeczko o środku w punkcie (x,y) i promieniu r i kolorze ’kolor’ na obrazku obrazek.
Parametry funkcji:
1. int x, int y – współrzędne środka kółeczka
2. int r – promien kółeczka
3. Image *obrazek – wskaźnik do struktury przechowującej dane o obrazku.
4. int kolor – kolor rysowanego kółeczka
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void krzyzyk(int x,int y,int r, Image *image,int kolor)
Rysuje krzyżyk w punkcie (x,y) i „promieniu” r i kolorze ’kolor’ na obrazku obrazek .
Parametry funkcji:
1. int x, int y – współrzędne środka krzyżyka
2. int r – promien krzyżyka
3. Image *obrazek – wskaźnik do struktury przechowującej dane o obrazku.
4. int kolor – kolor rysowanego krzyżyka
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
16
void strzalka v(int x,int y,int r, Image *image,int kolor)
Rysuje strzałkę pionową o środku w punkcie (x,y), długosc r i kolorze ’kolor’ na obrazku
obrazek.
Parametry funkcji:
1. int x, int y – współrzędne środka strzałki
2. int r – promien strzałki
3. Image *obrazek – wskaźnik do struktury przechowującej dane o obrazku.
4. int kolor – kolor rysowanego strzałki
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void setMenuItemFlags()
Funkcja ustawia flagi obiektów paska Menu.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void stopka(char* opis,int timestamp start, enum STOPKA enum s enum)
Opis funkcji:
Wyświetla informacje na pasku informacyjnym i/lub w oknie terminala. Funkcja wywoływana jest zazwyczaj na końcu funkcji. Pobiera jako parametr znacznik czasowy początku
funkcji i na podstawie wyniku funkcji get time() oblicza czas trwania funkcji.
Parametry funkcji:
1. char* opis – tekst informacji
2. int timestamp start – znacznik czasowy początku funkcji
3. enum STOPKA enum:
STOPKA ALL – wyświetla informacje w oknie informacyjnym oraz oknie terminala
STOPKA TERMINAL – wyświetla informacje tylko w oknie terminala
STOPKA VIEWER – wyświetla informacje tylko w oknie informacyjnym
Wartości zwracane:
- brak Wykorzystywane funkcje:
– get time()
– insert2lista()
17
Bool robotNaSrodek(void)
Funkcja próbuje ustawić robota na środku korytarza i wzdłuż ścian bocznych.
Parametry funkcji:
- brak Wartości zwracane:
0 (FALSE) - w przypadku porazki
1 (TRUE) - w przypadku sukcesu
Wykorzystywane funkcje:
– SLOT SzukajKierunku()
– SLOT WallDetect()
– SLOT pozycjonujKamere()
– robot korekta()
void MedianaGrayScale(Image *img src, Image *img dst,int radius,int repeat)
Funkcja dokonuje filtracji medianowej obrazu img src. Wynik filtracji zapisywany jest do
obrazu img dst. Ustalana jest wielkość maski filtru (radius) oraz liczba powtórzeń operacji
filtrowania (repeat). Opisywana funkcja działa jedynie dla obrazów binarnych.
Parametry funkcji:
1. Image *img src – obraz źródłowy podlegający filtracji medianowej
2. Image *img dst – obraz wynikowy
3. int radius – promień (wielkość maski) filtru medianowego
4. int repeat – liczba powtórzeń operacji filtrowania
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
18
Bool Image2Image(Image *src, Image *dst)
Funkcja kopiuje zawartość obrazka src do dst i dst do src. Nie używa kopiowania wskaźników
danych, tylko fizycznie kopiuje wartości.
Parametry funkcji:
1. Image *src – pierwszy obraz
2. Image *dst – drugi obraz
Wartości zwracane:
TRUE – w przypadku bezbłędnego zakończenia funkcji
FALSE – w przypadku powstania błędu
Wartości zwracane:
- brak Wykorzystywane funkcje:
- brak findDoorType szukajDrzwiIQ(int ktory, enum DOOR IQ how)
Funkcja szuka inteligentnie drzwi na obrazie źródłowym, posługując się trzema „przybliżeniami”.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT szukajDrzwi()
– SLOT szukajDrzwiLand1()
– findDoorThreshold()
findDoorType SLOT szukajDrzwiIQ(enum DOOR IQ how)
Wywołuje funkcję szukajDrzwiIQ, poszukującą inteligentnie drzwi na obrazie źródłowym,
posługując się trzema „przybliżeniami”.
Parametry funkcji:
1. enum DOOR IQ how
Wartości zwracane:
– findDoorType
Wykorzystywane funkcje:
– szukajdrzwiIQ()
19
int getDoorNumber(int ileDrzwi, typeDrzwi *drzwi, QString text)
Funkcja pobiera od użytkownika numer drzwi oraz sprawdza czy użytkownik podał poprawny
numer (znajdujący się w bazie)
Parametry funkcji:
1. int ileDrzwi – liczba drzwi na pseudomapie ’drzwi’
2. typeDrzwi *drzwi – wskaźnik na strukturę przechowującą dane o drzwiach na mapie
korytarza (pseudo mapa)
3. QString text - informacja dla użytkownika
Wartości zwracane:
int – indeks drzwi, które wskazał użytkownik
Wykorzystywane funkcje:
– brak –
int checkDoorBetween(int D1,int D2,int ileDrzwi, typeDrzwi *drzwi)
Funkcja sprawdza czy miedzy drzwiami o indeksie D1 i D2 nie ma drzwi pośrednich. Jeśli
są, zwraca ich indeks. Indeksy drzwi pochodzą z pseudomapy drzwi ’drzwi’. Jeśli drzwi D1
i D2 znajdują się po rożnych stronach korytarza, funkcja zwraca indeks drzwi znajdujących
się po stronie D2, najbliżej D1.
Parametry funkcji:
1. int D1 – indeks drzwi początkowych
2. int D2 – indeks drzwi końcowych
3. int ileDrzwi – ilość drzwi na pseudomapie ’drzwi’
4. typeDrzwi *drzwi - wskaźnik na strukturę przechowującą dane o drzwiach znajdujących
sią na mapie
Wartości zwracane:
int – indeks drzwi pośrednich pomiędzy D1 i D2
Wykorzystywane funkcje:
– brak –
void SLOT ImageSrc2ImageMed(void)
Funkcja zamienia ze sobą wartości obrazków image src oraz image med.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– Image2Image()
20
void SLOT MedianaGrayScale()
Funkcja wywołuje procedurę filtracji medianowej obrazu ’image src’.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void SLOT 4in1(void)
Funkcja pokazuje zawartość obrazków im1..im4 w oknach aplikacji.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– Image2QImage()
– setMenuItemFlags()
void SLOT openFile()
Funkcja otwiera obraz z pliku.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– loadImage()
– SLOT 4in1()
21
Point SLOT findPerspective()
Funkcja szuka na obrazi źródłowym perspektywy, jaką tworzą płytki tworzące podłogę
Parametry funkcji:
– brak –
Wartości zwracane:
– Point – struktura przechowująca punkt o współrzędnych punktu zbiegu perspektywy (Vanishing Point) lub punkt (0, 0) oznaczający błąd analizy perspektywy.
Wykorzystywane funkcje:
– get time()
– allocImage()
– saveImage img()
– AutProgBinaryzacji()
– przytnij()
– Binaryzuj()
– Mediana()
– Konwolucja()
– HoughSpace()
– findPerspective()
– insert2lista()
– stopka()
void SLOT wyrownajHistogram()
Funkcja wyrównuje histogram obrazu źródłowego, poprawiając jego jakość.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– wyrownaj histogram()
– copyImage()
– SLOT 4in1()
22
Point SLOT szukajDrzwi()
Funkca szuka drzwi (zamkniętych) na obrazie źródłowym (image src).
Parametry funkcji:
– brak –
Wartości zwracane:
– Point – punkt zawierający współrzędne lewego górnego rogu drzwi lub punkt (0, 0) w przypadku bledu analizy.
Wykorzystywane funkcje:
– get time()
– insert2lista()
– saveImage img()
– findDoorTreshold()
– Binaryzuj()
– Mediana()
– Konwolucja()
– HoughSpace()
– findDoor()
– koleczko()
– krzyzyk()
– allocImage()
– freeImage()
– insert2lista()
– stopka()
23
WYNIK SLOT szukajDrzwiLand(void)
Funkcja próbuje dopasować wzorzec lewego górnego narożnika drzwi do klatki przetwarzanego obrazu źródłowego.
Parametry funkcji:
– brak –
Wartości zwracane:
– struct WYNIK – struktura przechowująca dane o dopasowywanym wzorcu oraz wynik
dopasowania
Wykorzystywane funkcje:
– get time()
– insert2lista()
– rozpoznaj()
– LoadPGM()
– freeImage()
– koleczko()
– krzyzyk()
– SLOT openFile()
– SLOT 4in1()
WYNIK SLOT szukajDrzwiLand1()
Funkcja wysołuje procedurę poszukującą drzwi posługując się landmarkiem lewego górnego
narożnika drzwi pobranego z kadru, na którym drzwi są obserwowane pod kątem pomiędzy
0◦ − −90◦ .
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT szukajDrzwiLand()
WYNIK SLOT szukajDrzwiLand2()
Funkcja wysołuje procedurę poszukującą drzwi posługując się landmarkiem lewego górnego
narożnika drzwi pobranego z kadru, na którym drzwi są obserwowane pod kątem około 90◦ .
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT szukajDrzwiLand()
24
findDoorType SLOT szukajDrzwiIQ()
Parametry funkcji:
Wywołuje funkcję szukajDrzwiIQ, poszukującą inteligentnie drzwi na obrazie źródłowym,
posługując się trzema „przybliżeniami”.
Parametry funkcji:
– brak –
Wartości zwracane:
– findDoorType
Wykorzystywane funkcje:
– szukajdrzwiIQ()
Bool SLOT grabImage()
Funkcja pobiera obraz z kamery (z karty TV).
Parametry funkcji:
– brak –
Wartości zwracane:
0 – w przypadku błędu pobierania klatki obrazu
1 – w przypadku poprawnego pobrania obrazu
Wykorzystywane funkcje:
– grabImage()
– allocImage()
– copyImage()
– SLOT 4in1()
25
Bool SLOT SzukajKierunku()
Funkcja analizuje perspektywę podłogi korytarza i na podstawie punktu zbiegu perspektywy (Vanishing point) próbuje skorygować ułożenie robota tak, aby robot stał wzdluż ścian
korytarza (równolegle do ścian).
Parametry funkcji:
– brak –
Wartości zwracane:
0 – gdy pozycjonowanie przebiegło z błędem
1 – gdy pozycjonowanie przebiegło bez problemów
Wykorzystywane funkcje:
– get time()
– robot on()
– robot ruch()
– kamera on()
– kamera ruch()
– kamera ruch ac()
– SLOT grabImage()
– SLOT findPerspective()
– SLOT pozycjonujKamere()
– insert2lista()
void SLOT KorektaRight()
Koryguje ustawienie robota przesuwając go rownolegle o kilkadziesiąt centymetrów w prawo.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– get time()
– insert2lista()
– robot korekta()
– stopka()
26
void SLOT KorektaLeft()
Koryguje ustawienie robota przesuwając go rownolegle o kilkadziesiąt centymetrów w lewo.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– get time()
– insert2lista()
– robot korekta()
– stopka()
void SLOT loaded2src()
Kopiuje obraz ze struktury ’image loaded’ (ostatnio załadowana lub pobrana z karty TV
klatka obrazu) do struktury ’image src’ (bieżący obraz podlegający obróbce).
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– freeImage()
– allocImage()
– copyImage()
27
WYNIK SLOT szukajWzorca()
Funkcja próbuje dopasować wzorzec landmarku pobrany z pliku wzorca do klatki przetwarzanego obrazu źródłowego.
Parametry funkcji:
– brak –
Wartości zwracane:
– struct WYNIK - struktura przechowująca dane o dopasowywanym wzorcu oraz wynik dopasowywania
Wykorzystywane funkcje:
– get time()
– insert2lista()
– rozpoznaj()
– LoadPGM()
– freeImage()
– koleczko()
– krzyzyk()
– SLOT openFile()
– SLOT 4in1()
void SLOT zerujGLOBALskala()
Zeruje wartość zmiennej ’GLOBAL skala’.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
28
Bool SLOT pozycjonujKamere()
Funkcja pozycjonuje kamerę do położenia, przy którym kamera rejestruje w środku kadru
landmark umieszczony na korpusie robota.
Parametry funkcji:
– brak –
Wartości zwracane:
0 – błąd podczas pozycjonowania kamery
1 – pozycjonowanie kamery wykonane poprawnie
Wykorzystywane funkcje:
– get time()
– robot on()
– robot reset()
– kamera on()
– kamera off()
– kamera ruch()
– cpos()
– SLOT GrabImage()
– SLOT SzukajWzorca()
– SLOT 4in1()
– insert2lista()
– stopka()
void SLOT saveImage1(int item)
Funkcja wywołuje funkcje zapisu zawartości pierwszego okienka aplikacji do pliku, gdzie
identyfikator przesyłany w funkcji jako parametr to identyfikator formatu pliku wynikowego.
Parametry funkcji:
1. int item – identyfikator frmatu wynikowego pliku
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT saveImage any()
29
void SLOT saveImage2(int item)
Funkcja wywołuje funkcje zapisu zawartości drugiego okienka aplikacji do pliku, gdzie identyfikator przesyłany w funkcji jako parametr to identyfikator formatu pliku wynikowego.
Parametry funkcji:
1. int item – identyfikator frmatu wynikowego pliku
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT saveImage any()
void SLOT saveImage3(int item)
Funkcja wywołuje funkcje zapisu zawartości trzeciego okienka aplikacji do pliku, gdzie identyfikator przesyłany w funkcji jako parametr to identyfikator formatu pliku wynikowego.
Parametry funkcji:
1. int item – identyfikator frmatu wynikowego pliku
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT saveImage any()
void SLOT saveImage4(int item)
Funkcja wywołuje funkcje zapisu zawartości czwartego okienka aplikacji do pliku, gdzie identyfikator przesyłany w funkcji jako parametr to identyfikator formatu pliku wynikowego.
Parametry funkcji:
1. int item – identyfikator frmatu wynikowego pliku
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT saveImage any()
30
void SLOT saveImage any(Image* im, const char* fmt)
Funkcja zapisuje do pliku podany w parametrze obraz w formacie podanym jako drugi parametr funkcji.
Parametry funkcji:
1. Image* im – obraz do zapisania
2. const char* fmt – kod formatu wynikowego pliku
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– Image2QImage()
– saveImage img()
int SLOT WallDetect()
Funkcja sprawdzająca czy robot nie znajduje się zbyt blisko jednej ze ścian.
Parametry funkcji:
– brak –
Wartości zwracane:
0 – gdy brak zagrożenia,
1 – gdy występuje zagrożenie z lewej strony,
2 – gdy występuje zagrożenie z prawej strony,
-1 – sytuacja niepewna
Wykorzystywane funkcje:
– insert2lista()
– get time()
– stopka()
– WallDetect()
void SLOT JazdaAutonomiczna()
Główna funkcja obsługująca autonomiczną pracę robota.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– robotNaSrodek()
31
findDoorType SLOT jedzSzukajDrzwi()
Funkcja szuka inteligentnie drzwi na korytarzu najbliżej robota.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT jedzSzukajDrzwi()
findDoorType SLOT jedzSzukajDrzwi(int CAM DOOR FIRST X ,
int CAM DOOR FIRST Y , int PARAM d=1000)
Funkcja szuka inteligentnie drzwi na korytarzu najbliżej robota.
Parametry funkcji:
1. int CAM DOOR FIRST X – początkowe położenie kamery w jednostkach języka ALBATROS w płaszczyźnie X, 2. int CAM DOOR FIRST Y – początkowe położenie kamery
w jednostkach języka ALBATROS w płaszczyźnie Y, 3. int PARAM d – wartość korekty
przód/tył przy poszukiwaniu drzwi (wartością domyślną jest 1000) Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– SLOT szukajDrzwiIQ()
– findDoorThreshold()
void doOption(int)
Funkcja aktualizuje obiekt paska menu.
Parametry funkcji:
1. int item – identyfikator obiektu paska menu do zaktualizowania.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– setMenuItemFlags()
32
void SLOT generujMape(int IleDrzwi, typeDrzwi *drzwi, int Dakt, int Ddst tmp,
int Ddst)
Funkcja generuje mapę korytarza na podstawie mapy rozmieszczenia drzwi.
Parametry funkcji:
1. int ileDrzwi – liczba drzwi na korytarzu,
2. typeDrzwi *drzwi – struktura przechowująca dane o drzwiach na korytarzu,
3. int akt – numer drzwi aktywnych (przy których stoi robot),
4. int cel tmp – numer drzwi docelowych, do których ma dojechać robot na drodze do drzwi
’cel’,
5. int cel – numer drzwi docelowych, do których ma dojechać robot.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– allocImage()
– QImage2Image()
– loadQImage()
int SLOT generujTrajektorie(int D1, int Ddst, int ileDrzwi, typeDrzwi *drzwi,
int *alpha)
Funkcja ma za zadanie przeprowadzić robota bezkolizyjnie od drzwi o indeksie D1 do drzwi
o numerze Ddst.
Parametry funkcji:
1. int D1 – indeks drzwi początkowych,
2. int D2 – indeks drzwi końcowych,
3. int ileDrzwi – ilość drzwi na pseudomapie ’drzwi’,
4. typeDrzwi *drzwi – wskaźnik na strukturę przechowującą dane o drzwiach znajdujących
się na mapie.
Wartości zwracane:
int – indeks drzwi, przy których stoi robot na końcu ruchu
Wykorzystywane funkcje:
– brak –
33
void listbox1clear()
Funkcja czyści okno informacyjne.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void bttv onoff()
Funkcja włącza lub wyłącza okno podglądu obrazu z kamery.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– setMenuItemFlags()
⇒ plik bttv.h, bttv.cpp:
int device open(int *fd)
Otwiera urządzenie BTTV w trybie ReadWrite.
Parametry funkcji:
1. int *fd – deskryptor pliku–urządzenia BTTV.
Wartości zwracane:
– true/false
Wykorzystywane funkcje:
– brak –
34
void device init(int *fd, int verbose)
Inicjalizuje strukturę urządzenia BTTV oraz umożliwia wyświetlanie szeregu informacji
o urządzenia.
Parametry funkcji:
1. int *fd – deskryptor pliku–urządzenia BTTV.
2. int verbose – ustawia flagę czy wyświetlane mają być szczegółowe informacje o urządzeniu
(verbose=1).
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void device close(int *fd)
Zamyka urządzenie BTTV.
Parametry funkcji:
1. int *fd – deskryptor pliku–urządzenia BTTV.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
int main bttv()
Główna funkcja inicjalizująca pętlę przechwytującą obraz z kamery i przekazującą obraz do
okna aplikacji.
Parametry funkcji:
– brak –
Wartości zwracane:
– true/false – funkcja zakończona z powodzeniem lub z błędem.
Wykorzystywane funkcje:
– device init()
– device open()
– zapisz raw2file()
– device close()
35
int zapisz raw2file(char *buf, unsigned int width, unsigned int height, unsigned
int bpp)
Zapisuje aktualną ramkę obrazu do pliku.
Parametry funkcji:
1. char *buf – bufor obrazu do zapisania, 2. unsigned int width – szerokość obrazu, 3. unsigned
int height – wysokość obrazu, 4. unsigned int bpp – liczba bitów informacji na każdy piksel
obrazu. Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
⇒ plik display.h, display.cpp:
void display init(int verbose)
Ustawia parametry okna graficznego wyświetlającego obraz z kamery.
Parametry funkcji:
1. int verbose - określa czy wyświetlać szczegółowe informacje na ekranie.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void display window* display window alloc(ushort width, ushort height, char
*title)
Inicjalizuje okno wyświetlające obraz z kamery.
Parametry funkcji:
1. ushort width – szerokość okna,
2. ushort height – wysokość okna,
3. char *title – tytuł okna.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
36
void display window refresh(display window* w)
Odświeża obraz okna.
Parametry funkcji:
1. display window* w – uchwyt okna.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void display window process events(display window *w)
Pozwala na obsłużenie zdarzeń związanych z oknem.
Parametry funkcji:
1. display window *w - uchwyt okna.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void display window insert pixel(display window *w,int r, int g, int b, unsigned
x, unsigned y)
Pozwala na wyświetlenie piksela na obrazie.
Parametry funkcji:
1. display window *w - uchwyt okna.
2. int r – składowa czerwona piksela,
3. int g – składowa zielona piksela,
4. int b – składowa niebieska piksela,
5. unsigned x – współrzędna pozioma wstawianego piksela,
6. unsigned y – współrzędna pionowa wstawianego piksela.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
37
void display window draw cross(display window *w, int r, int g, int b, unsigned
x, unsigned y)
Zazanacza krzyżyk na oknie.
Parametry funkcji:
1. display window *w - uchwyt okna.
2. int r – składowa czerwona wstawianego krzyżyka,
3. int g – składowa zielona wstawianego krzyżyka,
4. int b – składowa niebieska wstawianego krzyżyka,
5. unsigned x – współrzędna pozioma środka wstawianego krzyżyka,
6. unsigned y – współrzędna pionowa środka wstawianego krzyżyka.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void display window draw fat line(display window *w, int r, int g, int b,unsigned
x1, unsigned y1, unsigned x2, unsigned y2)
Rysuje linię prostą (odcinek) – linia gruba.
Parametry funkcji:
1. display window *w - uchwyt okna.
2. int r – składowa czerwona linii,
3. int g – składowa zielona linii,
4. int b – składowa niebieska linii,
5. unsigned x1 – współrzędna pozioma początku linii,
6. unsigned y1 – współrzędna pionowa początku linii.
7. unsigned x2 – współrzędna pozioma końca linii,
8. unsigned y2 – współrzędna pionowa końca linii.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
38
void display window draw line(display window *w, int r, int g, int b, unsigned
x1, unsigned y1, unsigned x2, unsigned y2)
Rysuje linię na oknie – linia cienka.
Parametry funkcji:
1. display window *w - uchwyt okna.
2. int r – składowa czerwona linii,
3. int g – składowa zielona linii,
4. int b – składowa niebieska linii,
5. unsigned x1 – współrzędna pozioma początku linii,
6. unsigned y1 – współrzędna pionowa początku linii.
7. unsigned x2 – współrzędna pozioma końca linii,
8. unsigned y2 – współrzędna pionowa końca linii.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void display window draw image(display window* w, const unsigned char* image)
Wyświetla w oknie obraz w skali szarości.
Parametry funkcji:
1. display window *w - uchwyt okna.
2. const unsigned char* image – wskaźnik do obrazu.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
void display window close(display window *w)
Zamyka okno graficzne.
Parametry funkcji:
1. display window *w - uchwyt okna.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
39
⇒ plik funkcje.h, funkcje.cpp:
WYNIK rozpoznaj(Image *image src, Image *wzorzec, Bool duzy, float skala od,
float skala do)
Funkcja dopasowuje wzorzec ’wzorzec’ do obrazu źródłowego ’image src’.
Parametry funkcji:
1. Image *image src – wskaźnik na obrazek źródłowy,
2. Image *wzorzec – wskaźnik na obrazek wzorca,
3. Bool duzy – określa sposób poszukiwania:
0 – poszukuje standardowymi parametrami
1 – najpierw poszukuje na zmniejszonym obrazie źródłowym i wzorcu, a później w pobliżu
miejsca, gdzie zidentyfikowano na obrazie wzorzec, poszukuje się wzorca na dużym obrazie.
2 – poszukuje wzorca jedynie na zmniejszonym obrazie źródłowym (zmniejszonym wzorcem.
4. float skala od – początkowa skala, która przeskalowuje się wzorzec, aby go dopasować do
obrazu źródłowego.
5. float skala do – końcowa skala, która przeskalowuje się wzorzec, aby go dopasować do
obrazu źródłowego.
Wartości zwracane:
WYNIK – struktura zawierająca informację o dopasowaniu.
Wykorzystywane funkcje:
– skaler()
– allocImage()
– get time()
– korelacja()
– SavePGM()
40
double korelacja(Byte **scena, Byte **wzorzec, int rsceny, int rwzorca, int krok,
int start i, int start j, struct WYNIK *p wyn)
Funkcja sprawdza korelację obrazu ’wzorzec’ do fragmentu obrazu ’scena’.
Parametry funkcji:
1. Byte **scena – obszar poszukiwań (szerokość == wysokość),
2. Byte **wzorzec – obraz wzorca do sprawdzenia (szerokość == wysokość),
3. int rsceny – rozmiar (wysokość i szerokość) obrazu ’scena’,
4. int rwzorca – rozmiar (wysokość i szerokość) obrazu ’wzorzec’,
5. int krok – krok, o jaki (ile pikseli) jest przesuwany wzorzec na obrazie [0,15],
6. int start i – współrzędna ’x’ (kolumna) od jakiej ma być przesuwany wzorzec,
7. int start j – współrzędna ’y’ (wiersz) od jakiej ma być przesuwany wzorzec,
8. WYNIK *p wyn – wskaźnik do struktury WYNIK, która zawiera informacje o wyniku
poszukiwań wzorca na obrazie.
Wartości zwracane:
– (double) – maksymalna korelacja
Wykorzystywane funkcje:
– brak –
int skaler(Byte **obraz, Byte **wynik, int rozmiar obrazu, float skala)
Funkcja skaluje obraz ’obraz’ o rozmiarze ’rozmiar obrazu’ w skali ’skala’ i zapisuje wynik
do obrazu ’wynik’.
Parametry funkcji:
1. Byte **obraz – obraz źródłowy.
2. Byte **wynik – obraz wynikowy.
3. int rozmiar obrazu – rozmiar obrazu (szerokość i wysokość) źródłowego.
4. float skala – skala obrazu do przeskalowania.
Wartości zwracane:
– (int) – rozmiar obrazu wynikowego (szerokość i wysokość)
Wykorzystywane funkcje:
– brak –
41
int SaveRAW(char *nazwa, Image *tab)
Zapisuje obraz ’tab’ do pliku ’nazwa’ w formacie RAW.
Parametry funkcji:
1. char *nazwa – nazwa pliku wynikowego.
2. Image *tab – wskaźnik na strukturę obrazu.
Wartości zwracane:
– int – wartość logiczna wykonanej operacji.
Wykorzystywane funkcje:
– brak –
int SavePGM(char *nazwa, Image *tab)
Zapisuje obraz ’tab’ do pliku ’nazwa’ w formacie PGM.
Parametry funkcji:
1. char *nazwa – nazwa pliku wynikowego.
2. Image *tab – wskaźnik na strukturę obrazu.
Wartości zwracane:
– int – wartość logiczna wykonanej operacji.
Wykorzystywane funkcje:
– brak –
int SavePGM(char *nazwa, Byte **tab, int rozm)
Zapisuje obraz ’tab’ do pliku ’nazwa’ w formacie PGM w zdefiniowanym rozmiarze (szerokość=wysokość=rozm).
Parametry funkcji:
1. char *nazwa – nazwa pliku wynikowego.
2. Image *tab – wskaźnik na strukturę obrazu.
3. int – rozmiar (szerokość i wysokość) obrazu wynikowego.
Wartości zwracane:
– int – wartość logiczna wykonanej operacji.
Wykorzystywane funkcje:
– brak –
42
int LoadPGM(char *nazwa, Image *tab)
Otwiera plik ’nazwa’ w formacie PGM i zapisuje jego zawartość do tablicy char.
Parametry funkcji:
1. char *nazwa – nazwa pliku wynikowego.
2. Image *tab – wskaźnik na strukturę odczytanego obrazu.
Wartości zwracane:
– int – wartość logiczna wykonanej operacji.
Wykorzystywane funkcje:
– brak –
int LoadRAW(char *nazwa, Image *tab)
Otwiera plik ’nazwa’ w formacie RAW i zapisuje jego zawartość do tablicy char.
Parametry funkcji:
1. char *nazwa – nazwa pliku wynikowego.
2. Image *tab – wskaźnik na strukturę odczytanego obrazu.
Wartości zwracane:
– int – wartość logiczna wykonanej operacji.
Wykorzystywane funkcje:
– brak –
⇒ plik rs232.h, rs232.cpp:
int RS232 start(char* com port)
Funkcja ustanawia połączenie RS232 z robotem.
Parametry funkcji:
1. char* com port – nazwa portu COM w Linuxie (np. //dev//ttyS0)
Wartości zwracane:
0 – błąd
1 – sukces
Wykorzystywane funkcje:
– brak –
43
int RS232 stop(void)
Funkcja zamyka połączenie RS232 z robotem.
Parametry funkcji:
1 – poprawne zamknięcie portu.
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– brak –
int robot reset(void)
Funkcja resetuje system sterujący robotem.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– wyslij odbierz()
int robot on(enum robot on rodzaj ruchu)
Funkcja włącza napęd robota ustawiając jedną z pętli sterowania.
Parametry funkcji:
1. enum robot on rodzaj ruchu – rodzaj pętli sterowania:
– SERV
– MOTN
– MOTV
Wartości zwracane:
1 – (zawsze) sukces
Wykorzystywane funkcje:
– robot reset()
– robot on()
– robot off()
– wyslij odbierz()
44
int robot off(void)
Funkcja zamyka aktywną pętlę sterowania robotem.
Parametry funkcji:
– brak –
Wartości zwracane:
1 – sukces wykonania
Wykorzystywane funkcje:
– wyslij odbierz()
void kamera on(void)
Funkcja włącza sterowanie głowicy z kamerą.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– wyslij odbierz()
void kamera off(void)
Funkcja kończy możliwość sterowania głowicą z kamerą.
Parametry funkcji:
– brak –
Wartości zwracane:
– brak –
Wykorzystywane funkcje:
– wyslij odbierz()
45
char* wyslij odbierz(char* komenda, enum opoznienie delay, Bool full, bool retransmisja)
Funkcja wysyła rozkaz do sterownika robota (poprzez funkcje wyslij(. . . )) oraz odbiera informacje zwrotne od robota.
Parametry funkcji:
char* komenda - komenda dla robota w postaci ciagu tekstowego 1. enum opoznienie delay
– typ opóźnienia stosowanego po wysłaniu rozkazu,
2. Bool full: (domyślnie FALSE),
– TRUE – oczekuje pełnej odpowiedzi od robota,
– FALSE – czeka na jakikolwiek znak zwrotny od robota,
5. Bool retransmisja: (domyślnie FALSE),
– TRUE – pozwala na retransmisję rozkazu po błędzie transmisji,
– FALSE – nie pozwala retransmitować rozkazów.
Wartości zwracane:
– łanńuch znakowy – odpowiedź przesłana od robota lub ciąg pusty oznaczający błąd transmisji.
Wykorzystywane funkcje:
– wyslij()
– odbierz()
char* odbierz(int full, enum ruch delay r delay)
Funkcja odbiera odpowiedź od robota.
Parametry funkcji:
1. int full – rodzaj odbieranych informacji:
– 0 – czeka na jakikolwiek znak w buforze portu, po jego odczytaniu opróżnia bufor i wychodzi
z funkcji,
– 1 – odbiera pełną odpowiedź.
Wartości zwracane:
– char* – wartość odpowiedzi lub znak ’x’ w przypadku opcji full=0. W przypadku błędu
ciąg pusty.
Wykorzystywane funkcje:
– brak –
46
int wyslij(FILE *fpw, char* komenda, enum ruch delay r delay)
Funkcja wysyła ciąg znaków ’komenda’ do pliku ’fpw’.
Parametry funkcji:
1. FILE *fpw – deskryptor pliku.
2. char* komenda – ciąg znaków tworzący komendę dla robota.
Wartości zwracane:
1 – w przypadku sukcesu wysłania danych.
Wykorzystywane funkcje:
– RS232 stop()
– RS232 start()
int* pozycja(char* bufor)
Funkcja poszukuje informacji o pozycji robota lub głowicy w ciągu znaków przekazanych na
wejście funkcji.
Parametry funkcji:
1. char* bufor – ciąg znakowy zwracany przez sterownik robota zawierający informacje o położeniu robota lub głowicy z kamerą.
Wartości zwracane:
– int* – wskaźnik na tablicę zawierająca akualne położenie robota/głowicy z kamerą.
Wykorzystywane funkcje:
– brak –
int cpos(int device)
Funkcja zeruje wartość liczników napedów robota lub głowicy z kamerą.
Parametry funkcji:
int device – numer urzadzenia:
– kamera – głowica z kamerą,
– robot – robot.
Wartości zwracane:
1 – sukces wykonania funkcji.
Wykorzystywane funkcje:
– wyslij odbierz()
47
int* kamera ruch(long int ver, long int hor, int liczba krokow)
Funkcja wysyła komendę ruchu względnego dla sterownika głowicy z kamerą.
Parametry funkcji:
1. long int ver – wartość wertykalna przemieszczenia głowicy z kamerą
2. long int hor – wartość horyzontalna przemieszczenia głowicy z kamerą
3. int liczba krokow – liczba krokow, w których głowica ma wykonać ruch. Wartość 0
oznacza obliczenie parametru automatycznie.
Wartości zwracane:
– int* – wskaźnik na tablicę 2–wartościową zawierającą pozycję końcową głowicy.
Wykorzystywane funkcje:
– kamera on()
– wyslij odbierz()
– wait for stop()
int* kamera ruch ac(long int ver, long int hor, int liczba krokow)
Funkcja wysyła komendę ruchu bezwzględnego dla sterownika głowicy z kamerą.
Parametry funkcji:
1. long int ver – pozycja wertykalna do osiągnięcia przez głowicę,
2. long int hor – pozycja horyzontalna do osiągnięcia przez głowicę,
3. int liczba krokow – liczba kroków, w których robot ma wykonać ruch, w przypadku wartość 0 – wyliczany automatycznie.
Wartości zwracane:
– int* – wskaźnik na tablicę 2–wartościową zawierającą pozycję końcową głowicy.
Wykorzystywane funkcje:
– kamera on()
– robot on()
– wyslij odbierz()
– wait for stop()
48
int* robot ruch(char* rozkaz, enum robot on rodzaj ruchu, enum wait ornot
mhm, Bool retransmisja)
Funkcja wysyła komendę ruchu względnego dla sterownika robota.
Parametry funkcji:
1. char* rozkaz – rozkaz przesyłany do robota,
2. enum robot on rodzaj ruchu – rodzaj ruchu (pętli sterowania) (SERV, MOTN, MOTV),
3. enum wait ornot mhm:
– WAIT – czeka po wysłaniu rozkazu na zakończenie ruchu robota,
– NO WAIT – nie czeka na zakończenie ruchu robota po wysłaniu rozkazu,
4. Bool retransmisja – określa czy w przypadku błędu transmisji może retransmitować rozkaz
do robota.
Wartości zwracane:
– int* – wskaźnik na tabelę 2–elementową zawierającą dane o pozycji końcowej robota.
Wykorzystywane funkcje:
– robot on()
– wait for stop()
int* robot korekta(enum prawo lewo pl, enum wielkosc korekty wk)
Funkcja wysyła do robota rozkazy wykonania korekty położenia rownolegle w prawo lub
lewo.
Parametry funkcji:
1. enum prawo lewo pl: PRAWO – korekta wprawo, LEWO – korekta w lewo,
2. enum wielkosc korekty wk – KOREKTA MALA, KOREKTA DUZA.
Wartości zwracane:
– int* – wskaźnik na tabelę 2–elementowa zawierającą dane o pozycji końcowej robota.
Wykorzystywane funkcje:
– robot ruch()
49
int* wait for stop(int device)
Funkcja oczekuje na zakończenie ruchu głowicy robota lub samego robota.
Parametry funkcji:
1. int device:
– kamera – gdy czekamy na zakończenie ruchu głowicy z kamerą,
– robot – gdy czekamy na zakończenie ruchu robota.
Wartości zwracane:
– (int*) - wskaźnik do tablicy 2x1 przechowującej współrzędne ostatniej pozycji robota po
zakończeniu ruchów.
Wykorzystywane funkcje:
– wyslij odbierz()
– pozycja()
int pozycjonuj kamere(void)
Funkcja pozycjonuje kamerę w pionie. Efektem jej działania jest takie ustawienie kamery,
aby ta po ewentualnej korekcie w poziomie mogła rejestrować poprawnie umieszczony na
korpusie robota landmark.
Parametry funkcji:
– brak –
Wartości zwracane:
1 – w przypadku poprawnego pozycjonowania,
0 – w przypadku wystąpienia błędu (w obecnej fazie w przypadku błędu inna funkcja kończy
działanie aplikacji).
Wykorzystywane funkcje:
– robot reset()
– robot on(SERV)
– kamera on()
– wyslij odbierz()
– wait for stop( kamera )
– pozycja()
50
⇒ plik main.cpp:
int main(int argc, char **argv)
Główna funkcja – tworzy obiekty sterujące aplikacją.
Parametry funkcji:
– int argc, char **argv – parametry wejściowe aplikacji. Wartości zwracane:
– wartość logiczna zakończenia działania aplikacji.
Wykorzystywane funkcje:
– brak –