Praca dyplomowa inżynierska

16
Praca dyplomowa inżynierska Autor : Krzysztof Baranowski Tytuł: Komunikacja bezprzewodowa z grupą robotów mobilnych z wykorzystaniem technologii Bluetooth Opiekun : dr. inż. Wojciech Szynkiewicz

description

Praca dyplomowa inżynierska. Autor : Krzysztof Baranowski Tytuł: Komunikacja bezprzewodowa z grupą robotów mobilnych z wykorzystaniem technologii Bluetooth Opiekun : dr. inż. Wojciech Szynkiewicz. Plan prezentacji. Cel i zakres pracy Stanowisko badawcze Założenia projektowe - PowerPoint PPT Presentation

Transcript of Praca dyplomowa inżynierska

Page 1: Praca dyplomowa inżynierska

Praca dyplomowa inżynierska

Autor : Krzysztof Baranowski

Tytuł:

Komunikacja bezprzewodowa z grupą robotów mobilnych z wykorzystaniem

technologii Bluetooth

Opiekun : dr. inż. Wojciech Szynkiewicz

Page 2: Praca dyplomowa inżynierska

Plan prezentacji

Cel i zakres pracy

Stanowisko badawcze

Założenia projektowe

Budowa i działanie serwera

Przeprowadzone testy

Podsumowanie

Page 3: Praca dyplomowa inżynierska

Cel i zakres pracy

Opracowanie projektu, implementacja oraz wdrożenie serwera komunikacyjnego.

Utworzenie warstwy pośredniczącej w komunikacji pomiędzy programem realizującym algorytm gry robotów, a robotem typu HMT2.

Umożliwienie gry w dwóch trybach: Tryb robocup Tryb gry pojedynczej

Umożliwienie współpracy z systemem operacyjnym zaprojektowanym dla robota HMT2 oraz z programem pracy zdalnej.

Określenie wzorców pisania programu klienta.

Page 4: Praca dyplomowa inżynierska

Stanowisko badawcze (1) Turniej RoboCUP. Drużyna 6 robotów typu HMT2. Budowa mechaniczna robota HMT2:

Korpus Dwukołowa baza jezdna Enkodery prędkości Zasilanie Podpory

Budowa sterownika elektronicznego robota HMT2:

Moduł główny (Adapter Bluetooth EYMF2CAMM-XX firmy TAIYO YUDEN, wyświetlacz LCD)

Moduł silników

Oprogramowanie sterownika robota HMT2:

Program pracy zdalnej System operacyjny

Page 5: Praca dyplomowa inżynierska

Stanowisko badawcze (2) - Schemat komunikacji z komputerem PC

Serwer komunikacyjny.

Program mserver-0.23a.

Wirtualny port szeregowy COM, (/dev/rfcommX).

Klient w sieci Ethernet.

Serwerkomunikacyjny

ROBOTY

GniazdaRFCOMM

Ethernet

Porty

TCP/IP

Serwer wizyjny

Klienci

Klienci

Kamera obserwuje roboty

Page 6: Praca dyplomowa inżynierska

Założenia projektowe (1)

Wykorzystanie technologii komunikacji bezprzewodowej Bluetooth.

Wykorzystanie sieci Ethernet do współpracy z programami klientów realizującymi algorytm gry robotów.

Serwer działa w systemie Linux i jest utworzony w języku C.

Ustanawia i zrywa połączenie wykorzystując interfejs komunikacji szeregowej SPP modułu Bluetooth oraz protokół i gniazda RFCOMM.

Parametry serwera i meczu określane są w przygotowanym wcześniej pliku konfiguracyjnym.

Rozmieszczenie przestrzenne komputera PC i boiska – jak najbliżej siebie.

Projekt i implementacja serwera nie zakładają realizacji komunikacji z robotami innego typu niż HMT2.

Page 7: Praca dyplomowa inżynierska

Założenia projektowe (2) - wykorzystywane mechanizmy języka C

TCP_NODELAY – wyłączenie algorytmu Negl’a.

SO_REUSEADDR – szybkie ponowne łączenie do gniazda słuchającego (w stanie WAIT gniazda TCP/IP).

O_NONBLOCK – przestawienie gniazda w tryb nieblokujący przy komendzie recv().

SELECT() – mechanizm monitorowania wielu gniazd w tym samym czasie. Sprawdza gotowość gniazda do odczytu lub zapisu.

Page 8: Praca dyplomowa inżynierska

Budowa i działanie serwera (1)

Nawiązywanie połączeń

Pętla główna

Konfiguracja

Ustalenietrybu

działaniaserwera

Odbiór komend odklientów

Serwer komunikacyjny

Czytaniekonfiguracji

Obsługapołączeń ze

sterownikamirobotów

Obsługapołączeń zklientami

Sprawdzaniepoprawności

odebranych komendWykonanie komend Odmierzanie czasu

