Autonomiczne roboty mobilne
Transkrypt
Autonomiczne roboty mobilne
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Rozszerzony konspekt preskryptu do przedmiotu „Autonomiczne Roboty Mobilne” dr inż. Andrzej Chmielniak Instytut Techniki Lotniczej i Mechaniki Stosowanej Wydział Mechaniczny Energetyki i Lotnictwa Politechnika Warszawska Cel zajęć: Celem zajęć jest przedstawienie studentom zagadnień związanych z projektowaniem, budową, programowaniem i użytkowaniem robotów mobilnych oraz maszyn kroczących w różnym stopniu autonomii. Przegląd zagadnień: W ramach przedmiotu omawiane są zagadnienia konstrukcji kołowych robotów mobilnych ze szczególnym uwzględnieniem ich układów napędowych. Następnie opisywane są zagadnienia dotyczące nawigacji robotów mobilnych oraz oczujnikowanie robotów. Opisywane są także różne realizacje sprzętowe systemów sterowania robotów mobilnych oraz architektura funkcjonalna sterowników robotów. Omawiane są także zagadnienia dotyczące systemów wizyjnych. Następnie przedstawiane są różne rozwiązania techniczne maszyn kroczących i są opisywane specyficzne zagadnienia dotyczące sterowania tego rodzaju robotami. Zakończenie wykładu stanowi opis istniejących i potencjalnych zastosowań robotów mobilnych. Forma zajęć: Zajęcia są prowadzone w formie wykładu w wymiarze 2 godzin tygodniowo. Przewiduje się, że ostatnie zajęcia w semestrze są przeznaczone na kolokwium zaliczeniowe. Ramowy plan zajęć: Wykład 1: Wstęp, podstawowe definicje, elementy składowe konstrukcji robota mobilnego Wykład 2: Układy napędowe typowych kołowych robotów mobilnych Wykład 3: Pojęcie nawigacji, samolokalizacja, odometria a konstrukcja robota Wykład 4: Błędy odometrii, metody poprawy wyników samolokalizacji Wykład 5: Nawigacja z wykorzystaniem znaczników w otoczeniu robota Wykład 6: Określanie pozycji robota na podstawie mapy Wykład 7: Planowanie ścieżki robota mobilnego - przestrzeń konfiguracyjna Wykład 8: Planowanie ścieżki - najczęściej stosowane metody planowania Wykład 9: Planowanie ścieżki - planowanie lokalne, metody probabilistyczne Wykład 10: Systemy sterowania - zadania, budowa, architektura hierarchiczna Wykład 11: Sterowanie behawioralne Wykład 12: Systemy wizyjne w robotyce mobilnej Wykład 13: Maszyny kroczące Wykład 14: Zastosowania autonomicznych robotów mobilnych Wykład 15: Zaliczenie Proponowane pozycje literatury: J.C. Latombe „Robot motion planning”, Kluwer Academic Publishers 1991 T. Zielińska „Maszyny kroczące: podstawy, projektowanie, sterowanie i wzorce biologiczne”, PWN 2003 P. Ciesielski, J. Sawoniewicz, A. Szmigielski „Elementy robotyki mobilnej” P-JWSTK 2004 K. Tchoń „Manipulatory i roboty mobilne : modele, planowanie ruchu, sterowanie” PLJ,2000 Wykorzystane w przygotowaniu zajęć materiały dostępne w sieci: J. Borenstein, H. R. Everett, L. Feng „Where am I? Sensors and Methods for Mobile Robot Positioning”, 1996 L. E. Parker „Software for Intelligent Robotics”, 2002 R. Siegwart „Autonomous Mobile Robots”, EPFL S. Marsland „Machine Learning for Autonomous Mobile Robots” 2 Wstęp Rozwój robotyki przyniósł szybki wzrost liczby produkowanych i eksploatowanych robotów mobilnych. Są one wyposażone w mniej lub bardziej zaawansowany system sterowania, który zwykle zapewnia pewną autonomię działania robotów. W niniejszym opracowaniu przybliżone zostaną zagadnienia związane z budową, sterowaniem i użytkowaniem autonomicznych robotów mobilnych. Autonomiczny robot mobilny jest definiowany jako urządzenie techniczne, które w celu wykonania postawionego zadania przemieszcza się bezkolizyjnie w określonym środowisku i bez bezpośredniej ingerencji operatora realizuje pod kontrolą systemu nadzorczego narzucony z zewnątrz lub zaplanowany przez siebie ciąg czynności. Inna definicja mówi, że autonomiczny robot mobilny to urządzenie techniczne o następujących cechach: • możliwość ruchu, • możliwość rozpoznawania otoczenia, • autonomia działania, • możliwość wykonywania pewnych czynności w otoczeniu. Z powyższej definicji można wywnioskować, jakie są podstawowe elementy składowe robotów mobilnych: • układ jezdny (pozwala zrealizować ruch robota w otoczeniu), • układ czujników (pozwala na zbieranie danych o otoczeniu robota), • układ sterujący (najczęściej komputer lub zestaw komputerów pozwalających na autonomiczną pracę robota), • układ zasilania (najczęściej akumulator - pozwala na funkcjonowanie wszystkich zasilanych energią elektryczną elementów robota), • wyposażenie dodatkowe (umożliwia wykonywanie pewnych czynności w otoczeniu). Kluczowym czynnikiem odróżniającym roboty mobilne od innych robotów jest możliwość poruszania się. Roboty mobilne mogą poruszać się na wiele sposobów, co stanowi kryterium klasyfikacji na: • roboty latające, • roboty pływające: o po powierzchni wody, o podwodne, • roboty kroczące: o po gruncie, o po dnie zbiorników wodnych, • roboty kołowe: o do pracy wewnątrz pomieszczeń (ang. in-door), o do pracy w otwartej przestrzeni (ang. out-door), • roboty na gąsienicach • roboty o napędach hybrydowych. W niniejszym opracowaniu zagadnienia będą dotyczyły głównie robotów przeznaczonych do poruszania się na lądzie, jednakże wiele proponowanych rozwiązań np. czujników bądź systemów sterowania można zaaplikować do innych zastosowań, np. do robotów pływających. Zagadnieniom dotyczącym robotów kroczącym będzie poświęcony odrębny rozdział, w ramach którego zostaną omówione problemy, które nie pojawiają się w przypadku budowy bądź eksploatacji pozostałych typów robotów, w szczególności kołowych. W całym dalszym tekście określenie robot mobilny będzie tożsame z autonomicznym robotem mobilnym, przy czym stopień autonomii może być bardzo zróżnicowany; od bardzo 3 małego (np. roboty zdalnie sterowane z przewodowym łączem z operatorem) aż do pełnej autonomii (np. bezobsługowa kosiarka do trawy z systemem zasilania z wykorzystaniem energii Słońca). Budowa autonomicznego robota mobilnego Jak wspomniano wcześniej, robot mobilny jest zbudowany z następujących elementów składowych: • układ jezdny, • zestaw czujników, • układ sterujący, • układ zasilania, • wyposażenie dodatkowe, • korpus robota. Każdy z tych elementów musi spełniać określone wymagania, aby mógł spełnić swoje zadania w robocie. Poniżej określono pewne podstawowe wymagania odnośnie poszczególnych elementów oraz opisano podstawowe realizacje. Układ jezdny Wymagania stawiane układowi napędowemu są następujące: • zapewnienie realizacji ruchu robota w założonych warunkach środowiska • zapewnienie wygenerowania i spożytkowania odpowiedniej mocy, • możliwie niska masa na jednostkę mocy, • łatwe sterowanie układem napędowym, które obejmuje możliwość (najlepiej) płynnej zmiany położenia, prędkości (zarówno wartości bezwzględnej, jak i znaku prędkości) i przyspieszenia, a niekiedy regulacji mocą, • możliwość bezproblemowego ręcznego przepychania robota bez groźby uszkodzenia układu jezdnego i pracującym w tym czasie systemie samolokalizacji. W układach jezdnych robotów mobilnych najczęściej stosuje się silniki elektryczne. Najchętniej stosowanym typem silnika jest silnik szczotkowy prądu stałego. Użycie tego rodzaju silnika wymusza zastosowanie przekładni mechanicznej w celu zredukowania prędkości obrotowej. Zwykle stosuje się wielostopniowe przekładnie zębate zaopatrzone w różnego typu systemy do kasowania luzów. Można zastosować także rozwiązania z przekładnią łańcuchową, paskową (pasek zębaty) lub ślimakową. Silniki komutatorowe prądu stałego charakteryzują się dosyć wysokimi znamionowymi prędkościami obrotowymi i niewielką masą, a sterowanie takiego silnika jest bardzo proste. Najczęściej na wale silnika umieszcza się przetwornik pomiarowy do pomiaru aktualnej prędkości obrotowej oraz położenia wału. Niedawno pojawiły się konstrukcje robotów bez przekładni mechanicznej z silnikami typu direct drive, jednak silniki tego typu są dosyć kłopotliwe w sterowaniu. W celu ułatwienia pozycjonowania położenia kątowego wału silnika stosuje się także silniki krokowe, jednakże ich cechą charakterystyczną są duże chwilowe zmiany prędkości obrotowej i momentu napędowego, co skutkuje niespokojną jazdą robota. Ponadto silniki krokowe charakteryzują się niekorzystnym stosunkiem mocy do masy. Rozwój technik modelarskich poskutkował coraz lepszymi konstrukcjami bezszczotkowych asynchronicznych silników trójfazowych, które są produkowane jako jednostki napędowe o bardzo korzystnym stosunku masy do uzyskiwanej mocy i są wyposażane w dedykowane falowniki, które umożliwiają sterowanie prędkością silnika w dosyć szerokich granicach. Zastosowanie tego typu silników skutkuje nadal koniecznością użycia redukcyjnej przekładni mechanicznej. 4 W dużych konstrukcjach robotów mobilnych stosowane są również do napędu silniki spalinowe. Utrudniają one jednakże badania i eksploatację robota w pomieszczeniach zamkniętych. Systemy napędów spalinowych wymagają użycia przekładni mechanicznej, hydraulicznej lub elektrycznej. W tym ostatnim przypadku silnik spalinowy stanowi najczęściej źródło energii elektrycznej dla napędu elektrycznego (omówionego powyżej), a także dla pozostałych elementów robota. Zestaw czujników Funkcje, jakie spełniają czujniki w robotach mobilnych, są następujące: • badanie stanu wewnętrznego robota – zbieranie danych o parametrach, które określają stan fizyczny elementów robota, np. stan naładowania akumulatorów lub siły wewnętrzne w elementach konstrukcyjnych; • samolokalizacja – zbieranie informacji pozwalających na określenie, gdzie znajduje się robot względem nieruchomego układu współrzędnych związanego z otoczeniem robota; • rozpoznawanie otoczenia – wykrywanie określonego rodzaju obiektów w otoczeniu robota, w szczególności tych, które mogą stanowić przeszkody dla ruchu robota; • inne funkcje, np. związane z określonymi zadaniami, które wykonuje robot, np. pomiar parametrów fizycznych powietrza w otoczeniu robota. Warto zaznaczyć, że niektóre czujniki mogą spełniać więcej, niż jedną z wyżej wymienionych funkcji, np. czujnik odległości od obiektów w otoczeniu robota może służyć do wykrywania przeszkód przy jednoczesnym określaniu, gdzie znajduje się robot. Istotne jest także zaprojektowanie rozmieszczenia czujników w ten sposób, aby jak najlepiej spełniały swoje zadania. Wymagania stawiane czujnikom są następujące: • określona dokładność działania, • ograniczone poziom zużycia energii, • łatwość przekazania wyników działania do systemu sterowania. Najczęściej w robotach mobilnych stosuje się następujące typy czujników: mierniki prądu i napięcia, przetworniki obrotowo-impulsowe na ruchomych osiach, tensometryczne czujniki odkształceń, czujniki przyspieszenia, czujniki mechanicznego kontaktu z przeszkodami, czujniki zbliżeniowe, ultradźwiękowe i laserowe czujniki odległości, systemy wizyjne, czujniki współpracujące ze stacjonarnymi systemami nawigacyjnymi (np. GPS). System sterowania Najważniejszym elementem systemu sterowania w praktyce zawsze jest komputer. Komputer sterujący najczęściej jest komputerem pokładowym, czyli na stałe związanym z konstrukcją robota. Jeżeli zachodzi taka potrzeba, to część zadań dotyczących sterowania wykonywana jest poza komputerem pokładowym, np. na komputerze (lub zespole komputerów) stacjonarnym lub przenośnym, ale nie pokładowym. Sprzęt stosowany w robotach mobilnych w charakterze komputerów pokładowych to najczęściej: • mikrokontrolery, czyli komputery jednoukładowe o parametrach obliczeniowych dobieranych do konkretnych zadań • komputery klasy PC, najczęściej w postaci miniaturowych jednostek z zapewnionym niskim poziomem zużycia energii. Warunki stawiane komputerom sterującym to: • praca w czasie rzeczywistym (gwarantowany maksymalny czas odpowiedzi systemu komputerowego na zmiany w jego otoczeniu) • energooszczędność 5 • zapewnienie mocy obliczeniowej i pamięci pozwalającej na skuteczne wykonywanie wszystkich zadań związanych ze sterowaniem • niezawodność i odporność na warunki panujące w środowisku robota • łatwość połączenia ze sterowanymi elementami robota, przede wszystkim z czujnikami i układami wykonawczymi • łatwość komunikacji z operatorem (użytkownikiem) • łatwość komunikacji z innymi (niepokładowymi) komputerami. Istotnymi elementami sprzętu komputerowego są moduły odpowiedzialne za współpracę komputera z urządzeniami zewnętrznymi. Stosowane są tu przetworniki analogowo-cyfrowe i cyfrowo-analogowe, magistrale służące do podłączenia inteligentnych czujników (np. CAN, 1-Wire i inne) oraz inne specjalizowane układy wejścia-wyjścia, jak np. karta przechwytująca sygnał wideo (ang. frame grabber) czy sprzętowy syntezator mowy. Systemy operacyjne, stosowane w komputerach sterujących robotami mobilnymi, to najczęściej systemy czasu rzeczywistego, które zapewniają łatwość wykonania sprawnego i niezawodnego systemu sterowania. System czasu rzeczywistego pozwala na uruchomienie aplikacji sterujących, które działają równolegle ze sterowanym procesem (tu: ruch i inne zadania robota) zapewniając odpowiedź na zmiany stanu w zdeterminowanym czasie, gwarantowanym przez system. Pod kontrolą systemu czasu rzeczywistego łatwo można pisać własne oprogramowanie, które pozwala na bezpośrednią współpracę z nietypowymi urządzeniami wejściowo-wyjściowymi. Sposoby tworzenia systemów sterowania dla autonomicznych robotów mobilnych zostaną omówione w późniejszych wykładach. Zasilanie Niemal wszystkie konstrukcje robotów mobilnych są zasilane energią elektryczną pozyskiwaną z różnego typu akumulatorów. W większych konstrukcjach używa się akumulatorów kwasowych, mniejsze konstrukcje korzystają z akumulatorów NiCd, NiNH, LiJon i polimerowych. Wymagana jest tutaj jak największa wartość gęstości mocy na jednostkę objętości lub masy akumulatora. Ze względu na spore zużycie energii przez elementy robota i wiążący się z tym krótki możliwy czas pracy na komplecie w pełni naładowanych akumulatorów (co utrudnia eksploatację robota), pojawiają się konstrukcje wyposażone silniki spalinowe, napęd pneumatyczny, ogniwa paliwowe itp. Niektóre z tych rozwiązań wprowadzają pewne ograniczenia (np. brak możliwości pracy silnika spalinowego w pomieszczeniach) lub są rozwiązaniami bardzo kosztownymi, co utrudnia ich stosowanie. W warunkach laboratoryjnych i podczas testów często stosuje się zasilanie poprzez przewód, ale wynikające z tego niedogodności skutkują traktowaniem takiego rozwiązania jako prowizorycznego. Wyposażenie dodatkowe Wyposażenie dodatkowe robota mobilnego jest ściśle związane z zadaniami, do rozwiązywania których jest przeznaczony. Stosuje się zatem wszelkiego rodzaju uchwyty i manipulatory, a także urządzenia usługowe, np. kosiarki, czy odkurzacze. W robotach policyjnych i wojskowych instalowane są także urządzenia do rażenia wroga. Korpus robota Zadaniem korpusu jest przede wszystkim zapewnienie pewnego zamocowania wszystkich elementów: czujników, układów napędowych i elementów wykonawczych, a także ochrona elementów robota przed zniszczeniem wskutek oddziaływań z zewnątrz robota (np. deszcz) bądź kolizji z przeszkodami. Korpus powinien także by estetyczny, co może zapewnić sukces komercyjny konstrukcji. 6