Projekty robotów: Projekt oprogramowania sterującego ruchem robota TWIN-CATT na komputery PC oraz testy mobilności / cz.7z7


Projekty robotów: Projekt oprogramowania sterującego ruchem robota TWIN-CATT na komputery PC oraz testy mobilności / cz.7z7

Jest to ostatni artykuł z serii, poświęcony tematyce projektu, budowy oraz realizacji robota mobilnego TWIN-CATT. Ostatnim krokiem jest projekt aplikacji, która w oczywisty sposób daję możliwość korzystania z zasobów robota niewykwalifikowanym operatorom. Dodatkowo artykuł opisuje testy mobilności konieczne do zweryfikowania założeń projektowych.

Spis treści:

1. Wstęp
2. Aplikacja do sterowania ruchem robota
3. Praca programu z rzeczywistym robotem
4. Testy mobilności
5. Podsumowanie

1. Wstęp

Projekt swoim zakresem dotyczy również zaprojektowania aplikacji sterującej ruchem robota mobilnego TWIN-CATT. Aplikacja, oprócz możliwości ruchowych, powinna dać możliwość operatorowi oglądania obrazu z zainstalowanego na pokładzie robota systemu wizyjnego.

W celu pełnego wykorzystania funkcjonalności robota należy posiadać w komputerze moduł Bluetooth oraz zainstalowaną kartę bezprzewodową w technologii WiFi. Jest to standardowe wyposażenie każdego laptopa.

Projekt oprogramowania sterującego pracą robota zrealizowano za pomocą środowiska Microsoft Visual C# 2010. C# jest znacznie prostszym językiem niż C++, jednak – jak sama nazwa wskazuje – należy do rodziny języków C. Oznacza to, że ma wiele cech wspólnych z C/C++, których nie mają języki takie jak Visual Basic. Na przykład C# rozróżnia wielkie i małe litery, a Visual Basic – nie. C# wymaga od programistów jawnej konwersji pomiędzy typami danych, a Visual Basic dokonuje niektórych konwersji automatycznie. Składnia języka C# jest podobna do składni języków C++ i Java. C# ma jednak w stosunku do C++ kilka dodatkowych cech obiektowych, takich jak: właściwości, atrybuty, delegaty czy zdarzenia.

2. Aplikacja do sterowania ruchem robota

Do komunikacji komputera z robotem wykorzystano wbudowany w laptopa moduł Bluetooth. Tworzy on bezprzewodowy most transmisji szeregowej. Początkowo należy połączyć się z modułem BTM-222 “ROBOT” przy pomocy menadżera Bluetooth, co pokazano na rysunku 1.

Po włączeniu zasilania robota oraz dwukrotnym kliknięciu na ikonę o nazwie “ROBOT”, następuje ustanowienie połączenia. Klikając prawym przyciskiem myszy na pozycji “ROBOT” i klikając “Szczegóły”, należy zwrócić uwagę na numer portu COM, który został przypisany danemu urządzeniu. Jest to informacja potrzebna do połączenia w programie sterującym. Wygląd okna głównego programu przedstawiono na rysunku 2.

Okno programu składa się z dwóch różnych elementów. Pierwszym z nich jest zakładka służąca do połączenia, sterowania, wysyłania rozkazów szczególnych. W drugiej z kolei znajduje się okno przeglądarki internetowej z wpisanym na stałe adresem IP kamery WiFi robota. Nie ma możliwości zmiany adresu, co wynika z przeznaczenia aplikacji tylko dla obsługi danego robota. Wszystkie możliwe operacje na robocie są możliwe tylko w przypadku nawiązania połączenia poprzez wybranie odpowiedniego portu COM oraz wciśnięcie przycisku “POŁĄCZ”. Po inicjacji połączenia można usłyszeć dźwięk zablokowania się silników układu napędowego, spowodowanego włączeniem hamulca magnetycznego.