meczu

Bloki funkcjonalne: Konfiguracja

Ustalenie trybu działania

Czytanie konfiguracji

Nawiązywanie połączeń Z robotami Z klientami

Pętla główna Odbiór komend Wykonywanie

komend Odmierzanie

czasu meczu

Page 9: Praca dyplomowa inżynierska

Sprawdź poprawnośćopcji uruchomienia

serwera

START

Czy opcje uruchomieniaserwera zostały użyte

prawidłowo ?

EXIT

T A

K

N I E

N I E

Odczytaj plikkonfiguracyjny i sprawdź

jego poprawność

Czy plik konfiguracyjnyjest prawidłowy ?

T A

K

N I E

Nawiąż połączenia zrobotami

Czy połączenia zostałynawiązane ?

T A

K

N I EZainicjuj gniazda

słuchające protokołuTCP/IP

Czy gniazda zostałyzainicjowane prawidłowo?

T A

K

Czy wszyscy kliencizgłosili się?

N I E

T A

K

Odbierz i wykonajnadesłane przez klienta

komendy(Pętla głównasterownika)

Czy odebrano komendęGAMEOVER?

Czy skończył się czasmeczu?

T A K

T A

KN

I E

N I E

Oczekuj na zgłoszeniesię klinetów

N I E

Zamknij wszystkieotwarte polączenia

Konfiguracja

Nawiązywaniepołączeń

N I E

Pętla główna

2

3

5

6

7

1

4

8

Page 10: Praca dyplomowa inżynierska

Budowa i działanie serwera (2) - tryby pracy

Tryb robocup

Jeden program klienta. Klient steruje 6 robotami na raz.

Tryb pojedynczy

Wiele programów klienta. Jeden program klienta steruje jednym robotem.

Page 11: Praca dyplomowa inżynierska

Budowa i działanie serwera (3) - współpraca z systemem operacyjnym i programem pracy zdalnej

Współpraca z systemem operacyjnym Stos BlueZ. Nawiązywanie i zrywanie połączenia. Odczytywanie wartości prędkości.

Współpraca z programem pracy zdalnej Nawiązywanie i zrywanie połączenia. Odczytywanie wartości prędkości.

Page 12: Praca dyplomowa inżynierska

Budowa i działanie serwera (4) - komendy wysyłane przez program klienta

Stop - zatrzymuje prace serwera. Start - wznawia prace serwera. Restart - resetowanie połączenia z robotem. Quit - odłączenie programu klienta od serwera. Gameover - zakończenie meczu. Chat tekst - wymiana wiadomości pomiędzy programami klientów. P<liczba> - wysyła wartość prędkości (liczba) dla prawego silnika. L<liczba> - wysyła wartość prędkości (liczba) dla lewego silnika. p - pobiera wartość prędkości prawego silnika. l - pobiera wartość prędkości lewego silnika. ?<cyfra> - pobiera wartość odczytaną na jednym z 7 czujników modułu

silnikowego sterownika robota. !<cyfra> - pobiera wartość odczytaną na jednym z 3 czujników modułu

głównego sterownika robota.

Page 13: Praca dyplomowa inżynierska

Przeprowadzone testy

Środowisko testowe 6 testów

Wyznaczenie optymalnej odległości położenia serwera komunikacyjnego i boiska (1-3 metry).

Testy szybkości odpowiedzi na wysyłane ciągi komend dla systemu operacyjnego i programu pracy zdalnej.

Komendy wysyłane pojedynczo Komendy wysyłane z dużą częstotliwością

Page 14: Praca dyplomowa inżynierska

Średni czas odpowiedzi serwera przy pobudzaniu ciągami komend wysyłanymi z dużą częstotliwością przy współpracy z systemem operacyjnym

sterownika robota HMT2.

153

181

205

241

278

305

0

50

100

150

200

250

300

350

1 2 3 4 5 6

Liczba robotów

Cza

s o

dp

ow

ied

zi [

ms]

Page 15: Praca dyplomowa inżynierska

Średni czas odpowiedzi serwera przy pobudzaniu ciągami komend wysyłanymi z dużą częstotliwością przy współpracy z programem pracy

zdalnej sterownika robota HMT2.

126

155

182

201

242

275

0

50

100

150

200

250

300

1 2 3 4 5 6

Liczba robotów

Cza

s o

dp

ow

ied

zi [

ms]

Page 16: Praca dyplomowa inżynierska

Podsumowanie

Opracowano serwer komunikacyjny do sterowania drużyną robotów HMT2.

Wykorzystano technologię Bluetooth do komunikacji bezprzewodowej z robotami.

Umożliwiono współpracę serwera z dwoma wersjami sterownika robota HMT2.

Umożliwiono pracę serwera w dwóch trybach docelowym i treningowym.

Wykonano testy serwera.

Możliwe kierunki rozwoju.