180 likes | 601 Views
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
E N D
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.
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) 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
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ą
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.