SaperHead – Praca inżynierska

Projekt i realizacja mechanizmu i systemu sterowania ruchomej platformy z kamerami,
będącej częścią mobilnego robota inspekcyjno-manipulacyjnego

Celem pracy było zaprojektowanie mechanizmu manipulatora pozycjonującego kamery systemu wizyjnego robota mobilnego oraz stworzenie układu sterowania zaprojektowanego manipulatora. Zgodnie z przyjętymi założeniami projektowymi, układ kontroli manipulatora umożliwia sterowanie poprzez naśladowanie ruchów telefonu komórkowego, na podstawie danych z czujników orientacji urządzenia. Oprogramowanie sterujące ruchami mechanizmu umożliwia użytkownikowi pozycjonowanie efektora również poprzez zadawanie kątów obrotu efektora oraz zadawanie ruchów indywidualnych napędów. Funkcję kontrolera silników krokowych poruszających mechanizmem, spełnia komputer RaspberryPi. Dane o orientacji telefonu odczytywane są dzięki stworzonej aplikacji mobilnej. Wszystkie urządzenia będące częścią układu sterowania komunikują się bezprzewodowo poprzez sieć Wi-Fi i protokół UDP. W ramach pracy inżynierskiej stworzono prototyp zaprojektowanego manipulatora. Poszczególne części prototypu zostały wytworzone za pomocą technologii druku 3D.

Założenia projektowe

  • Konstrukcja o uniwersalnym zastosowaniu, możliwość wykorzystania do pozycjonowania kamer systemu wizyjnego robota saperskiego.
  • Układ sterowania umożliwiający kontrolę manipulatora za pomocą ruchów głowy operatora robota – robot saperski sterowany ruchami ciała operatora. Częścią układu sterowania jest aplikacja będąca panelem sterowania manipulatora. Możliwość sterowania bezprzewodowego.
  • Niski koszt końcowy wykonanego prototypu. Wykorzystanie tanich, ogólnodostępnych napędów elektrycznych – silników krokowych, wykonanie elementów konstrukcji w technologii druku 3D, użycie mini komputera RaspberryPi w roli kontrolera napędów.
  • Możliwość rozwoju projektu. Projekt zakłada możliwość rozszerzenia układu sterowania o czujniki pozycji napędów, montaż uchwytu kamer wideo w efektorze oraz rozszerzenie funkcjonalności aplikacji sterującej. Możliwość wykorzystania układu sterowania w innych projektach koła naukowego.

Manipulator

Zaprojektowany manipulator oparto na konstrukcji sferycznej, równoległej o wspólnej osi elementów przenoszących napęd. Mechanizm tego typu spotykany jest np. w systemach pozycjonowania paneli fotowoltaicznych oraz śrubach napędowych łodzi.

Elementy konstrukcji zostały wykonane w technologii druku 3D lub wycięte laserem z blachy aluminiowej. Elementy drukowane zaprojektowano w sposób umożliwiający efektywne wykorzystanie tej technologii wytwarzania.
Platforma efektora posiada otwory montażowe, dzięki czemu możliwy jest montaż kamer wideo systemu wizyjnego robota oraz innych elementów.

Napęd z silników krokowych przenoszony jest przez paski zębate. Mocowania silników zostały zaprojektowane tak, aby umożliwić napięcie pasków.

W przegubach pomiędzy kolejnymi elementami konstrukcji wykorzystano łożyska toczne oraz połączenia śrubowe.

Układ sterowania

Ogólny schemat sterowania:

Układ sterowania składa się z trzech elementów: Komputera RaspberryPi w roli kontrolera napędów elektrycznych, aplikacji okienkowej pełniącej rolę panelu sterowania manipulatorem oraz aplikacji mobilnej, która pozwala na odczyt orientacji telefonu komórkowego i przesłanie tych danych do aplikacji okienkowej.

Kontroler napędów:
W celu kontroli położenia kątowego trzech silników krokowych napisano program w języku Python uruchamiany na komputerze RaspberryPi, w którym zaimplementowano algorytm zadawania pozycji kątowej silnika oraz moduł komunikacji z komputerem PC. Program otrzymuje zadane wartości położenia silników, a następnie przesuwa wały silników do zadanej pozycji. Program na bieżąco odsyła również przybliżone aktualne położenie napędów. Do sterowania silnikami krokowymi wykorzystano moduły DRV8825. W ramach pracy zaprojektowano również płytkę PCB, dzięki której możliwe jest prostsze podłączenie silników.

Aplikacja sterująca:
Aplikacja okienkowa napisana w języku C# odpowiada za połączenie wszystkich elementów układu sterowania. Jej głównym elementem jest interfejs graficzny, dzięki któremu operator może sterować manipulatorem na trzy sposoby. Pierwszy tryb sterowania pozwala na zadawanie orientacji platformy efektora. Drugi tryb umożliwia zadawanie pozycji kątowej dla każdego silnika osobno. W obu trybach wartości zadane mogą być zmieniane skokowo lub w czasie rzeczywistym. Ostatni tryb wykorzystuje dane z aplikacji mobilnej do zadawania pozycji manipulatora. W każdym z trybów użytkownik informowany jest o stanie połączenia z kontrolerem napędów oraz o położeniu aktualnym każdego silnika W programie zaimplementowano algorytmy kinematyki prostej i odwrotnej pozwalające na przeliczenie wartości zadawanych przez użytkownika na pozycje kątowe trzech silników.

Aplikacja mobilna:

Na potrzeby realizacji jednej z metod sterowania, stworzono aplikację mobilną w języku Java, na telefony komórkowe z systemem operacyjnym Android. Aplikacja wykorzystuje czujniki położenia urządzenia.

Wszystkie trzy elementy układu sterowania manipulatora zostały podłączone do jednej sieci bezprzewodowej. Komunikacja pomiędzy aplikacją okienkową a RaspberryPi i aplikacją mobilną wykorzystuje protokół UDP.

Stworzony mechanizm oraz układ sterowania pozwalają na szeroki rozwój projektu. Konstrukcja może być rozbudowana o dodatkowe elementy takie jak obudowa napędów lub mocowania urządzeń, które będą umieszczone na platformie efektora. Układ sterowania umożliwia jego rozsszerzenie o czujniki pomiaru pozycji kątowej wałów silników co zapewni wikszą dokładność pozycjonowania manipulatora. Aplikacja mobilna może być rozbudowana o funkcje transmisji obrazu wideo z kamer systemu wizyjnego robota, a uruchomiona na telefonie komórkowym zamontowanym np. w goglach VR na głowie operatora umożliwi swobodną i naturalną kontrolę manipulatora.