Oprogramowanie interfejsu graficznego oparto na obsłudze zdarzeń, które są niezwykle ważne w każdym języku programowania. Pozwalają one na sprawne wykonywanie operacji związanych z aktualnym przetwarzaniem wykonywanym w aplikacji. Dla programisty ważne jest, aby ten proces przebiegał w sposób jak najbardziej automatyczny. Zdarzeniem, które należy obsłużyć, jest kliknięcie myszą przez użytkownika w odpowiedni przycisk lub wciśnięcie przycisków klawiatury.

Pierwszą opcją realizacji ruchu robota jest sterowanie online. Fragment okna odpowiedzialny za to sterowanie przedstawiono na rysunku 3.

Przez pojęcie sterowania online rozumie się bezpośrednie wykonanie rozkazu ruchu przez robota po obsłudze zdarzenia związanego z wyborem odpowiedniego ruchu. Sterowanie to nie wykorzystuje żadnego sprzężenia zwrotnego w robocie. Wykonywany jest ostatni zadany rozkaz, aż do jego zmiany. W programie wykorzystano w tym celu trzy zmienne:

zmienne.ilosc = zmienne.ilosc + 1;
zmienne.lewa_gasienica = 0;
zmienne.prawa_gasienica = 0;

Zmienna “zmienne.ilosc” przechowuje informacje o liczbie kliknięć przycisku jazdy do przodu lub do tyłu. W przypadku kliknięcia jazdy do przodu, zmienna jest inkrementowana, natomiast w przypadku jazdy do tyłu – dekrementowana. Wynika to, zgodnie ze sposobem komunikacji, z konieczności wysłania dwóch identycznych bajtów w celu wysterowania obu gąsienic w tym samym kierunku. Następnie komunikat zostaje wysłany:

byte[] komenda = new byte[1];

komenda[0] = (byte)(zmienne.ilosc * 3 + 64);

if (serialPort1.IsOpen == true)

{

serialPort1.Write(komenda, 0, 1);

serialPort1.Write(komenda, 0, 1);

}

Zmienna “zmienne.ilosc”, jeśli jest dodatnia, zostaje przemnożona przez 3 i dodana zostaje wartość 64, co powoduje ruch do przodu. W przypadku liczby ujemnej, zostaje przemnożona przez -3 oraz dodana zostaje wartość 128. Minimalna zmiana prędkości wynosi 5%. W przypadku rozkazu ruchu w lewo lub prawo, odpowiednio zmieniane są wartości zmiennych “zmienne.lewa_gasienica” oraz “zmienne.prawa_gasienica”.

if (zmienne.lewa_gasienica < 20 && zmienne.lewa_gasienica > -20)

{

zmienne.lewa_gasienica = zmienne.lewa_gasienica + 1;

}

if (zmienne.prawa_gasienica < 20 && zmienne.prawa_gasienica > -20)

{

zmienne.prawa_gasienica = zmienne.prawa_gasienica – 1;

}

Przycisk STOP powoduje natychmiastowe wysłanie rozkazu “stop” do robota. Dodano także możliwość sterowania robota przy pomocy strzałek klawiatury. Użytkownik, trzymając którykolwiek ALT i wciskając strzałki na klawiaturze, powoduje bez użycia myszki obsługę zdarzeń związanych z przyciśnięciem odpowiednich przycisków ruchu. Wykonanie rozkazu STOP odbywa się przez wciśnięcie kombinacji ALT + SPACJA. Jest to niezastąpione w przypadku sterowania robota, gdzie po prawej stronie okna głównego programu widoczny jest obraz pochodzący z kamer WiFi. Kolejny fragment okna programu przedstawiono na rysunku 4.

