WIZUALIZACJA I STEROWANIE ROBOTEM

Podobne dokumenty
ZASTOSOWANIE ŚRODOWISKA PROGRAMISTYCZNEGO PYTHON ORAZ MODELI CAD W STEROWANIU RUCHAMI ROBOCZYMI MASZYN

Manipulator OOO z systemem wizyjnym

Dodatek A. Spis instrukcji języka Prophio.

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Laboratorium Komputerowe Systemy Pomiarowe

PlantVisor_1.90PL Instrukcja instalacji, konfiguracji oraz obsługi

1 Moduł Bramki xcomfort

Opracowanie systemu sterowania wybranej linii technologicznej z uwzględnieniem zagadnień inżynierii oprogramowania

- WALKER Czteronożny robot kroczący

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

1 Moduł Konwertera. 1.1 Konfigurowanie Modułu Konwertera

Instrukcja do konwertera USB-RS232

Konsola operatora TKombajn

Instrukcja podłączenia i konfiguracji BLUETOOTH NX. Interfejs. (instrukcja dostępna także na ver

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Koncentrator USB-4xRS (HUB USB-4xRS)

Instrukcja konfiguracji programu Fakt z modułem lanfakt

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

STEROWANIE ROBOTEM MOBILNYM TYPU LINE-FOLLOWER

LEKCJA 2 Program do zdalnego sterowania robotem

Sterowanie procesem wiercenia otworów w elemencie na linii produkcyjnej przy pomocy sterownika PLC

2.1. Duszek w labiryncie

Rys. 1. Brama przesuwna do wykonania na zajęciach

Rozdział ten zawiera informacje na temat zarządzania Modułem DMX oraz jego konfiguracji.

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Lokalizator GPS G1000

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Łukasz Januszkiewicz Technika antenowa

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.

Programowanie w języku Python. Grażyna Koba

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

Instrukcja konfiguracji programu Fakt z modułem lanfakt

1 Obsługa aplikacji sonary

Układy sterowania robotów przemysłowych. Warstwa programowania trajektorii ruchu. Warstwa wyznaczania trajektorii ruchu.

Przekształcenia geometryczne. Dorota Smorawa

Laboratorium z Napęd Robotów

Konfiguracja i podłączenie sterownika Horner APG do oprogramowania Cscape po RS232

Altus 50 RTS / 60 RTS

OPIS PROGRAMU OBSŁUGI STEROWNIKÓW INTECONT >> WAGMASTER << >> INTECONT <<

Odczyt zegara ze sterownika do panelu serii TIU z możliwością korekty ustawień zegara w sterowniku

Lekcja 5 - PROGRAMOWANIE NOWICJUSZ

Urządzenia zewnętrzne

Szybkie prototypowanie w projektowaniu mechatronicznym

Wykorzystanie kontrolera Behringer X-Touch w Presonus Studio One Adam Pietruszko

Sterowanie, uczenie i symulacja robotów przemysłowych Kawasaki

Koncentrator USB-4xRS (HUB USB-4xRS)

Projektowanie systemów zrobotyzowanych

Kod produktu: MP-BTM222-5V

Robot EPSON SCARA T3-401S

Urządzenia zewnętrzne Instrukcja obsługi

Podstawy technologii cyfrowej i komputerów

Programowanie w Scratch robot mbot

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Straszyński Kołodziejczyk, Paweł Straszyński. Wszelkie prawa zastrzeżone. FoamPro. Instrukcja obsługi

1. Opis okna podstawowego programu TPrezenter.

Projektowanie systemów zrobotyzowanych

PROGRAMOWALNE STEROWNIKI LOGICZNE

1 Moduł Bramki xcomfort 3

1 Moduł Neuronu Cyfrowego SM

Rozszerzony konspekt przedmiotu Inteligentne maszyny i systemy

Dr hab. inż. Marek Pawełczyk, prof. nzw. w Politechnice Śląskiej Koordynator Projektu POKL /10

LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Urządzenia zewnętrzne

Programator procesorów rodziny AVR AVR-T910

Robert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)

POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRYCZNY KATEDRA ENERGOELEKTRYKI LABORATORIUM INTELIGENTNYCH INSTALACJI ELEKTRYCZNYCH

Projekt i wykonanie robota klasy Micromouse

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

profili Twój aktualny profil i kliknij na przycisk Kopiuj, po czym wpisz nazwę dla nowego profilu (będzie ona widoczna przy uruchamianiu systemu).

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

Schemat blokowy karty

