graficzny interfejs do sterowania · jp.1gpq la1gal ula1_aea1gm`g98, issn 1896-771x 37 graficzny...

7
8, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA INSPEKCYJNYM Mariusz Giergiel 1 , Krzysztof Kurc 2a ,Dariusz Szybicki 2b 1 Katedra Robotyki i Mechatroniki, Akademia Górniczo-Hutnicza 1 [email protected] 2 Katedra Mechaniki Stosowanej i Robotyki, Politechnika Rzeszowska 2a [email protected], 2b [email protected] Streszczenie nym. Pokazano Napisana w pozwala na wygodne i intuicyjne sterowani a- robot inspekcyjny, interfejs graficzny, sterowanie robotami. GRAPHICAL INTERFACE TO CONTROL CATERPILLAR INSPECTION ROBOT Summary Construction and operation of control applications require advanced development tools, stability, reliability and work in real time.The paper presents how to build graphical interfaces to control caterpillar inspection robot. Robot control interface written using Qt programming library. This program is a graphic composed of several different components. All elements of the program exchange and transform information with one another. Keywords: inspection robots, graphical interface, robot control. 1. u- o- a- wiska [2 , tzn. takimi, których prawie nic nie ogranicza, np. przewody steru stemach dozoru, do penetracji i identyfikacji nieznanego niebez- piecznego terenu. Coraz szerszym polem zastosowa o- , k- zarówno ,,suchych” jak i zalanych cieczami. Do stero- a- try czasie rzeczywi- autorów i pokazane w artykule mi-

Upload: others

Post on 30-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GRAFICZNY INTERFEJS DO STEROWANIA · JP.1GPq LA1gAL uLA1_aEA1gM`g98, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA :±aA1LA*PquJg_P"Ph1Jg INSPEKCYJNYM Mariusz Giergiel1, Krzysztof

MODELOWANIE INŻYNIERSKIE nr 48, ISSN 1896-771X

37

GRAFICZNY INTERFEJS DO STEROWANIA GĄSIENICOWYM ROBOTEM INSPEKCYJNYM

Mariusz Giergiel1, Krzysztof Kurc2a,Dariusz Szybicki2b

1Katedra Robotyki i Mechatroniki, Akademia Górniczo-Hutnicza [email protected] 2Katedra Mechaniki Stosowanej i Robotyki, Politechnika Rzeszowska [email protected],[email protected]

Streszczenie W pracy zaprezentowano sposób budowy graficznego interfejsu sterowania gąsienicowym robotem inspekcyjnym.

Pokazano przydatne narzędzia do budowy graficznych interfejsów sterujących. Napisana w języku C++ aplikacja posiada możliwość bezprzewodowej kontroli istotnych parametrów robota oraz podłączonych do niego modułów, pozwala na wygodne i intuicyjne sterowanie przemieszczaniem, wyświetlanie obrazu z kamery oraz umożliwia ana-lizę środowiska pracy robota. Słowa kluczowe: robot inspekcyjny, interfejs graficzny, sterowanie robotami.

GRAPHICAL INTERFACE TO CONTROL CATERPILLAR INSPECTION ROBOT Summary

Construction and operation of control applications require advanced development tools, stability, reliability and work in real time.The paper presents how to build graphical interfaces to control caterpillar inspection robot. Robot control interface written using Qt programming library. This program is a graphic composed of several different components. All elements of the program exchange and transform information with one another.

Keywords: inspection robots, graphical interface, robot control.

1. WSTĘP

Roboty mobilne to samodzielne urządzenia wykonu-jące zadany ruch bez zewnętrznego wsparcia. Wyposażo-ne są one zwykle w zestawy sensorów, często manipula-tor pozwalający im na wykonywanie postawionego zadania i wiele innych urządzeń pozwalających określać stan środowiska [2]. Roboty te z założenia powinny być urządzeniami autonomicznymi, tzn. takimi, których prawie nic nie ogranicza, np. przewody sterujące bądź zasilające. Często wykorzystywane są w systemach dozoru, do penetracji i identyfikacji nieznanego niebez-piecznego terenu. Coraz szerszym polem zastosowań tego typu robotów stają się zadania kontroli i analizy środo-wiska, roboty docierają wszędzie tam, gdzie działanie