Pod pojęciem rozkazu szczególnego rozumie się polecenie, które w swoim działaniu wykorzystuje sprzężenie zwrotne. W robocie mobilnym TWIN-CATT są nimi sygnały z kanałów przetworników obrotowo-impulsowych. Istnieje możliwość wysłania rozkazu jazdy do przodu oraz do tyłu. Parametrami takiego ruchu jest zadana odległość, którą ma przebyć robot oraz wartość prędkości w procentach. W przypadku rozkazu obrotu w lewo lub prawo, parametr odległości zostaje zmieniony na parametr obrotu kątowego. Dopiero wciśnięcie przycisku powoduje wykonanie wybranego ruchu. Najpierw wysyłany jest komunikat powodujący przejście płyty sterującej robota w drugi tryb działania. W wyniku przejścia płyty sterującej robota w tryb drugi, z każdą gąsienicą związane są dwa bajty danych. Program najpierw sprawdza, czy został wybrany któryś z trybów ruchu, czy dane są podane w odpowiedniej formie przez użytkownika. Błąd walidacji powyższych warunków powoduje pojawienie się stosownego komunikatu oraz anulowanie wysłania rozkazu do robota. Komunikaty informujące o błędach przedstawiono na rysunku 5.

Pojawienie się któregokolwiek okna pozwala na łatwą weryfikację oraz ewentualną poprawę danych. Wyniki zadawanych rozkazów widoczne są po prawej stronie programu w oknie podglądu obrazu z kamer bezprzewodowych.

3. Praca programu z rzeczywistym robotem

Poniżej film przedstawiający rzeczywiste działanie programu:

[FILM]OLcC374QQFQ[/FILM]

4. Testy mobilności

Testy mobilności są koniecznym elementem sprawdzającym założenia budowy robota oraz zastosowanego układu gąsienicowego. Pozwalają one zweryfikować, w jakich warunkach terenowych robot TWIN-CATT porusza się sprawnie, a w których jego ruch jest niemożliwy. Badania pozwalają również sprawdzić zakres możliwości ruchowych robota. Pierwszym testem jest przejazd po nierównej powierzchni. Na rysunku 6 przedstawiono tor przeszkód, który robot miał pokonać. Są nimi ułożone betonowe płyty chodnikowe. Robot przejechał ten tor bez większych problemów. Dzięki dużej powierzchni styku z podłożem, robot nie ślizga się przy podjeździe na wzniesienia. Kolejnym atutem zastosowania gąsienic jest to, że zęby na ich powierzchni mogą się zaczepić o podłoże, pomagając pokonywać wyższe przeszkody.

Drugim sprawdzianem, przez który robot przeszedł poprawnie, był podjazd na wzniesienie. Robot miał za zadanie wjechać na wzniesienia o kącie nachylenia ok. 40st. Powierzchnią, po której robot się poruszał, była trawa. Założeniem było, aby robot nie ześlizgnął się. Na rysunku 7 przedstawiono wjazd robota na wzniesienie.

Test przebiegł prawidłowo. Robot wykonał założone operacje bez przeszkód. Powierzchnia, jak i kąt nachylenia wzniesienia, nie stanowiły dla niego utrudnienia. Sterowanie było realizowane przez telefon z systemem operacyjnym Android. Z obu testów wynika, że gąsienice znakomicie radzą sobie w terenie. W normalnych warunkach terenowych robot prawidłowo pokonuje przeszkody. Prześwit jest wystarczający do pokonywania przeszkód o wysokości mniejszej niż 10cm.

Trzecim testem była próba przejazdu po podłożu piaszczystym. Na rysunku 8 pokazano robota podczas próby.

Test początkowo przebiegał bez problemów. Robot przejechał określony odcinek bez utrudnień. Gąsienicowy układ napędowy wykonuje prawidłowo ruch jazdy na wprost. Niestety gąsienice zaczynają podczas skrętu nabierać dużej ilości piasku pomiędzy paski a napinacze. Powoduje to powstanie naprężeń paska oraz przemieszczanie się środka napinaczy. Następnie z powodu luzu, jeden z pasków spadł i zaklinował się o obudowę. Spowodowało to spalenie bezpiecznika. Mimo nieudanej próby na piasku, potwierdzono prawidłowe zaprojektowanie zabezpieczenia przed uszkodzeniem mostka H w przypadku nagłego zablokowania silnika. Testy mobilności potwierdziły założenia projektowe. Układ napędowy prawidłowo poradził sobie z różnego rodzajami nawierzchni. Uzyskana prędkość maksymalna robota wyniosła 5,5km/h.