INTERFEJS DIAGNOSTYCZNY BMW INPA / ADS/ GT1/ DIS / EDIABAS INSTRUKCJA OBSŁUGI Strona 1

PROJEKT MANIPULATORA Z WYKORZYSTANIEM STEROWNIKA SERWOMECHANIZMÓW MAESTRO MINI

BLUETOOTH INSTRUKCJA PODŁĄCZENIA I KONFIGURACJI.

Politechnika Wrocławska

Konfiguracja połączenia sieciowego w menu dekoderów.

1 Przygotuj pracownię komputerową.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Urządzenia zewnętrzne

Klawiatura matrycowa

Instrukcja obsługi programatora AVR Prog USB v2

Rejestratory Sił, Naprężeń.

PROSTY PROGRAM DO MALOWANIA

Drukarki termosublimacyjne

Po wstawieniu widzimy zmianę w zakładce Artykuł do symbolu został przyporządkowany przycisk z bazy artykułów (rys. 4.33).

INSTRUKCJA KALIBRACJI TRUETRUE

Laboratorium Sterowania Robotów Sprawozdanie

Laboratorium Napędu robotów

WARIATOR USTAWIENIA Białystok, Plażowa 49/1, Poland,

Proste układy wykonawcze

Nowe w wersji V17 cnckada

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Instrukcja do oprogramowania ENAP DEC-1

Zad. 6: Sterowanie robotem mobilnym

Przełącznik KVM USB. Przełącznik KVM USB z obsługą sygnału audio i 2 portami. Przełącznik KVM USB z obsługą sygnału audio i 4 portami

Laboratorium Maszyny CNC. Nr 4

PROJEKT ROBOTA MOBILNEGO TYPU LINE FOLLOWER

Kierunek: Mechatronika Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Transkrypt:

Maciej Wochal, Opiekun koła: Dr inż. Dawid Cekus Politechnika Częstochowska, Wydział Inżynierii Mechanicznej i Informatyki, Instytut Mechaniki i Podstaw Konstrukcji Maszyn, Koło Naukowe Komputerowego Projektowania Urządzeń Mechatronicznych i Maszyn WIZUALIZACJA I STEROWANIE ROBOTEM Streszczenie: W pracy przedstawiono wykorzystanie środowiska programistycznego Python wraz z biblioteką graficzną VPython do wizualizacji i sterowania ruchami robota budowanego w ramach Koła Naukowego Komputerowego Wspomagania Projektowania Urządzeń Mechatronicznych i Maszyn. Ponadto zilustrowano algorytm sterowania ramieniem robota. Słowa kluczowe: Python, sterowanie 1. Wstęp W związku z budową w ramach Koła Naukowego Komputerowego Wspomagania Projektowania Urządzeń Mechatronicznych i Maszyn robota kroczącego przedstawionego na rysunku 1, w niniejszej pracy przedstawiono sposób jego sterowania oraz wizualizację ruchów roboczych (aktualne położenie elementów robota). Do tego celu wykorzystano środowisko programistyczne Python oraz bibliotekę graficzną VPython (Visual). Rysunek 1. Budowany robot kroczący

2. Biblioteka graficzna VPython Jednym z ważniejszych składników wykorzystywanym do sterowania robotem i wizualizacji jego ruchów jest biblioteka graficzna VPython [1], bez której wiele rzeczy byłoby bardziej skomplikowane i zajęłoby sporo więcej czasu. Biblioteka ta oferuje wiele obiektów gotowych do natychmiastowego wykorzystania (rys. 2). Rysunek 2. Przykładowe obiekty występujące w bibliotece VPython Kolejną przydatną cechą biblioteki Visual jest pełna automatyzacja zarządzania sceną 3D. Nawet najprostszy program korzystający z tej biblioteki wyposażony jest w funkcje obracania i skalowania sceny. 3. Model robota W środowisku programistycznym Python, przy wykorzystaniu wspomnianej biblioteki Visual, jako pierwsze zamodelowano podstawowe części, które w projekcie są wielokrotnie wykorzystywane (rys. 3). Następnie podzielono modelowanie ramienia robota na etapy (rys. 4), w których najpierw wykonano model chwytaka, po czym zagnieżdżono go w kolejnym członie, itd. Każdy z elementów posiada lokalny układ współrzędnych, co znacznie ułatwia sterowanie.

Rysunek 3. Podstawowe elementy zamodelowane w programie Python Rysunek 4. Etapy modelowania ramienia robota