człowieka jest niemożliwe lub znacząco utrudnione. Dzięki wyposażeniu robotów mobilnych w zestawy sensorów i czujników są one w stanie pełnić role inspek-cyjne, monitorować stan rur, powierzchni płaskich, zarówno ,,suchych” jak i zalanych cieczami. Do stero-wania mobilnymi robotami coraz częściej wykorzystywa-ne są graficzne interfejsy, które kontrolują parametry pracy i pozwalają na wygodne zarządzanie funkcjami robota. Budowa i funkcjonowanie aplikacji sterujących wymaga zaawansowanych narzędzi programistycznych, stabilności, niezawodności oraz pracy w czasie rzeczywi-stym. Wszystkie te oczekiwania spełniają wybrane przez autorów i pokazane w artykule środowisko programi-

Page 2: GRAFICZNY INTERFEJS DO STEROWANIA · JP.1GPq LA1gAL uLA1_aEA1gM`g98, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA :±aA1LA*PquJg_P"Ph1Jg INSPEKCYJNYM Mariusz Giergiel1, Krzysztof

GRAFICZNY INTERFEJS DO STEROWANIA GĄSIENICOWYM ROBOTEM INSPEKCYJNYM

38

styczne, zestaw bibliotek Qt oraz inne przydatne biblio-teki.

2. INTERFEJS STEROWANIA ROBOTEM

2.1. GĄSIENICOWY ROBOT INSPEKCYJNY

Pomysł zaprojektowania i zbudowania gąsienicowego robota inspekcyjnego pojawił się podczas oglądu zbiorników (MPWiK) magazynujących wodę pitną dla Krakowa(rys.1). Rozbudowana infrastruktura jest złożona z różnego typu zbiorników, rur oraz kanałów wentylacyjnych.

Rys.1. Zbiornik magazynujący wodę pitną

Wszystkie składowe systemu zaopatrzenia w wodę wymagają okresowych przeglądów, wykrywania nieprawidłowości, określania panujących tam warunków [4]. Zaprojektowany i zbudowany robot inspekcyjny (rys.2) umożliwia monitorowanie i analizę stanu technicznego powierzchni płaskich, kanałów wentylacyjnych, rur(rys.3), zarówno ,,suchych” jak i zalanych cieczami.

Rys.2. Model robota w konfiguracji do powierzchni płaskich

Rys.3. Model robota w konfiguracji do rur okrągłych

Model CAD robota został wykonany w programie So-lidWorks, tam też wykonano symulacje dynamiczne, symulacje przepływów cieczy wokół robota, dobrano wszelkiego typu uchwyty oraz mocowania. System napędowy oparty jest na modułach gąsienicowych (rys.4) z wbudowanym napędem.

Rys.4. Model modułu gąsienicowego

Ta jednostka jezdna (rys.5) jest precyzyjnym mecha-nizmem wykonanym z aluminium wysokiej jakości, posiada mocne silniki i przekładnie planetarne napędza-jące pasy ze szponami.

Rys.5. Wnętrze modułu gąsienicowego

Page 3: GRAFICZNY INTERFEJS DO STEROWANIA · JP.1GPq LA1gAL uLA1_aEA1gM`g98, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA :±aA1LA*PquJg_P"Ph1Jg INSPEKCYJNYM Mariusz Giergiel1, Krzysztof

Mariusz Giergiel, Krzysztof Kurc, Dariusz Szybicki

39

Elementami robota gąsienicowego, jako urządzenia mechatroniczego, są następujące składowe (rys.6):

moduł główny robota wraz z napędami gąsieni-cowymi,

mocowania napędów umożliwiające dostosowa-nie konfiguracji robota do poruszania się po powierzchni płaskiej lub w rurach o różnym przekroju,

elektronika sterująca napędami, umożliwiająca komunikację z operatorem,

megapikselowa kamera z wyjściem etherneto-wym,

moduł pomiarowy temperatury, ciśnienia, wil-gotności oraz gazów;

złącza do komunikacji ze stacją operatorską spełniające normę IP69,

zewnętrzne oświetlenie robota. Korpus prototypu wykonany został metodami szyb-

kiego prototypowania w technologii FDM, następnie wykonano ostateczny korpus ze stopu aluminium na obrabiarce CNC. Układ sterowania robotem znajduje się wewnątrz

korpusu i składa się z następujących bloków funkcjonal-nych (rys.7):

jednostki sterującej pracą wszystkich kompo-nentów składowych – jest to mikrokontroler z rdzeniem ARM 7 AT91SAM7SE firmy Atmel;

