Praca dyplomowa inżynierska Autor : Krzysztof Baranowski Tytuł: Komunikacja bezprzewodowa z grupą robotów mobilnych z wykorzystaniem technologii Bluetooth Opiekun : dr. inż. Wojciech Szynkiewicz
Jan 15, 2016
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
Budowa i działanie serwera
Przeprowadzone testy
Podsumowanie
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.
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
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
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.
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.
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
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
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.
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.
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.
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ą
Ś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]
Ś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]
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.