4. Algorytm sterowania W celu interakcji z użytkownikiem, wykorzystano wbudowane procedury obsługi klawiatury (rys. 5) i myszki (rys. 6), które jednocześnie pozwoliły na znaczne uproszczenie programu. if scene.kb.keys: k = scene.kb.getkey() if k== left : [ustalona akcja] Rysunek 5. Procedura obsługi klawiatury W każdej pętli programu sprawdzany jest stan urządzeń typu HID (Human Input Devices). Każdy klawisz klawiatury ma przypisaną własną parę sygnałów, zwanych scancode. Naciśnięcie dowolnego klawisza generuje sygnał odpowiedniego przerwania, które z kolei jest obsługiwane przez podprogram czytania i interpretacji zawartości bufora klawiatury. Jeżeli zostanie wykryta aktywność ze strony użytkownika, program sprawdza czy naciśnięty klawisz jest wykorzystywany do sterowania pracą robota. Po zidentyfikowaniu wciśniętych klawiszy uruchamiane są funkcje sterujące położeniem poszczególnych członów w przestrzeni, oraz prędkością zmiany położenia. m = scene.mouse if m.clicked: obiekt = m.picked Rysunek 6. Procedura obsługi myszki Obsługa myszki sprowadza się do odczytania identyfikatora klikniętego obiektu, co w późniejszym etapie pozwala na wybranie aktywnego członu robota. Informacja o kliknięciu dotyczy obiektu najniższego poziomu. Dopiero później następuje rekurencyjne przeszukiwanie drzewa relacji pomiędzy ramkami, w celu określenia, do którego członu należy kliknięty obiekt. Ogólny algorytm sterowania ramieniem robota jest stosunkowo prosty: jeżeli kliknięty obiekt znajduje się w ramce grupującej elementy, następuje sprawdzenie, czy jego ramką jest któryś z obsługiwanych członów robota, jeśli nie wykonywana jest ta sama procedura sprawdzająca dla ramki, w której znajduje się aktualny element i tak do momentu, w którym pierwszy warunek nie zostanie spełniony, lub zostanie określone, w którym członie znajduje się kliknięty element, po wykryciu, na którą część robota kliknięto, następuje jej aktywacja, czyli zmiana koloru części, oraz ustawienie wymaganych zmiennych. 4.1. Sterowanie serwomechanizmami W momencie, gdy użytkownik wciśnie na klawiaturze strzałkę w lewo, lub w prawo, następuje obrót aktywnej części o kąt ustalony za pomocą strzałek górnej

i dolnej. Ruch robota realizowany jest jednocześnie w modelu wirtualnym, jak i w obiekcie rzeczywistym. Od strony sprzętowej do sterowania serwomechanizmami użyty został sterownik Pololu Maestro USB Servo Controller (rys. 7), z którym komunikacja może przebiegać na poziomie portu szeregowego w standardzie TTL (+5V), co umożliwia podłączenie np. adaptera Bluetooth, czy mikrokontrolera, lub poprzez kabel USB widziany przez komputer, jako wirtualny port szeregowy. Rysunek 7. Sterownik serwomechanizmów Mini Maestro 12-Channel USB Servo Controller W celu ustawienia wybranego serwomechanizmu w wybranej pozycji należy nawiązać połączenie ze sterownikiem, a później sterowanie polega na przesyłaniu trój-bajtowych instrukcji sterujących (rys. 8). 5. Wnioski Rys. 8. Instrukcja sterująca Mimo iż wszystkie założone cele zostały osiągnięte, to w obecnej postaci opracowany program nie nadaje się do sterowania całym robotem kroczącym, a jedynie do sterowania jego ramionami. Trudno jest wyobrazić sobie sterowanie maszyną składającą się z ponad dwudziestu serwomechanizmów przy użyciu jedynie kilku przycisków. Można w ten sposób na przykład zdefiniować kierunek, w którym robot miałby się przemieszczać, a robot wykonałby resztę czynności automatycznie, jednak będzie to wymagało jeszcze sporo nakładów pracy nad algorytmami, które sprawią, że będzie on mógł się poruszać niemal autonomicznie,

a sterowanie będzie polegało jedynie na ustaleniu pewnych wytycznych, a nie pozycjonowaniu każdego serwomechanizmu z osobna. Literatura 1. www.vpython.org 2. D. Scherer, P. Dubois, B. Sherwood, VPython: 3D Interactive Scientific Graphics for Students, Computing in Science and Engineering, 2000, 82-88.