obwodów kontroli poprawności pracy napędów, które jednocześnie służą do pomiaru prądu;

driverów mocy sterujących bezpośrednio napę-dami za pomocą sygnałów PWM generowanych przez jednostkę centralną;

inteligentnego układu ładowania baterii i kon-troli napięcia zasilającego;

ethernetowegoswitcha firmy REALTEK zarzą-dzającego przepływem danych pomiędzy kom-puterem a kamerą megapikselową, komputerem a układem sterującym oraz komputerem a modułem pomiarowym;

układu przewodowej transmisji danych za po-mocą skrętki ethernetowej;

układu bezprzewodowej transmisji danych przy pomocy accesspoint’a;

warstwy fizycznej pośredniczącej w komunikacji pomiędzy switchemethernetowym a mikroproce-sorem sterującym.

Rys.6. Model robota wraz z ilustracją przepływu informacji

Page 4: GRAFICZNY INTERFEJS DO STEROWANIA · JP.1GPq LA1gAL uLA1_aEA1gM`g98, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA :±aA1LA*PquJg_P"Ph1Jg INSPEKCYJNYM Mariusz Giergiel1, Krzysztof

GRAFICZNY INTERFEJS DO STEROWANIA GĄSIENICOWYM ROBOTEM INSPEKCYJNYM

40

Rys.7. Schemat funkcjonowania układu sterowania robota

Komunikacja pomiędzy układem sterowania robotem a komputerem PC odbywa się przy wykorzystaniu protokołu TCP/IP (rys.8).Oparty jest on na heteroge-nicznej sieci otwartych protokołów, niezależnych od architektury sprzętowej i wykorzystywanych systemów operacyjnych.

Rys.8. Model TCP/IP

Protokół ten był łatwy do zaimplementowania na mikrokontrolerze ARM7 oraz mikrokontrolerze Atme-ga128 obsługującym moduł pomiarowy. TCP/IP obsłu-guje również biblioteka Qt, w której napisano graficzny interfejs sterowania robotem.

2.2. APLIKACJA STERUJĄCA

Zasada działania prezentowanego interfejsu sterują-cego polega na rysowaniu i obsłudze widżetów. Są to podstawowe elementy graficznego interfejsu użytkownika (GUI), jak np. suwak, okno, przycisk lub pole edycji [3]. W omawianym rozwiązaniu umożliwiają one przesyłanie danych i poleceń użytkownika poprzez program do robota. Są również używane do wizualizacji na ekranie informacji o stanie programu i kontrolowanego przez niego robota (informacja zwrotna). Dzięki zbudowaniu środowiska graficznego użytkownik ma możliwość wy-godnej i łatwej komunikacji z aplikacją za pomocą klawiatury i myszy oraz sterowania robotem za pomocą joysticka. Interfejs sterujący robotem (rys.9) zbudowano z za-

stosowaniem biblioteki programistycznej Qt. Środowisko to jest zestawem przenośnych bibliotek i narzędzi pro-gramistycznych dedykowanych dla języków ,,C++” oraz Java [1]. Aplikacja sterująca robotem jest to program składający się z kilkudziesięciu różnych elementów. Wszystkie elementy programu przetwarzają i wymieniają informacje miedzy sobą. Rzeczą najistotniejszą jest natomiast dwustronna komunikacja programu z robotem inspekcyjnym w czasie rzeczywistym.

Page 5: GRAFICZNY INTERFEJS DO STEROWANIA · JP.1GPq LA1gAL uLA1_aEA1gM`g98, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA :±aA1LA*PquJg_P"Ph1Jg INSPEKCYJNYM Mariusz Giergiel1, Krzysztof

Mariusz Giergiel, Krzysztof Kurc, Dariusz Szybicki

41

Rys.9. Interfejs sterujący robotem

Aplikacja sterująca została napisana i skompilowana w oprogramowaniu Microsoft Visual Studio 2008. Biblio-tekę Qt można zintegrować z pakietem Visual Studio, co umożliwia (rys.10):

tworzenie nowych projektów Qt oraz klas tej biblioteki;

automatyczne budowanieplikówMeta-Object Compiler (MOC), User Interface Compi-ler(UIC) orazResource Compiler(RCC);

import i eksport plików projektuQt(*.Pro) zintegrowane zarządzanie zasobami Qt; zintegrowanie dokumentacji Qt.