Poniżej film przedstawiający zmagania robota w próbie terenowej:

[FILM]XZVY_7e1baE[/FILM]

5. Podsumowanie

Ten artykuł jest siódmym – i ostatnim – z cyklu artykułów poświęconych konstrukcji robota mobilnego o nazwie TWIN-CATT. Nadszedł czas na podsumowanie wszelakich prac. Założenia projektowe, które zostały postawione konstrukcji zostały zrealizowane. Robot mobilny sprawdzał się w kolejnych coraz trudniejszych testach. Efektem tego jest stwierdzenie, iż robot działa w pełni poprawnie, zgodnie z założeniami.

Robot stanowi ciekawą bazę do poznania zagadnień związanych z robotyką mobilną. Swoim zakresem obejmuje tematykę projektów układów zasilania, różnych rozwiązań układów napędowych, rozwiązywania problemu sterowania wieloma typami napędów. Podczas jego budowy natrafiono na wiele problemów związanych z sposobem ładowania lub programowaniem ruchów robota, które należało rozwiązać w sposób inżynierski. Wykonane aplikację na urządzenia przenośne zostały dopasowane pod wymogi zwykłych operatorów, którzy nigdy wcześniej nie mieli do czynienia z zagadnieniem sterowania robotów mobilnych.

Robot mobilny TWIN-CATT jest konstrukcją, którą warto rozwijać w dalszych etapach własnej edukacji. Jako modułowa i uniwersalna podstawa kolejnych prac, pozwala na realizacje bardziej złożonych zadań. Przykładem jest zastosowanie wielu czujników ultradźwiękowych, czy dodatkowych czujników laserowych w celu użycia robota jako urządzenia autonomicznego, nie sterowanego przez operatora.

Projekt i budowa inspekcyjnego robota mobilnego pozwoliła na zdobycie wielu doświadczeń, od projektu na kartce papieru, przez model i projekty komputerowe, aż po realizację fizyczną. Podczas całego procesu wielokrotnie zmagano się z chęcią zmiany pewnych założeń, zauważano błędy oraz wdrażono sposoby ich usunięcia. Nieoceniona stała się pomoc osób wykonujących wiele lat swój zawód taki jak mechanik czy tokarz. Kolejna projektowana konstrukcja wykorzystywać będzie wiedzę oraz doświadczenia inżynierskie zdobyte podczas budowy oraz realizacji mobilnego robota inspekcyjnego TWIN-CATT.

Dziękuję wszystkim czytelnikom za poświęcony czas, przepraszam za ewentualne błędy, których ilość starałem się minimalizować. Mam nadzieję, że zainteresowałem choćby kilka osób tematyką robotyki mobilnej, w której to dziedzinie Polacy mają szansę wieść prym (co obserwuje się na zawodach). Zachęcam do śledzenia strony www.przystalski.pl

Łukasz Przystalski
tel. 517-19-20-90
lukasz@przystalski.pl
www.przystalski.pl
gg: 1248364

Źródło: Copyright by Łukasz Przystalski. Kopiowanie treści tylko za formalną zgodą autora.

Zobacz też:


Roboty coraz bliżej ludzi dzięki mięśniom inspirowanym naturą
ModuBot – elastyczna robotyka modułowa od MultiProjekt
Największe Targi Automatyki Przemysłowej i Robotyki w Polsce!
Czy roboty przewyższają koszty zatrudnienia?
Dlaczego pasta lutownicza często sprawia problemy techniczne?
Grupa RENEX na stoisku Yamaha podczas targów MOTEK 2024
Sztuczne oko zrewolucjonizuje widzenie robotów
Stwórz przedsiębiorstwo przyszłości z naszym audytem technologicznym – wywiad z MultiProjekt Automatyka