Rys.10. Integracja biblioteki Qt z Microsoft Visual Studio 2008

Dzięki takiemu podejściu do projektowania aplikacji sterującej możliwy jest dostęp z poziomu Visual Studio do programu Qt Designer.Pozwala on na graficzne definiowanie interfejsu użytkownika. Poszczególne wide-ty, typu okno dialogowe, przycisk, pole wyboru itd., są rysowane, przypisywana jest im nazwa, cechy charakte-

rystyczne oraz definiowana jest obsługa sygnałów i slotów.

Rys.11. Definiowanie widżetów aplikacji sterującej

w programie Qt Designer

2.3. SYGNAŁY I SLOTY

Sygnały i sloty są jednym ze sposobów organizacji rozsyłania zdarzeń w programach komputerowych, są specjalizacją metody wywołań zwrotnych. Mechanizm tego typu jest zaimplementowany w większości bibliotek GUI np. GTK+, wxWidgets, Boost, Qt.W bibliotece Qt sygnały pełnią funkcję przerwań programowych [5]. W momencie nadejścia zdarzenia, np. wciśnięcia kla-

wisza, ruchu myszą, generowane jest wywołanie. Jego rezultatem jest wykonanie instrukcji, która stanowi obsługę zdarzenia, czyli slotu. Takie połączenie sygnału ze slotem umożliwia prawidłowe funkcjonowanie aplika-cji w momencie wystąpienia sygnału w nieprzewidywal-

Page 6: GRAFICZNY INTERFEJS DO STEROWANIA · JP.1GPq LA1gAL uLA1_aEA1gM`g98, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA :±aA1LA*PquJg_P"Ph1Jg INSPEKCYJNYM Mariusz Giergiel1, Krzysztof

GRAFICZNY INTERFEJS DO STEROWANIA GĄSIENICOWYM ROBOTEM INSPEKCYJNYM

42

nym momencie czasu.Sloty oraz sygnały (rys.12) tworzą system zachowań pozwalający operatorowi robota in-spekcyjnego na wygodne sterowanie oraz zapis danych.

Rys.12. Definiowanie sygnałów i slotów w Qt Designer

2.4. OBSŁUGA TCP/IP

Zastosowanie do komunikacji z robotem protokołu TCP/IP spowodowało konieczność dołączenia do projek-tu programu modułu Network library (rys.13) zawierają-cego klasę QTcpSocket.

Rys.13. Moduły Qt dołączone do projektu

W programie sterującym robotem obiekt klasy QTcpSocketbędący klientem odbierał dane wysyłane przez mikrokontroler robota o adresie ip 192.168.2.18. Odebranie pakietu danych spowodowało wywołanie slotu ,,Czytaj" (rys.14)

Rys.14. Sposób odczytu pakietu danych z robota

W ten sam sposób zrealizowano wysyłanie rozkazów do robota (rys.15). Mikrokontroler sterujący odbiera wcze-śniej zdefiniowane rozkazy wysyłane przez operatora.

Rys.15. Sposób wysyłania rozkazów do robota

2.5. BIBLIOTEKA QWT

Do wyświetlania informacji otrzymywanych od robo-ta inspekcyjnego wygodne jest zastosowanie m.in. wykre-sów. Parametry typu: prędkość, droga, napięcie baterii, stężenie gazu, temperatura itd. w funkcji czasu przed-stawione na wykresach pozwalają operatorowi w pełni kontrolować stan robota. Biblioteka Qt nie ma , niestety, gotowego narzędzia do generowania wykresów, dlatego konieczne stało się zastosowanie biblioteki Qwt. Biblio-teka ta zawiera elementy interfejsu (rys.16) jak wykresy, suwaki, pokrętła kompasy, itd. oraz klasy użytkowe przydatne w programach sterujących oraz wyświetlają-cych wyniki [6].

Rys.16. Widżety klasy Qwt

Jest ona rozpowszechniana na zasadzie licencji GNU LESSER GENERAL PUBLIC LICENSE (LGPL), po pobraniu plików źródłowych i skompilowaniu może zostać dołączona do Microsoft Visual Studio 2008. W omawianym programie sterującym elementy klasy Qwt, jak np. wykresy, posłużyły do wyświetlania danych odbieranych od robota.

Page 7: GRAFICZNY INTERFEJS DO STEROWANIA · JP.1GPq LA1gAL uLA1_aEA1gM`g98, ISSN 1896-771X 37 GRAFICZNY INTERFEJS DO STEROWANIA :±aA1LA*PquJg_P"Ph1Jg INSPEKCYJNYM Mariusz Giergiel1, Krzysztof

Mariusz Giergiel, Krzysztof Kurc, Dariusz Szybicki

43

Rys.17. Wykres prędkości oraz drogi robota wyświetlany przy

użyciu wykresy z biblioteki Qwt.

W programie sterującym wykorzystano również inne elementy tej klasy, takie jak suwaki i pokrętła.

2.6. OBSŁUGA JOYSTICKA

Do sterowanie ruchem gąsienicowego robota inspek-cyjnego wygodne jest zastosowanie joysticka. Wychylenia drążka przekładają się na kierunek ruchu i prędkość robota, a przyciski sterujące mogą posłużyć do urucha-miania funkcji poszczególnych elementów robota takich jak np. robienie zdjęć kamerą, pomiar stężenia w danej chwili, zapis obrazu wideo. Napisanie własnej biblioteki obsługi joysticka jest zadaniem czasochłonnym, dlatego też celowe jest wykorzystanie już istniejących rozwiązań. W programie sterującym robota autorzy wykorzystali darmową bibliotekę SFML w wersji 2.0. Zapewnia ona wysokopoziomowy oraz niskopoziomowy dostęp do urządzeń wejściowych, karty graficznej, karty dźwięko-wej itp. [7]. Do używanego przez autorów Microsoft Visual Studio 2008 dostępny jest pakiet instalacyjny biblioteki SFML. Po dodaniu do projektu odpowiednich plików nagłówkowych oraz bibliotek dynamicznych możliwe jest wykorzystanie joysticka oraz klawiatury do sterowania gąsienicowym robotem inspekcyjnym. Możli-

wej jest pobierania aktualnej pozycji drążka (rys.18) w osiach X, Y oraz Z.

Rys.18. Odczyt aktualnej pozycji drążka joysticka.

Pozycja ta może zostać wyświetlona w programie (rys.19), a przede wszystkim posłużyć do sterowania gąsienicowym robotem inspekcyjnym .

Rys.19. Wyświetlanie aktualnej pozycji drążka joysticka

3. WNIOSKI

W artykule przedstawiono sposób budowy graficzne-go interfejsu do sterowania gąsienicowym robotem inspekcyjnym. Omówiono zastosowania robota, sposób jego modelowania oraz elementy wyposażenia. Pokaza-noukład sterowania robotem oraz sposób przepływu informacji do i od operatora. Do budowy aplikacji steru-jącej wykorzystano język programowania wysokiego poziomu C++, bibliotekę Qt do budowania interfejsów graficznych, bibliotekę Qwt do wyświetlania informacji otrzymywanych od robota oraz bibliotekę SFML do obsługi joysticka oraz klawiatury. Przeprowadzone doświadczenia na obiekcie rzeczywistym oraz budowa podobnych aplikacji do sterowania innymi robotami mobilnymi wskazują, że zastosowana sposób budowy aplikacji dobrze sprawdza się w realizowanych projek-tach.

Praca wykonana w ramach projektu badawczego Nr: N R03 005710

Literatura

1. Blanchette J., Summerfield M.:C++ GUI Programming with Qt 4 (2nd ed.). Massachusetts: Prentice Hall, 2008.

2. Giergiel J., Kurc K., Giergiel M.: Mechatroniczne projektowanie robotów inspekcyjnych. Rzeszów: Ofic. Wyd. Pol. Rzeszowskiej,2010.

3. Giergiel J., SzybickiD.:System Linux w robotyce. Rzeszów: Ofic. Wyd. Pol. Rzeszowskiej,2010. 4. Giergiel M.Majkut K.: Introduction to the project of tank inspection. W: Wybrane zagadnienia analizy modalnej

konstrukcji mechanicznych. Pr. zbior. pod red. T. Uhla. Kraków : Wyd. Nauk. Inst. Technologii Eksploatacji – Państwowego Instytutu Badawczego, 2010, s. 83. Summ.

5. Molkentin D.: The book of Qt 4: The art of building Qtapplications.Open Source Press Gmbh, Munich 2006 6. http://qwt.sourceforge.net 7. http://www.sfml-dev.org