Rok 26 (2022) Nr 4(246)
ISSN 1427-9126, Indeks 339512
Redaktor naczelny
Korekta Druk Wydawca
Kontakt Pomiary Automatyka Robotyka-
Rada NaukowaDrodzy Czytelnicy,
Redaktor naczelny kwartalnika Pomiary Automatyka Robotyka
Pomiary Automatyka Robotyka, ISSN 1427-9126, R. 26, Nr 4/2022, 5–26, DOI: 10.14313/PAR_246/5
Aby ocenić, jaki wpływ będą miały roboty na społeczeństwo, należy skrupulatnie przeanalizować obecny stan wiedzy, a w szczególności wskazać fundamentalne problemy, które jeszcze nie zostały rozwiązane, mające istotne znaczenie dla potencjalnych zmian społecznych powodowanych rozwojem robotyki. Wspomniany wpływ zależy od inteligencji robotów, więc ten aspekt dominuje w przedstawionej tu analizie. Rozważania zostały podzielone na trzy części: 1) analizę czynników technicznych wpływających na inteligencję i bezpieczeństwo robotów, 2) analizę obecnych możliwości robotów, 3) analizę przewidywań dotyczących rozwoju robotyki, a w konsekwencji poglądów na skutki tego rozwoju dla społeczeństwa. Niniejszy artykuł poświęcony jest pierwszemu z wymienionych tu trzech zagadnień.
Motywacja
Ostatnio nasiliły się w prasie i opracowaniach o bardziej naukowym charakterze katastroficzne doniesienia przestrzegające przed rozwojem sztucznej inteligencji i robotyki. W wersji skrajnej wieszczą one, iż ludzie staną się zbędni, a maszyny przejmą władzę nad Światem. W istocie, słowo robot pojawiło się po raz pierwszy w sztuce Karela Čapeka o tytule “R.U.R –Rossumovi Univerzální Roboti” [145] napisanej w 1920 r. Jej prapremiera odbyła się w 1921 r. Już w tym pierwszym dziele poświęconym robotom zawładnęły one naszą planetą. Początkowo posłuszne maszyny obdarzono uczuciami, co doprowadziło je do wniosku, że ludzie, którzy wskutek pojawienia się robotów stali się bezproduktywni, a więc są niepotrzebni. Bunt robotów doprowadził niemal do wyplenienia ludzi. Ten scenariusz oparty jest na przeświadczeniu, że roboty mogą się stać bardziej inteligentne od ludzi, a co więcej mogą podejmować decyzje bez uwzględniania ludzkich zasad moralnych. Wprawdzie wyeliminowanie ludzi przez roboty wydaje się mało prawdopodobne, ale z faktu, że są stosowane w coraz to więk-
szej liczbie dziedzin gospodarki wynika, iż będą miały istotny wpływ na społeczeństwo. Motywacją do napisania niniejszego artykułu była próba rozstrzygnięcia, na ile roboty zmienią zasady funkcjonowania społeczeństw.
Odpowiedź na tak postawione pytanie wymaga określenia aktualnego stanu robotyki, a w szczególności pokazania, jaki jest stan podstawowych czynników kształtujących zarówno inteligencję jak i możliwości ruchowe tych urządzeń. Istotne jest też tempo zachodzących zmian technologicznych. Na podstawie literatury dotyczącej oddziaływania maszyn na zachowanie ludzi, należy przewidzieć, jaki wpływ będą miały roboty na społeczeństwo. W dużej mierze jest to uwarunkowane stopniem akceptacji tych urządzeń przez ludzi, tworzonym prawem oraz prawami ekonomii. Zawarta tu analiza jest wynikiem studiów literaturowych i streszcza główne nurty w debacie toczącej się nad tym problemem od lat. Jak każda prognoza, obarczona jest niepewnością, tym większą im dłuższy jest horyzont przewidywania.
Ta część artykułu koncentruje się przede wszystkim na tych aspektach robotyki, które związane są z inteligencją i sterowaniem robotów. Oczywiście inteligencja nie jest oderwana od możliwości ruchowych i percepcyjnych tych maszyn, więc i te zagadnienia będą pojawiać się w tym tekście.
Aby ocenić, jaki wpływ na społeczeństwo będą mieć roboty, trzeba przyjrzeć się nieco bardziej szczegółowo, jak obecnie próbuje się wytworzyć inteligentne zachowania tych urzą-
dzeń. Ponadto należy dokonać projekcji, do czego będą zdolne w przyszłości, a to można jedynie zrobić analizując obecne trendy rozwojowe. Niemniej jednak wpierw trzeba skierować snop światła na fundamentalne czynniki wpływające na inteligencję robotów. By uporządkować dyskusję, na wstępie należy nieco lepiej scharakteryzować przedmiot zainteresowań.
Przystoi na wstępie dobrze określić przedmiot zainteresowania artykułu. Niestety nie ma jednej ogólnie przyjętej definicji robota. Większość definicji cierpi albo na zbytnią szczegółowość, wykluczającą urządzenia powszechnie uważane za roboty, albo na zbytnią ogólnikowość, umożliwiającą zaliczenie do robotów urządzeń, które trudno jest uznać za takowe. Joseph Engelberger, który wspólnie z Georgem Devolem założył firmę Unimation, w której wytworzono pierwsze roboty przemysłowe [103], gdy został zapytany o definicję robota, wyrażając swą frustrację brakiem adekwatnego określenia, powiedział: I can’t define a robot, but I know one when I see one. (Nie potrafię zdefiniować robota, ale rozpoznaję go, gdy go widzę.) [34].
W tym artykule przyjęto bardzo szeroką definicję robota, niemniej jednak wyklucza ona oprogramowanie nieoddziałujące na środowisko fizyczne. Tak więc, robot stanowi system, który wpływa na otoczenie fizyczne przez swoje efektory (manipulatory, chwytaki, nogi, koła etc.), określa stan środowiska za pomocą swych receptorów (czujników) oraz obdarzony jest imperatywem wewnętrznym do realizacji zadań zdefiniowanych albo przez jego projektanta albo przekazywanych pośrednio lub bezpośrednio przez człowieka. System sterowania robota na podstawie danych uzyskanych z receptorów oraz definicji zadania, stanowiącego wspomniany imperatyw do działania, steruje efektorami tak, aby owo zadanie zrealizować. Działanie robota w środowisku fizycznym oczywiście nie wyklucza jego interakcji z cyberprzestrzenią. System robotyczny jest pojęciem bardziej ogólnym, składając się z co najmniej jednego robota oraz ewentualnie z dodatkowych urządzeń współpracujących.
Już w latach 80. XX w. przewidywano, iż sztuczna inteligencja będzie miała kluczowe znaczenie dla robotyki. Michael Brady, jeden z prekursorów robotyki, określił ją, jako dziedzinę badającą połączenie akcji z percepcją [21]. Wskazał ponadto, że jeżeli roboty mają się zachowywać inteligentnie, to centralną rolę odegra w tym połączeniu sztuczna inteligencja. Niestety jednoznaczne określenie czym jest sztuczna inteligencja jest bodaj jeszcze trudniejsze niż zdefiniowanie robota. George Luger i William Stubblefield przyjmują, że jest to gałąź informatyki zajmująca się automatyzacją inteligentnego zachowania [93]. Natomiast Stuart Russell i Peter Norvig, w klasycznym dziele poświęconym sztucznej inteligencji [122], pokusili się o podział jej definicji na kategorie. Z ich analizy wynikało, że istnieją cztery kategorie systemów korzystających ze sztucznej inteligencji. Są to systemy: 1) myślące, jak ludzie, 2) działające, jak ludzie, 3) myślące racjonalnie i 4) działające racjonalnie. Pierwsze dwie kategorie definicji odnoszą się do sposobu funkcjonowania ludzi, a więc wykorzystywane są przez kognitywistykę, czyli naukę o obserwacji i analizie działania oraz modelowaniu umysłu i mózgu, natomiast dwie ostatnie jedynie wymagając racjonalności, dotyczą systemów osiągających dobre efekty swego działania w kontekście posiadanej wiedzy, a więc dobrze nadają się do wykorzystania przez nauki inżynierskie, w szczególności do optymalizacji działania systemów.
Aby oderwać rozważania na temat inteligencji od kontekstu ludzkiego Alan Turing opracował eponimiczny test [143].
Test ten jest swoistą grą polegającą na zgadnięciu przez człowieka, na podstawie prowadzonej konwersacji z niewidocznym interlokutorem, czy jest to człowiek czy maszyna. Jeżeli jest to maszyna, a testujący nie jest w stanie stwierdzić tego
z pewnością, to mamy do czynienia ze sztuczną inteligencją. Test ten nie jest powszechnie wykorzystywany, ze względu na subiektywność osądu, czy obserwowane działanie jest inteligentne czy nie.
Yann LeCun uważa, że istotą inteligencji jest zdolność do przewidywania. Czasami wyraża to jako zdolność do uczenia się przewidywania, a więc podstawą inteligencji są zdolność przewidywania oraz umiejętność uczenia się. Wszakże należy pamiętać, że te zdolności potrzebują odpowiednich zasobów wiedzy (zgromadzonej lub dostępnej do zdobycia ze środowiska), aby rozumowanie przebiegało szybko zasoby te muszą być odpowiednio zorganizowane. W szczególności maszyny potrzebują wiedzy zdroworozsądkowej, którą ludzie zdobywają w dzieciństwie, i na podstawie której są w stanie przewidywać konsekwencje swoich czynów. LeCun rysuje interesującą koncepcję badawczą mająca prowadzić do budowy maszyn inteligentnych w swojej wizji [90]. Wizja ta dotyczy badań w celu stworzenia inteligentnych maszyn, które uczą się, jak zwierzęta, które potrafią wnioskować i planować, i których zachowanie jest określone ogólnymi celami, a nie na sztywno zaprogramowane bądź zewnętrznie nadzorowane albo motywowane otrzymywaniem zewnętrznych nagród. LeCun spodziewa się, że rozwiązaniem problemu będzie architektura systemu złożona z wielu głębokich sieci neuronowych imitujących poszczególne obszary ludzkiego mózgu. Istotną rolę w jego podejściu odgrywa model świata, który zazwyczaj był ignorowany przy wykorzystywaniu sieci neuronowych. Pozwala on przewidywać rezultaty działania robota, a więc ma fundamentalne znaczenie dla planowania działań.
Pomimo że istnieje wiele różnych kategorii robotów, to nie dopracowano się ścisłej ich klasyfikacji. Jako zgrubne kryterium można zastosować stopień strukturyzacji (uporządkowania) środowiska, w którym dany robot działa. Wtedy można wyróżnić trzy główne kategorie robotów: przemysłowe, usługowe oraz terenowe. Dwie ostanie kategorie w literaturze bywają wspólnie określane jako roboty zaawansowane (ang. advanced robots) [132]. Roboty przemysłowe działają w otoczeniu w pełni strukturalnym, gdzie położenia wszystkich obiektów są ściśle określone, więc roboty tej kategorii nie muszą mieć receptorów albo mają ich niewiele, bo w pełni mogą polegać na swojej wiedzy o pozycjach przedmiotów znajdujących się w środowisku. Roboty terenowe działają w otoczeniu, którego strukturę trudno określić, np. las, sad albo pole. Te roboty mogą zrealizować swoje zadania tylko przy wykorzystaniu różnorodnych receptorów. Roboty usługowe działają w środowisku o częściowo określonej strukturze, np. w pomieszczeniach mieszkalnych, biurowych czy szpitalnych lub gastronomicznych. Roboty tej kategorii również potrzebują receptorów do realizacji zadania. Ta podstawowa kategoryzacja robotów może być dalej rozbudowywana poprzez zastosowanie dodatkowych kryteriów klasyfikacji, szczególnie że wymienione wyżej podstawowe kryterium jest ciągłe, a nie dyskretne, a więc roboty przemysłowe i terenowe jawią się jako skrajne kategorie robotów usługowych. Dlatego, z jednej strony, roboty usługowe, działające w środowisku częściowo strukturalnym, obejmują szczególnie szeroką rodzinę robotów, a z drugiej, obecne roboty przemysłowe nie muszą działać w otoczeniu w pełni strukturalnym, a terenowe mogą realizować swoje zadania w środowisku częściowo strukturalnym, np. na drogach publicznych. Wśród robotów usługowych wymienia się takie podkategorie jak roboty osobiste (ang. personal), stosowane w domach, roboty profesjonalne (ang. professional), stosowane w biurach lub szpitalach, roboty asystujące (ang. assistive) lub kompani (ang. companions) wspomagający ludzi niepełnosprawnych i starszych, czy koboty (ang. collaborative robots, co-robots, cobots) [161]. Te ostatnie są robotami bezpośrednio współpracują-
cymi z ludźmi przy produkcji, a więc można je zakwalifikować zarówno do kategorii robotów przemysłowych jak i usługowych. Powstały one wskutek rozwoju technologii potrzebnych do konstrukcji robotów usługowych, a technologie te dopiero wtórnie zostały zastosowane w przemyśle. Stało się tak, ponieważ uznano, że są na tyle bezpieczne, że dzięki nim roboty mogą wchodzić w bezpośrednie interakcje z ludźmi, a więc standardowo stosowane zewnętrzne bariery i ogrodzenia odgradzające roboty przemysłowe od pracowników w tym przypadku nie są konieczne. Jak widać, ścisłe rozgraniczenie kategorii robotów jest trudne, bo jak określić ścisłe kryteria podziału, które nie zachodzą wzajemnie na siebie. Dlatego podany podział będzie tu stosowany jedynie dla ogólnej orientacji.
Robot musi być w stanie zrealizować powierzone mu zadanie, więc sposób przekazania mu tego zadania staje się kluczowy. Stąd musimy zająć się zarówno sposobami programowania robotów, jak i architekturami tych systemów.
Istnieją dwa poglądy na temat programowania robotów. Pierwszy, węższy, definiuje programowanie robotów jako sposób określania zadania, które robot ma wykonać. Drugi, szerszy, postuluje, że programowanie robotów jest tożsame z wytwarzaniem oprogramowania dla robotów, a więc obejmuje także tworzenie ich sterowników. Jak zwykle w przypadku robotyki, nie jest to podział dychotomiczny, ponieważ wiele robotów przeznaczonych jest do autonomicznego wykonywania zadań, które zostały określone na etapie tworzenia ich sterowników, a więc trudno jest rozróżnić część odpowiedzialną za wykonanie zadania od pozostałych części, które sterują urządzeniem. Dlatego lepiej jest przyjąć tę szerszą definicję.
Od momentu powstania pierwszych robotów korzystających z serwomechanizmów przemysł preferował uczenie robotów, podczas gdy ośrodki akademickie pracowały nad specjalizowanymi językami programowania robotów. W tym przypadku uczenie rozumiane jest jako przemieszczanie przez operatora ramienia robota przemysłowego do pozycji, które muszą być osiągnięte, by zrealizować zadanie, i zapamiętywanie ich. Zapamiętane pozycje stanowią program, który jest odtwarzany. Program nauczony w ten sposób może być wielokrotnie odtwarzany w celu powtarzania realizacji zadania. Istnieją dwie formy uczenia: PTP (point to point) oraz CP (ang. continuous path). Pierwsza forma polega na doprowadzaniu końcówki manipulatora do odległych od siebie pozycji specyficznych dla wykonywanego zadania, by je zapamiętać. W trakcie odtwarzania programu sterownik dokonuje interpolacji trajektorii. Druga forma zmusza sterownik do automatycznego zapamiętywania pozycji na trajektorii co bardzo krótki czas, dzięki czemu unika się interpolacji. Pierwsza forma wykorzystywana jest do obsługi maszyn, transportu obiektów lub montażu, natomiast druga np. do malowania natryskowego. Zaletą uczenia jest prostota programowania, która nie wymaga zbyt wysokich kwalifikacji od programisty. Niestety modyfikacja fragmentu zadania bądź wykorzystanie odczytów czujników stanowi tu niebagatelny problem, nie wspominając o braku czytelnej dokumentacji stworzonego programu.
Wad tych nie mają programy zapisane w specjalizowanych językach programowania robotów, ale tutaj kompetencje programisty muszą być o wiele wyższe, by zapisać program w formie tekstowej. Co więcej, roboty nawet tego samego typu nieznacznie się różnią między sobą, więc ich końcówki będą osiągały pozycje zadane z różną dokładnością. To powoduje konieczność kalibracji albo mechanizmu ramienia albo programu. W toku rozwoju robotów przemysłowych oba sposoby programowania zostały zintegrowane [163]. Obecnie kluczowe, ale nieliczne, pozycje są uczone, a pozostałe określane są w tekście programu względem tych nauczonych.
Specjalizowane języki programowania robotów ponadto oferują wszelkie możliwości, które posiadają proceduralne uniwersalne języki programowania. Fakt ten spowodował odejście od języków specjalizowanych na korzyść języków uniwersalnych, takich jak C, C++ czy Pascal. Struktura programu zapisywana była w języku uniwersalnym, natomiast elementy specyficzne dla robota, takie jak instrukcje ruchu czy obliczenia geometryczne, realizowane były przez biblioteki, zapisane w tym samym języku uniwersalnym (np. PASRO (ang. Pascal for Robots) [17, 18] lub RCCL (ang. Robot Control C Library) [67]). Wprawdzie zmniejszyło to czytelność programów w stosunku do tych zapisanych w językach specjalizowanych, ale likwidowało konieczność tworzenia kompilatorów bądź interpreterów tych języków, i zmniejszało koszt wprowadzania modyfikacji do języka przy inkorporacji nowych urządzeń (np. czujników) do systemu. Niestety biblioteki nie dawały wskazówek, jak tworzyć oprogramowanie o odpowiedniej architekturze. Tej niedogodności miały zaradzić programowe struktury ramowe (ang. programming frameworks), np. Player [40, 60, 144], OROCOS (ang. Open Robot Control Software) [31, 32], ROS (ang. Robot Operating System) [120], YARP (ang. Yet Another Robot Platform) [57, 102], ORCA [22, 23], MRROC++ (ang. Multi-Robot Research Oriented Controller based on C++) [156, 158–160, 168] i inne [166]. Oferowały one wzorce użycia, co stanowiło pewną wskazówkę dla programistów, jak poprawnie konstruować programy. Większość struktur ramowych skupiała się na tzw. idiomach, a więc wzorcach dotyczących kodu w konkretnym języku programowania. Nieliczne odnosiły się do wzorców projektowych lub architektonicznych [77].
Zarówno biblioteki, jak i struktury ramowe koncentrowały się na fazie implementacji w budowie oprogramowania, ignorując specyfikację. Natomiast dobre praktyki wytworzone na gruncie inżynierii oprogramowania podkreślają konieczność tworzenia specyfikacji przed przystąpieniem do implementacji [125]. By temu problemowi zaradzić powrócono do języków specjalizowanych, ale w innej postaci. Języki zorientowane na konkretną dziedzinę DSL (ang. Domain-Specific Language) wywodzą się z ogólnego podejścia do projektowania zwanego inżynierią opartą na modelu MDE (ang. Model Driven Engineering) [30, 108]. Model uwypukla najistotniejsze właściwości systemu, pomijając szczegóły implementacyjne. Zastosowanie MDE do tworzenia oprogramowania prowadzi do automatycznej generacji kodu tworzonego systemu – przynajmniej częściowo. W robotyce stosuje się zarówno języki modelowania ogólnego przeznaczenia, takie jak UML [117], jak i języki specjalnie opracowane do modelowania systemów robotycznych [30]. Ponieważ różne aspekty systemu tworzone są za pomocą różnych języków dziedzinowych, potrzeba wielu narzędzi, by przetworzyć i zweryfikować model, aby w rezultacie powstał kod pożądanego systemu. Wskazane jest, by zestaw narzędzi (ang. toolchain) był jak najmniej liczny, bo w przeciwnym razie trudność jego opanowania powoduje niechęć programistów do jego używania. W tym nurcie stworzono również sparametryzowany meta-model, który może być przekształcony w program sterownika dowolnego robota poprzez określenie funkcyjnych parametrów oraz struktury hierarchicznej sieci Petriego [55].
Chcąc uczynić programowanie robotów, rozumiane jako przekazywanie im zadań do wykonania, jeszcze bardziej zbliżone do tego, jak ludzie przekazują sobie polecenia, zaczęto pracować nad programowaniem przez demonstrację (ang. programming by demonstration). Wykorzystując kamery, mikrofony oraz inne czujniki robot przygląda się pracy człowieka oraz słucha jego komentarzy, w ten sposób jest instruowany, jak ma wykonać zadanie [14, 15]. Dzięki temu kwalifikacje człowieka w zakresie programowania robotów stają się zbędne, natomiast ludzki nauczyciel musi umieć wykonać czynności, by samodzielnie zrealizować zadanie, które później robot ma powtórzyć. Osiągnięcie takiej formy programowania jest bardzo trudne, więc
proponowane są rozwiązania prostsze. W skrajnym podejściu za programowanie przez demonstrację można uznać uczenie typu PTP lub CP, ale nie o to tu chodzi. Dlatego bada się zastosowanie czujników sił i dotyku oraz kamer do wspomagania demonstracji [112]. Próbuje się też stosować rozszerzoną rzeczywistość w trakcie programowania robota. Ponadto stara się definiować zadania poprzez ograniczony zestaw sparametryzowanych umiejętności [136] określonych na podstawie standardowych procedur operacyjnych dla robotników produkcyjnych [116]. Podstawowymi problemami są [14]: −kiedy i kogo robot ma imitować? – usunięcie z prezentacji wykonania zadania czynników nieistotnych jest trudnym zagadnieniem, jak ma być imitowany ruch człowieka, skoro struktury kinematyczne oraz parametry odnoszące się do wymiarów robota i człowieka są różne, roboty mają słabo rozwinięty zmysł dotyku, więc bardzo źle rozpoznają fakturę i temperaturę przedmiotów.
Do tego zestawu podstawowego należałoby dodać zdolność do uogólniania swych obserwacji, by na podstawie jednej prezentacji można było wykonywać podobne zadania – byłby to krok w kierunku sztucznej ogólnej inteligencji (AGI). Pomimo istotnego postępu w metodach programowania robotów, zlecanie zadań robotowi w taki sposób, jak to robią ludzie między sobą, jest jeszcze dość odległą przyszłością.
Aby ocenić do czego zdolne są roboty, trzeba nieco więcej powiedzieć, jak są one sterowane i jak wyglądają ich systemy sterowania. Dlatego skoncentrujemy się na architekturach systemów robotycznych. Pożądanymi cechami robotów współdziałającymi z ludźmi są: inteligencja, autonomia, zdolność do komunikacji, wnioskowania i uczenia się. Aby uzyskać te cechy trzeba zaprojektować złożony sterownik robota lub bardziej ogólnie, systemu robotycznego. Jest to zadanie nietrywialne, stąd wiele jest propozycji jego rozwiązania.
Pomimo liczności opracowywanych systemów robotycznych nie istnieje jedna metoda ani przedstawiania ich architektur, ani klasyfikacji ich struktur (np. [33, 37, 47, 49, 52, 96, 97, 114, 150]). W pracach [43, 83], poświęconych architekturom systemów robotycznych, wskazano, że do ich opisu trzeba określić: −strukturę architektoniczną, czyli prezentację podsystemów i ich połączeń, styl architektoniczny, czyli opis wykorzystywanych konceptów obliczeniowych i komunikacyjnych, określających aktywność lub funkcje systemu – zapewne lepiej byłoby to nazwać funkcjami architektury, niż stylem architektonicznym.
Niemniej jednak praca [83] wskazuje, że dla większości stworzonych systemów trudno określić zarówno ich strukturę jak i styl (funkcje). Pomimo prowadzenia prac dotyczących formalnej specyfikacji oprogramowania sterującego robotami [7, 94, 95, 157, 165] i jego formalnej weryfikacji [81, 82] niestety takie ścisłe podejście do procesu wytwarzania sterownika nie uzyskało szerszej akceptacji środowiska robotyków. Zazwyczaj architektury przedstawiane są za pomocą nieformalnych opisów tekstowych oraz diagramów blokowych o bardzo zróżnicowanym poziomie szczegółowości, przy zastosowaniu różnych środków graficznych. Prowadzi to do poważnych problemów w implementacji i dokumentacji tak opisanych systemów, nie wspominając kłopotów przy próbach modyfikacji ich działania. Najpopularniejszą formą architektoniczną w robotyce jest struktura warstwowa. Podział na warstwy jest albo tworzony na podstawie częstotliwości powtarzania zachowania komponentów systemu [50] albo przez dekompozycję zadania na podzadania. Dominują architektury dwu- [106] i trójwar-
stwowe, np.: czuj–planuj–działaj SPA (ang. sense–plan–act), reaktywna uogólniająca (subsumption) [25–27], hybrydowe planująco–reaktywne [6], hierarchiczne [4, 59]), inspirowane biologicznie [94, 95, 138], wykorzystujące przekonanie–pragnienie–intencję BDI (ang. belief–desire–intension) [111, 129].
Jedną z najstarszych architektur jest architektura SPA, używana na przykład przez robota Shakey już w latach sześćdziesiątych XX w. [107]. W tej architekturze moduły: percepcji, planowania i wykonawczy połączone były kaskadowo, co wprowadzało duże opóźnienie w reagowaniu na zmiany zachodzące w środowisku. Model środowiska, niezbędny do planowania działań, zapisywany był w języku STRIPS, o którym więcej napisano w sekcji 2.9.
Ponieważ planowanie jest czasochłonnym zadaniem, R. Brooks zaproponował alternatywną architekturę -– architekturę uogólniającą, w której zachowania zostały zdefiniowane jako: reakcje na bodźce sensoryczne lub producenci aktywności. Jeśli reakcje dolnej warstwy nie były w stanie poradzić sobie z zadaniem, reakcje górnej warstwy hamowały lub tłumiły działania dolnej warstwy, przejmując kontrolę nad systemem, a tym samym uogólniając ich działania. W takim systemie reprezentacja środowiska nie występuje. Brooks twierdził, że najlepszym modelem środowiska jest ono samo, więc wystarczy jedynie odczytywać bodźce z niego pochodzące [27]. Ponieważ przetwarzanie informacji w takich systemach odbywa się równolegle (wszystkie zachowania działają jednocześnie, a ostateczny wynik ich działania jest superpozycją propozycji generowanych przez te zachowania), to reakcje robota są prędkie. W systemach o architekturze SPA dekompozycja na moduły następuje według funkcji, które poszczególne moduły mają realizować w potoku przetwarzania informacji, poczynając od percepcji a kończąc na akcji, natomiast w architekturze uogólniającej dekompozycja dokonywana jest na zachowania, z których każde samodzielnie może realizować pewne proste zadanie – zachowania działają wspólnie i równolegle, by zrealizować zadanie złożone. Architektura uogólniająca może być budowana stopniowo, gdzie każda nowa warstwa nadaje więcej kompetencji działaniom systemu. Niemniej jednak na każdym etapie system jest w stanie działać w środowisku, być może słabo, ale jednak zachowywać się w miarę sensownie. Należy zwrócić uwagę, że w architekturze SPA podsystem percepcyjny działa na wszystkich dostępnych sygnałach pochodzących ze środowiska i na tej podstawie buduje aktualny stan modelu tego środowiska, by w konsekwencji podjąć decyzję, co do dalszych swoich działań. Natomiast w architekturze uogólniającej poszczególne moduły (zachowania) działają tylko na części odczytów czujników, więc agregując je uzyskują częściową reprezentację środowiska. Reprezentacja całości jest rozproszona i, co więcej, jest cechą emergentną takiego systemu. Prawdopodobnie podobnie działają systemy nerwowe u zwierząt, stąd wiara Brooksa, że tym sposobem można wytworzyć inteligencję ssaków, a może i ludzką – niestety nie udało się tego jeszcze osiągnąć. Wszakże ewolucja potrzebowała na to kilkaset milionów lat.
Ponieważ architektura SPA wydaje się być zbyt powolna, a architektura uogólniająca, choć bardzo reaktywna, nie jest dalekowzroczna, pojawiły się architektury hybrydowe. Były one zwykle projektowane jako systemy trójwarstwowe, realizujące: planowanie (warstwa deliberatywna), sekwencjonowanie (zwykle implementowane jako automat skończony przełączający zachowania) i sterowanie urządzeniami (czyli warstwa odpowiedzialna za sterowanie efektorami i agregację danych z receptorów – w sumie tworząc warstwę reaktywną).
Istnieje wiele odmian architektury BDI, różniących się szczegółami. Cechą wspólną jest wyróżnienie stanów umysłu (ang. mental states), które są emanacją pracy układu sterującego. W literaturze (np. [83, 111, 129]) przyjmuje się, że są to: 1) przekonania, czyli posiadana informacja, 2) pragnienia, czyli
motywacja do działania i 3) intencje systemu, czyli wybrany plan działania. Tak naprawdę, to te trzy atrybuty razem określają aktualny stan systemu. Przekonania odpowiadają wiedzy, jednak różnią się tym, że wiedza jest z pewnością prawdziwa, podczas gdy przekonania mogą takie nie być. Przekonania obejmują zbiór informacji dotyczących samego agenta i jego środowiska, w tym innych czynników, a także zasad wnioskowania do tworzenia nowych przekonań. Pragnienia reprezentują cele, które agent chce osiągnąć albo poprzez własne działania, albo które mogą być wymuszone przez pewne czynniki zewnętrzne. Cele są pragnieniami, do realizacji których agent aktywnie dąży. Intencje to pragnienia, do których zobowiązał się agent, wybierając i realizując plan, który prowadzi do ich spełnienia. Reaktywne zachowanie agenta jest spowodowane zdarzeniami, zarówno generowanymi zewnętrznie, jak i wewnętrznie. Architektura BDI opiera się na interpreterze, który jest wyzwalany przez zdarzenia. Aktualizuje on przekonania i pragnienia, a w konsekwencji realizuje nowe intencje.
Istotny wpływ na architektury systemów robotycznych miało wprowadzenie pojęcia agenta upostaciowionego. Koncepcja agenta upostaciowionego została spopularyzowana przez Rodneya Brooksa [26], podczas debaty nad problemem, czy roboty potrzebują modeli otoczenia oraz planowania do inteligentnego działania w złożonym środowisku. Tradycjonaliści, zwani zwolennikami GOFAI (ang. Good Old Fashioned Artificial Intelligence), uważali, że robot powinien działać w architekturze SPA, a więc wpierw pozyskać informacje ze środowiska, następnie, na podstawie uaktualnionego stanu modelu, zaplanować swoje czynności, by w końcu je wykonać. Brooks twierdził, iż wykonanie takiego cyklu obliczeń trwa na tyle długo, że w dynamicznie zmieniającym się środowisku, w momencie, gdy dochodzi do wykonania zaplanowanych czynności, stan otoczenia jest już na tyle zmieniony, że te czynności są nieadekwatne do sytuacji. Dlatego twierdził, że robota należy traktować jako agenta upostaciowionego, tj. agenta mającego materialne ciało, który powinien być usytuowany, tj. działać bezpośrednio w rzeczywistym środowisku, a nie używać uproszczonego jego modelu do planowania swych działań [24, 27, 28]. Robot powinien być reaktywny, a inteligencja pojawi się w wyniku interakcji agenta z rzeczywistym środowiskiem. Przetwarzanie sygnałów pochodzących ze środowiska wymaga inteligencji, więc ją stymuluje. Innymi słowy, inteligencja jest tu traktowana jako efekt emergentny oddziaływania robota i środowiska kształtującego jego zachowanie.
Ani zwolennicy GOFAI, ani Brooks nie udowodnili, że ich podejścia są jedynie słuszne, dlatego pojawiły się agenty hybrydowe, mające właściwości zarówno reaktywne, jak i deliberatywne [6]. Debata ta pobudziła wielu autorów do skoncentrowania się na koncepcji agenta. Klasyczny tekst o sztucznej inteligencji [122] traktuje agenta jako coś, co działa. Taka wszechogarniająca definicja jest zbyt ogólna, stąd podręcznik ten nadaje agentom określone cechy: autonomię, czyli działanie bez pomocy człowieka, umiejętność postrzegania środowiska, wytrwałość, adaptację do zmian zachodzących w środowisku, zdolność do podejmowania zadań innych agentów. Dodatkowo różnicuje agenty wprowadzając pojęcia: agenta racjonalnego, który wytwarza optymalny wynik swoich działań lub optymalny oczekiwany rezultat, jeśli działa w niedeterministycznym środowisku. agenta uczącego się, który doskonali swoje możliwości dzięki zdobytemu doświadczeniu. Agent upostaciowiony wyewolułował z pojęcia agenta programowego używanego w informatyce. Niestety większość tekstów poświęconych agentom (np. [109]) wskazuje, że nie ma ścisłej definicji tego pojęcia. Według Hyacintha Nwany [110] jednym z podstawowych kryteriów klasyfikacji agentów programowych
jest to, czy są one stacjonarne czy mobilne, co określane jest na podstawie tego, czy są one umiejscowione na jednym komputerze, czy poruszają się po sieci. Ponadto agenty mogą być: reaktywne, deliberatywne lub hybrydowe. Wyróżnia się szczególną klasę agentów – agenty interfejsujące, które umożliwiają użytkownikom interakcję z różnymi systemami.
Michael Wooldridge [147] definiuje agenta jako system komputerowy ulokowany w określonym środowisku, w którym może działać autonomicznie, aby osiągnąć określony cel. Definicja ta jest podstawą tekstu [111], który wymienia pożądane właściwości agenta. Agent powinien być reaktywny, tj. reagować na zmiany zachodzące w otoczeniu, proaktywny, tj. dążyć do celu, społeczny, tj. zdolny do interakcji z innymi agentami, elastyczny, tj. zdolny do osiągnięcia celu na różne sposoby, odporny, tj. zdolny radzić sobie z ewentualnymi błędami.
Niewątpliwie istnieje wiele podobieństw między agentem programowym i upostaciowionym, ale podstawową różnicą jest to, że ten pierwszy funkcjonuje wewnątrz komputera lub sieci komputerowej, a więc umownie rzecz ujmując w cyberprzestrzeni, natomiast ten drugi ma ciało materialne i funkcjonuje w środowisku rzeczywistym. Należy też zwrócić uwagę, że agent upostaciowiony nie powinien być utożsamiany z robotem, gdyż jednego robota może tworzyć wiele agentów upostaciowionych, ale nie na odwrót [162]. Istotnym jest to, że w przypadku agentów upostaciowionych ich interakcja z otoczeniem ma fundamentalne znaczenie dla powstania i rozwoju inteligencji systemu z nich złożonego.
Obecnie dąży się do tego, aby roboty realizowały swoje zadania autonomicznie, a więc bez pomocy człowieka. Rozróżnia się dwa ogólne typy autonomii: energetyczną i decyzyjną. Ten pierwszy typ determinuje, czy źródło zasilania robota w energię znajduje się na jego pokładzie czy nie. Ten drugi wskazuje, czy przy realizacji zadania potrzebny jest współudział człowieka. W tym przypadku raczej mówi się o stopniu lub poziomie autonomii, w zależności od wpływu operatora na wykonywanie czynności prostych. Możemy tu mieć do czynienia z urządzeniami teleoperowanymi, gdy człowiek jest odpowiedzialny za sterowanie ruchem urządzenia lub o dużym stopniu autonomii, gdy całe zadanie jest realizowane bez udziału operatora. Zarówno robot chirurgiczny da Vinci [19], jak i łazik marsjański Sojourner [41] są urządzeniami teleoperowanymi. W przypadku urządzeń w pełni autonomicznych, operujących w złożonym i zmiennym środowisku, inteligencja operatora musi zostać zastąpiona tą sztuczną.
Międzynarodowe stowarzyszenie Society of Automotive Engineers (SAE), zajmujące się m.in. standaryzacją, zdefiniowało sześć poziomów autonomii samochodów, numerując je od 0 do 5 [92]. W tym przypadku pojazdy traktowane są jako roboty mobilne. Samochody przypisane poziomowi 0 są pod pełną kontrolą kierowcy i co najwyżej informują go o niebezpieczeństwie. Na poziomie 1 człowiek i układ sterowania współkierują pojazdem, np. kierownicą zawiaduje człowiek, a prędkość regulowana jest przez automat. Na poziomie 2 układ sterowania w pełni kieruje pojazdem, ale człowiek stale powinien czuwać nad sytuacją panującą na drodze i natychmiast przejąć sterowanie, o ile zauważy, że dzieje się coś niepokojącego. Dopiero poziom 3 autonomii zezwala kierowcy odwrócić uwagę od sytuacji na drodze, bo w tym przypadku to samochód jest odpowiedzialny za wykrywanie sytuacji niepokojących i wtedy wzywa kierowcę, by przejął kontrolę nad pojazdem. Ten poziom autonomii umożliwia, przykładowo, automatyczne kierowanie w korku lub na autostradzie. Na poziomie 4, gdy spełnione są odpowiednie warunki drogowe, udział człowieka w kierowaniu nie jest wymagany, więc może się on zająć dowolną inną aktywnością. Samochód może wezwać kierowcę do interwencji, ale jeżeli ten nie zareaguje, to pojazd może zacząć dążyć do zapar-
kowania. Taka sytuacja może powstać, gdy warunki pogodowe zmienią się drastycznie. Pojazdy sklasyfikowane na poziomie 5 nie wymagają uczestnictwa kierowcy w sterowaniu pojazdem niezależnie od warunków drogowych. Wyższe poziomy autonomii obecnie są jedynie przedmiotem badań. IEEE pracuje nad standardem dotyczącym bezpieczeństwa pojazdów autonomicznych (P2846 Draft Standard for Assumptions for Models in Safety-Related Automated Vehicle Behavior). Zarys standardu P2846 określa zbiór założeń dla dających się przewidzieć scenariuszy, które należy brać pod uwagę przy tworzeniu modeli związanych z bezpieczeństwem pojazdów sterowanych automatycznie. Standard jest tworzony, aby wszystkie firmy tworzące autonomiczne samochody, niezależnie od użytych technologii, tak samo rozumiały bezpieczne zachowanie pojazdu na drodze. Z punktu widzenia konsumentów standard tworzy sytuację, w której kupujący samochód nie będzie musiał zastanawiać się, który wybrać z punktu widzenia reguł bezpieczeństwa.
Cel, który robot ma zrealizować, może być określony w fazie projektowania robota – zazwyczaj tak się dzieje w przypadku robotów specjalizowanych wykonujących złożone zadanie. Zadania mogą też być formułowane i zmieniane w trakcie działania robota. Wtedy układ sterowania robota musi zawierać interpreter poleceń. Zazwyczaj lista poleceń wyrażana jest jako język programowania robota. Jest to szczególnie często stosowana metoda programowania robotów przemysłowych [163]. Interakcja między operatorem i nie w pełni autonomicznym robotem usługowym bądź terenowym odbywa się albo poprzez dedykowaną konsolę (np. [41]) albo głosem w ograniczonym języku naturalnym (np. [164]). W obu przypadkach musi istnieć wewnętrzny język sterownika robota służący reprezentacji poleceń.
Niezależnie od tego, w jaki sposób robotowi zostanie przekazane zadanie do wykonania, istotne są kategorie pojęciowe służące określeniu tego zadania. Te kategorie tworzą ontologię [66]. Złożoność ontologii, z której korzysta robot, determinuje poziom jego inteligencji. Ontologia określa zarówno byty, jak i relacje między nimi. Podstawowym celem jej stosowania jest umożliwienie wnioskowania dotyczącego realizacji zadania, a więc planowanie. Szczegółowość planowania zależna jest od ilości wiedzy zdroworozsądkowej (ang. commonsense knowledge), którą dysponuje robot. Zasób wiedzy zdroworozsądkowej posiadany przez robota w istotny sposób determinuje zdolność do prawidłowego zrealizowania zadania. Przykładowo, jeżeli w ontologii robota nie występuje pojęcie pola grawitacyjnego, to pozostawienie przedmiotu w powietrzu, bez podparcia, będzie uznane za rozsądne rozwiązanie, ale w rzeczywistości spowoduje katastrofę.
Wyróżnia się różne poziomy ontologiczne. Dla robotów manipulacyjnych zwykło się definiować cztery poziomy. Na najniższym poziomie zadanie definiuje się określając kolejne położenia lub trajektorie ruchu końcówki manipulatora za pomocą wartości zmiennych złączowych, a więc kątów lub przesunięć między członami łańcucha kinematycznego. Jest to dla operatora dość niedogodny sposób definiowania zadania, gdyż faktyczny cel działania robota nie zostaje wyjawiony –co ma być wykonane, wynika z sekwencji zapisanych położeń złączy. Kolejny poziom dotyczy określenia pozycji końcówki, z którą związano kartezjański układ odniesienia. Definiując jego położenie i orientację wskazuje się pozycje docelowe końcówki. W tym przypadku nadal cel działania nie jest określony jawnie, ale sposób definicji trajektorii jest o wiele bardziej intuicyjny. Ontologie dwóch wspomnianych poziomów definiują zadanie w kategoriach ruchu robota pomiędzy pozycjami zadanymi wyrażonymi w różnych przestrzeniach: konfiguracyjnej (złączy) i operacyjnej (końcówki). Człowiek jednak, nawet jeżeli wydaje mu się dość szczegółowe polecenia, jest przyzwy-
czajony do definiowania zadania poprzez wskazywanie przedmiotów i określanie związanych z nimi czynności. W ontologii tego poziomu pojawiają się nazwy kategorii obiektów oraz relacji między nimi [154, 155]. Relacje odgrywają fundamentalną rolę, gdyż, przykładowo, postawienie filiżanki na spodku i przemieszczenie spodka, spowoduje zmianę pozycji filiżanki, ale nie na odwrót. Przy sklejeniu dwóch obiektów relacja staje się symetryczna, bo przemieszczenie dowolnego z obiektów przesuwa drugi z nich. Stosując ontologie tego poziomu czynności przestają dotyczyć bezpośrednio robota, a odnoszą się do potencjalnie nieskończonej liczby obiektów znajdujących się w środowisku. Sytuacja staje się bardzo skomplikowana. Jedynie obiekty uchwycone przez robota mogą być przemieszczane. Ponadto obiekty mogą być pozostawione jedynie w miejscu, w którym będą podparte stabilnie, a więc trzeba uwzględnić zarówno grawitację jak i tarcie. Nawet jeżeli uwzględni się pełny model dynamiki środowiska, co oczywiście nie jest możliwe ze względu na brak precyzyjnej znajomości wszystkich jego parametrów, to nadal zadanie formułowane jest w kategoriach szczegółowych przemieszczeń – wprawdzie tym razem obiektów, a nie robota bezpośrednio. Należy zwrócić uwagę, że ludzie komunikując się ze sobą zakładają, że ich interlokutorzy mają zdroworozsądkową wiedzę o zachowaniach obiektów i w związku z tym wystarczy by polecenie odnosiło się jedynie do celu, który ma być osiągnięty. Plan realizacji zadania musi zostać wygenerowany przez osobę, której wydano polecenie. Planowanie wymaga kolejnego poziomu ontologicznego. Najbardziej pożądanym byłoby przekazywanie robotowi poleceń w języku naturalnym. Niestety język naturalny potrafi być wieloznaczny, a ponadto jego rozumienie wymaga od interlokutorów nie tylko posiadania wiedzy zdroworozsądkowej, ale również znajomości kodów kulturowych. Dla porozumienia się ludzi między sobą, a więc i dla komunikowania się z robotami, obie strony dialogu muszą wykorzystywać tę samą ontologię. Ponadto dla naturalnej współpracy z ludźmi roboty same muszą wyrażać emocje i odpowiednio reagować na emocje tych, z którymi wchodzą w interakcje.
Ontologie stanowią podstawę do tworzenia baz wiedzy. Jakość bazy wiedzy ocenia się określając, co można wywnioskować za jej pomocą, na jakie zapytania jest w stanie odpowiedzieć i ile czasu zajmuje znalezienie odpowiedzi. Przykładowo, KnowRob [139] to baza wiedzy przeznaczona do użytku przez roboty. KnowRob był wzorowany na ontologii ogólnego przeznaczenia Cyc [98], która wszakże nie zawierała pojęć związanych z robotyką. KnowRob zawiera pojęcia zaczerpnięte z robotyki i używane do opisu gospodarstw domowych, czyli: zdarzenia, informacje czasowe, akcje, zadania złożone, parametry akcji, obiekty, informacje czasoprzestrzenne, procesy, komponenty robota i opis jego możliwości. Interakcja z bazą KnowRob odbywa się za pomocą zapytań. KnowRob jest zanurzony w programowej strukturze ramowej CRAM (ang. Cognitive Robot Abstract Machine) [11]. W skład systemu wchodzą: bazy wiedzy (reprezentacja wiedzy), moduł dysponujący metodami wnioskowania, moduł akwizycji wiedzy (interfejs do podsystemu percepcji oraz sieci WWW), moduł sterowania robotem oraz modułu interakcji z człowiekiem za pomocą mowy. CRAM wykorzystuje procedury przetwarzające dane z podsystemów percepcji oraz sterowania efektorami, aby uzyskać dane, które są przekształcane w symboliczną reprezentację, na której można wykonywać wnioskowanie. Maszyna CRAM wykorzystuje język CPL (ang. CRAM Plan Language) do planowania działań robota. Baza wiedzy KnowRob służy do wnioskowania, jakie działania powinien wykonać robot (tryb zapytań) oraz do przechowywania informacji zebranych przez system percepcji (tryb powiedz). Wykorzystuje koncepcję wirtualnych baz wiedzy, które nie przechowują informacji, ale obliczają je na żądanie przy użyciu najbardziej aktualnych danych dostarczanych przez podsystem percepcji lub
przy użyciu innych już dostępnych danych obecnych w bazie wiedzy. KnowRob wykorzystuje zarówno ogólne, jak i specjalne metody wnioskowania. Preferuje szybkość wnioskowania nad jego ogólność. KnowRob korzysta także z OWL (ang. Web Ontology Language), który przechowuje formuły zapisane w logice opisowej DL (ang. Description Logic) w pliku zapisanym w formacie XML stworzonym do reprezentacji wiedzy w sieci semantycznej (ang. Semantic Web). Instrukcje OWL są wewnętrznie reprezentowane w KnowRob jako predykaty języka Prolog, więc można użyć mechanizmów wnioskowania Prologu. Wszakże należy zwrócić uwagę, że Prologowi brakuje mechanizmów wnioskowania zajmujących się niepewnością, właściwościami przestrzennymi czy czasowymi.
Człowiek zlecając wykonanie zadania zakłada, że jego wykonawca posiada wiedzę zdroworozsądkową, więc w poleceniu nie są zawarte oczywistości. Ponieważ roboty wiedzy zdroworozsądkowej nie mają, to muszą ją wywnioskować na podstawie zasobów zawartych w swej bazie wiedzy lub mogą ją pozyskać z sieci. RoboEarth [140, 141] ma być zasobem internetowym dla robotów, tj. World Wide Web dla robotów. Generowanie treści przez użytkowników jest podstawą WWW. RoboEarth chce przenieść to podejście na roboty. Roboty mogą wymieniać informacje bez interwencji człowieka. Platforma RoboEarth jest dostarczana jako zestaw pakietów ROS. Wiedza uzyskana za pomocą RoboEarth jest reprezentowana w kategoriach aksjomatów logicznych. Formalnym językiem przedstawiania wiedzy dla robotów do wykorzystania i wnioskowania jest język SRDL (ang. Semantic Robot Description Language), który umożliwia opis: akcji i ich parametrów, pozycji obiektów i modeli potrzebnych do ich rozpoznawania, informacji dodatkowych o danych (np. sposób reprezentacja pozycji, jednostek przypisanych wielkościom liczbowym, formatów plików), wymagań nałożonych na robota w zakresie wykorzystania dostępnych informacji, modeli własnych robota i obiektów oraz metod dopasowywania wymagań zadań do możliwości robota. Modele obiektów zawierają informacje o tym, jak je rozpoznać (rysunki i obrazy CAD) oraz jak je poruszać. Modele rozpoznawania można pobrać z sieci WWW. Jeśli robot nie ma modelu obiektu, którego potrzebuje, w swojej lokalnej bazie wiedzy, to może zażądać jego pozyskania poprzez RoboEarth. Środowiska są reprezentowane jako mapy. Niestety siatki zajętości (ang. occupancy grid) nie mogą być używane do wnioskowania, więc w tym celu wykorzystywane są mapy semantyczne. SRDL jest realizowany jako rozszerzenie ontologii KnowRob.
Na marginesie dyskusji na temat roli ontologii w robotyce należy zauważyć, że komunikujące się ze sobą roboty muszą korzystać nie tylko z tego samego języka, ale również z tej samej ontologii [105]. W przeciwnym razie nie będą się mogły porozumieć. Co więcej, często sterowniki robotów konstruowane są jako systemy składające się z agentów. Foundation for Intelligent Physical Agents (FIPA), jedno ze stowarzyszeń standaryzacyjnych IEEE, określiło standard komunikacji międzyagentowej, który zakłada, że wiadomości przesyłane między agentami zawierają informacje o języku komunikacji oraz wykorzystywanej ontologii [115]. Tak więc ontologie są istotne dla sposobu komunikacji wewnątrz sterownika systemu robotycznego oraz sposobu jego komunikowania się ze światem zewnętrznym, a przez to także dla Internetu Rzeczy oraz Przemysłu 4.0.
Podejmowano próby proceduralnego określenia jednoczesnego działania robota w środowisku rzeczywistym i jego modelu, np. przy implementacji języka TORBOL (ang. Transformation Of Relations Between Objects Language) [154]. Interpreter tego języka wybierał właściwy wariant wykonania akcji (dokładniej realizacji relacji między obiektami) na podstawie stanu modelu środowiska. Niestety, gdy możliwych wariantów
realizacji zadania jest nadmiernie wiele, a w szczególności nie jesteśmy w stanie przewidzieć, jak wiele, to napisanie wariantowego programu sterującego robotem staje się niemożliwe. Mnogość wariantów wynika z tego, że środowisko, w którym operuje robot może przyjmować bardzo wiele stanów, a co więcej cel wykonania zadania wpływa na wygenerowany plan. Przykładowo, jeżeli zadaniem jest wyjęcie butelki ze skrzynki, to najlepiej złapać ją za szyjkę, a jeżeli chcemy z niej nalać sok, to trzeba ją schwycić z boku. Jeżeli to drugie jest niemożliwe, to trzeba wyjąć butelkę ze skrzynki trzymając ją za szyjkę, odstawić gdzieś i zmienić chwyt na dostosowany do nalewania soku. Przenoszenie otwartej butelki z sokiem może się odbywać jedynie w pionie. Natomiast jej orientacja przestrzenna może być dowolna, gdy butelka jest pusta albo zamknięta. Widać, że nawet takie trywialne zadanie ma multum wariantów. W takich sytuacjach trzeba uciec się do planowania opartego na wnioskowaniu prowadzonym na podstawie zgromadzonych faktów. Fakty te pochodzą z własnej bazy wiedzy robota oraz z jego podsystemu percepcyjnego. Wykorzystanie tego zasobu wiedzy umożliwia wyrażenie zadania w niezwykle zwięzły sposób. Zamiast wielce rozgałęzionego programu mającego instrukcje dla każdego z możliwych wariantów, mamy ogólną, zwięzłą specyfikację zadania, a program wnioskujący, biorąc pod uwagę zgromadzoną wiedzę, musi opracować szczegółowy plan działań dla robota, ale dla tej konkretnej sytuacji.
Jednym z przejawów inteligencji jest zdolność do planowania swych działań. Im horyzont planowania dłuższy, a postawione zadanie trudniejsze lub bardziej abstrakcyjne, tym inteligencja musi być wyższa. W robotyce wyróżnia się trzy formy planowania. Planowanie ścieżki robota określa drogę, po której robot ma się przemieścić. Planowanie trajektorii wskazuje, gdzie na ścieżce robot ma się znaleźć w określonym czasie. Wreszcie planowanie zadań określa czynności (akcje), jakie robot powinien wykonać, by zrealizować zadanie. Ta ostatnia forma planowania jest najtrudniejsza, ale też i najciekawsza. Pierwsze dwie, nazywane zbiorczo planowaniem ruchu [80], sprowadzają się do wyznaczenia matematycznej funkcji określającej drogę od aktualnie zajmowanej pozycji do celu, z ominięciem przeszkód. Zazwyczaj wykorzystuje się do tego metody optymalizacyjne albo interpolację.
Do planowania zadań potrzebny jest opis środowiska (świata) wyrażony w pewnym języku oraz program wnioskujący, który na podstawie tego opisu wygeneruje plan realizujący zadanie. Planowanie zadań odbywa się w przestrzeni stanów, która modeluje świat, w którym działa robot. Owa przestrzeń określa, jakie są możliwe stany środowiska (obiektów znajdujących się w nim), a czasem również stany robota (np. jego położenie, orientacja i prędkość). Do planowania wymagany jest opis stanu początkowego i pożądanego stanu końcowego, a ponadto potrzebny jest algorytm, który znajdzie sekwencję akcji zmieniających stan początkowy w końcowy [88, 122]. Akcje przekształcające stan świata mogą być traktowane jako funkcje przejścia dla stanów tego świata. Dodatkowo mogą być narzucone ograniczenia na stany pośrednie bądź może być sformułowane kryterium optymalności planu, tzn. funkcjonał określający pod jakim względem plan ma być najlepszy.
Najbardziej znanym planerem (i jednocześnie językiem opisu) jest STRIPS [56, 122]. Sposób opisu stanu, który zastosowano w STRIPS, wykorzystywany był przez wiele innych planerów. Celem STRIPS było przekształcenie początkowego stanu świata w końcowy, za pomocą dostępnych akcji. Akcja mogła być wykonana jedynie, gdy były spełnione warunki początkowe (ang. preconditions) dla niej, i zmieniała stan świata zgodnie z definiującymi ją efektami zwanymi warunkami końcowymi (ang. postconditions). Stany zadania, początkowy i końcowy, były określane za pomocą zbioru warunków, które w tych stanach powinny być spełnione. Stany były opisywane za pomocą rachunku predykatów pierwszego rzędu [122], natomiast robot
operował w tzw. świecie klo cków, a więc w wielce uproszczonym modelu środowiska rzeczywistego. Co więcej, środowisko to było deterministyczne, w pełni obserwowalne i nie działały w nim inne agenty prócz robota. Założono zamknięty model świata, tzn. wszystkie warunki podstawowe, które nie zostały explicite wymienione jako prawdziwe uznawano jako fałszywe. W planerze ADL zrezygnowano z tego założenia – wartość logiczna niewymienionych warunków podstawowych traktowana była jako nieznana [122]. Później te ograniczenia zostały zniesione, a model świata stawał się coraz bardziej zbliżony do rzeczywistego.
STRIPS jest warty wspomnienia nie tylko ze względów historycznych, ale przede wszystkim dlatego, że większość późniejszych języków planowania bazowała na tym języku. W szczególności obecnie najbardziej popularna rodzina języków mających w swych nazwach akronim PDDL (ang. Planning Domain Description Language) wywodzi się od STRIPS. PDDL [61] stał się rodzajem standardu w dziedzinie planowania zadań. Języki te dzielą zadanie na dwie części: 1) opis dziedziny oraz 2) opis problemu. Opis dziedziny jest rodzajem ontologii określającej hierarchię typów obiektów i obiektów, sparametryzowane akcje, które mogą być realizowane, oraz predykaty określające fakty dotyczące dziedziny. Natomiast opis problemu zawiera obiekty znajdujące się w świecie robota, stan początkowy świata oraz opis stanu końcowego. Planery, które korzystają z opisu zadania w języku PDDL wytwarzają albo w pełni uporządkowane plany TOP (ang. totally ordered plan) albo częściowo uporządkowane POP (ang. partially ordered plan). W pierwszym z tych przypadków kolejność zaplanowanych akcji jest uporządkowana liniowo i stanowi sekwencję, w drugim, kolejność niektórych czynności nie jest wskazana, w szczególności mogłyby być wykonane równolegle. Późniejsze modyfikacje języka PDDL wprowadzały możliwość występowania zdarzeń, które zostały wywołane przez inne agenty działające w świecie. Ponadto prócz akcji wywołujących dyskretne zmiany stanu wprowadzono takie, które działały z czasem ciągłym. Pojawiły się też probabilistyczne warianty PDDL (PPDDL), które przypisywały wynikom akcji prawdopodobieństwo sukcesu. Język RDDL (ang. Relational Dynamic influence Diagram Language) wprowadził do planowania częściową obserwowalność stanu. W języku tym można wyrazić częściowo obserwowalne decyzyjne procesy Markova POMDP (ang. Partially Observable Markov Decision Processes). Zastosowanie procesów decyzyjnych Markova do podejmowania decyzji w obliczu niepewności jest trudne ze względu na olbrzymią liczbę możliwych stanów, więc wprowadzane są ograniczenia, które umożliwiają znalezienie planu w skończonym czasie [54]. Powyższe rozszerzenia podstawowego języka PDDL zwiększają skuteczność wygenerowanych planów – innymi słowy, poprawne wykonanie planu w rzeczywistym środowisku staje się coraz bardziej prawdopodobne.
Podstawowymi problemami w planowaniu jest duża liczba możliwości, które pojawiają się zarówno przy zwiększaniu liczby akcji możliwych do zastosowania, jak i wariantów zaistniałych sytuacji, oraz fakt, że pełny stan może nie być obserwowalny dla robota. Próbowano podejścia z wariantowością (ang. contingency planning), gdzie generowano plany na wszelkie ewentualności, natomiast w trakcie realizacji planu uzyskiwano dodatkową informację z układu percepcyjnego i na tej podstawie decydowano, który wariant wybrać. Obecnie raczej stosuje się przeplanowywanie. Jeżeli w trakcie wykonania planu zastana sytuacja odbiega od tej oczekiwanej planuje się ponownie uwzględniając nową sytuację. Niestety planowanie jest obliczeniochłonne, więc zajmuje dużo czasu. Oznacza to, że system powoli reaguje na zdarzenia zewnętrzne. Aby tego uniknąć, do planowania stosuje się algorytmy przerywalne w dowolnym momencie (ang. anytime algorithm) [72]. One zwracają aktualną, w momencie przerwania, wersję planu. Wersja ta
nie będzie doskonała. Gdyby algorytm miał więcej czasu, to by ją ulepszył. Niemniej jednak dłuższe planowanie oznaczałoby, że perfekcyjny plan będzie nieaktualny. Lepszy jest słaby plan na czas, niż najlepszy, ale za późno. Algorytmy tego typu stosowane są do planowania, w miarę zdobywania nowej wiedzy o środowisku [69]. Więcej wiedzy oznacza lepszy plan, ale nowej wiedzy nie można pozyskiwać w nieskończoność. Ponadto prowadzone są pracę nad planowaniem hierarchicznym, w którym akcje wyższego rzędu mogą być dekomponowane na akcje niższego rzędu [71]. Hierarchiczne sieci zadań HTN (ang. Hierarchic Task Network) powodują, że planowanie nie dotyczy jedynie przekształcania stanu świata, ale również dekompozycji akcji złożonych na proste. Stąd określa się to jako planowanie w przestrzeni zadań. Istnieje ponadto technika transformacyjnego tworzenia planów. Polega ona na budowaniu wstępnego planu realizacji zadania z bibliotecznych schematów. Następnie taki plan jest przekształcany i korygowany, aż uzyska ostateczną formę [53, 104].
Gdy określony jest już plan w postaci sekwencji akcji, które prowadzą do realizacji zadania, trzeba jeszcze wyznaczyć trajektorie ruchu robota. Wtedy stosowane jest planowanie trajektorii. Niestety na tym etapie może się okazać, że dla wybranej akcji nie istnieje dopuszczalna trajektoria ruchu, a więc ta akcja jest niemożliwa do wykonania. Wtedy trzeba plan zmodyfikować. Dlatego już w fazie generacji planu weryfikuje się wykonalność wybranych akcji. Ten rodzaj planowania nazywany jest łącznym planowaniem wykonania zadania i ruchu robota TAMP (ang. task and motion planning) [76, 151]. Należy zauważyć, że dochodzi tu do połączenia planowania dyskretnego, związanego z wyborem akcji w kolejnych chwilach, z generacją ciągłej w czasie trajektorii ruchu, a więc połączenia planowania dyskretnego i ciągłego.
Gdy już plan zostanie wygenerowany i rozpocznie się jego wykonanie, może się zdarzyć, że robot otrzyma kolejne polecenie, o wyższym priorytecie wykonania. Niestety w tej sytuacji metody znane z informatyki, polegające na odłożeniu stanu procesu na stos i wykonaniu procedury obsługi przerwania, nie mogą być zastosowane [51, 62]. Przykładowo, robot sprząta po posiłku, i w momencie gdy niesie talerz do zmywarki, ktoś dzwoni do drzwi. Aby gość nie odszedł, trzeba przerwać sprzątanie i otworzyć drzwi. Pojawienie się robota u drzwi z talerzem w ręku, uniemożliwi ich otwarcie. Wpierw trzeba odstawić gdzieś talerz. Po obsłużeniu gościa trzeba odzyskać talerz, by kontynuować sprzątanie. Widać tu, że potrzebne są dodatkowe czynności zawieszające realizację poprzedniego zadania, a potem jego kontynuację. Potrzebne jest dodatkowe planowanie. Co więcej, łańcuch przerwań kolejno wszczynanych zadań może być długi. Rozwiązanie tego problemu jest otwartym zagadnieniem badawczym.
Języki typu STRIPS, ADL czy PDDL umożliwiają określenie faktów dotyczących zarówno środowiska jak i zadania, które ma być zrealizowane – służą do reprezentacji wiedzy dla celów wnioskowania. Ta wiedza musi być przetworzona przez program wnioskujący, czasami zwany maszyną wnioskującą lub generatorem planów. Maszyna wnioskująca przetwarza specyfikację wyrażoną w jednym z wymienionych języków na plan [142]. Osobnym problemem jest to, że robot może nie być jedynym agentem działającym w środowisku, a więc wtedy jego system percepcyjny musi być w stanie przetworzyć odczyty z czujników na symboliczną reprezentację stanu świata – nazywa się to problemem kotwiczenia (ang. anchoring problem) [42]. Najczęściej po wykryciu takiej niespodziewanej zmiany stanu świata plan musi być uaktualniony.
Metody wnioskowania używane w robotyce niekiedy dzielone są na dwie szerokie kategorie: wnioskowanie logiczne oraz wnioskowanie probabilistyczne [10]. To pierwsze zazwyczaj oparte jest na rachunku predykatów pierwszego rzędu, natomiast to drugie na bayesowskiej teorii prawdopodobieństwa.
Ponieważ do wnioskowania zawsze używa się jakiejś logiki, ściślejszym jest podział na: wnioskowanie oparte na ścisłych faktach i regułach, wnioskowanie probabilistyczne oraz wnioskowanie posybilistyczne. Te dwie ostanie formy wnioskowania są zbiorczo zwane rozumowaniem w warunkach niepewności [74]. W przypadku wnioskowania probabilistycznego mamy do czynienia z wielkościami przyjmującymi pewne wartości z różnym prawdopodobieństwem, które określone jest na podstawie częstości występowania, natomiast gdy wnioskowanie odbywa się na podstawie informacji o nieprecyzyjnym znaczeniu mamy do czynienie z rozumowaniem przybliżonym [74]. Brak precyzji może dotyczyć zarówno faktów (np. nieprecyzyjne pomiary lub nieprecyzyjny opis sytuacji) lub reguł (np. zależności między zmiennymi nie są pewne). Należy zwrócić uwagę, że we wnioskowaniu probabilistycznym zdarzenie, które może wystąpić, zdefiniowane jest precyzyjnie, jedynie jego wystąpienie jest niepewne. Natomiast w rozumowaniu posybilistycznym samo zdarzenie jest określone w sposób nieprecyzyjny. Do tego dochodzi jeszcze możliwa niekompletność informacji niezbędnej do wnioskowania, nie wspominając o możliwości uzyskiwania informacji sprzecznych.
Nawet dla wnioskowania opartego na ścisłych faktach i regułach podstawowym problemem jest to, że implementacja tych form wnioskowania w pełnym zakresie czyni przetwarzanie danych nieefektywnym, więc potrzebne są pewne zawężenia, by wnioskowanie stało się wydajne. Rachunek predykatów pierwszego rzędu jest nierozstrzygalny (ang. undecidable), czyli maszyna przetwarzająca napisy nie jest w stanie rozstrzygnąć, czy dowolne napisy przetwarzanego języka są prawdziwe czy nie. Dlatego często korzysta się z języków o ograniczonych możliwościach, takich ja wymienione już STRIPS, ADL czy PDDL. W matematyce istnieje rodzina języków reprezentowana zbiorczą nazwą logik opisowych DL (ang. Description Logic). Wprawdzie języki te ograniczają reprezentację świata, ale są rozstrzygalne i obliczeniowo do zaakceptowania. Jeżeli liczba obiektów w rozpatrywanym świecie jest skończona, to można zastąpić logikę pierwszego rzędu logiką zdań, jednak kosztem wprowadzenia olbrzymiej liczby zdań opisujących ten świat. Niemniej jednak logika zdań jest rozstrzygalna, więc w skończonym czasie można dzięki niej rozstrzygnąć rozpatrywany problem.
Jednym z podstawowych problemów przy wnioskowaniu jest zapis zmian zachodzących w świecie przy wykonaniu pojedynczej akcji. Zwane jest to problemem tła (ang. frame problem) [122]. Przykładowo, jeżeli robot wyjął z szafki butelkę, to pozostałe przedmioty znajdujące się w tej szafce nie zmieniły swoich położeń – oczywiście przy założeniu, że robot manipulując jednymi przedmiotami nie strąca innych. Język opisujący zmianę stanu na skutek wykonania pojedynczej akcji powinien wymagać jedynie zapisu zmian, które nastąpiły w świecie, a nie ponownego opisu wszystkich relacji, które w tym świecie zachodzą. Na to się nakładają rozbieżności między posiadaną przez robota bazą wiedzy a stanem faktycznym występującym w środowisku, np. wskutek działań innych agentów. Ponadto logiki dwuwartościowe nie uwzględniają stopnia zachodzenia pewnych relacji. Tym zajmuje się logika rozmyta [48, 74], która jest jedną z logik wielowartościowych. Inne logiki tego typu uwzględniają, że fakty mogą być prawdziwe lub nie, ale również nieznane. Powo duje to niemożność stosowania reguły wyłączonego środka.
Wnioskowanie na podstawie wiedzy niepełnej jest możliwe, ale im ta niepewność jest większa, tym trudniej jest to robić jedynie na podstawie reguł logiki opartej na faktach pewnych.
By zwiększyć użyteczność wnioskowania, w takich sytuacja lepiej zastosować metody probabilistyczne (np. podejścia bayesowskie, teorię konfirmacji bądź teorię Dempstera-Shafera) lub posybilistyczne (np. wnioskowanie rozmyte).
Prawdopodobieństwo odnosi się tu do tego, czy dany fakt jest prawdziwy. Stosując sieci bayesowskie bądź procesy decyzyjne Markova można wywnioskować prawdopodobieństwo zdarzenia. Sieci bayesowskie powstają przez narysowanie grafu acyklicznego, którego węzły reprezentują zmienne losowe. Łuki skierowane łączą węzły reprezentujące zmienne zależne. Jeżeli wybrana zmienna jest warunkowo zależna od innych zmiennych, to węzły reprezentujące te zmienne stanowią poprzedniki w grafie węzła odpowiadającego wybranej zmiennej. Dzięki takiemu przedstawieniu zależności łatwiej jest operować na wycinkach grafu, by ustalić prawdopodobieństwo wynikowe. Sieci takie mogą być stosowane zarówno do wyjaśniania przyczyn obserwowanych efektów (diagnostyka) jak i określenia prawdopodobieństwa powstania efektów gdy znane są przyczyny (określanie związków przyczynowych). Dla zmiennych zależnych od czasu, opisujących stan procesu, posiadających własność Markowa, powstają dynamiczne sieci bayesowskie. Własność Markowa wymaga, by stan następny w czasie zależał od stanu aktualnego, ale nie od jego poprzedników, czyli stan następny jest warunkowo niezależny od stanów poprzedzających stan aktualny. W takich sieciach wnioskowanie przebiega szybko.
Predykaty opisujące stan przestrzenny środowiska uzupełniane są o zależności czasowe. Przykładowo może być potrzeba, by zaznaczyć, że jedna akcja musi poprzedzać inną lub że dwie sytuacje muszą zachodzić jednocześnie. Taki opis umożliwia algebra interwałowa (ang. interval algebra). W tym przypadku planowanie polega na poszukiwaniu takiego usytuowania akcji w czasie, by spełnić narzucone ograniczenia czasowe. Tego typu problemy rozwiązywane są przez sprowadzenie tak postawionego zagadnienia do problemu spełniania ograniczeń CSP (ang. Constraint Satisfaction Problem), a następnie stosuje się standardowe algorytmy rozwiązujące takie problemy [122]. Jeżeli wymagane jest ustalenie konkretnego czasu rozpoczęcia i zakończenia poszczególnych akcji do planowania stosuje się harmonogramowanie [29]. Istnieją też formalizmy łączące przedziały czasowe i punkty na osi czasu [73]. Niemniej jednak planowanie z zastosowaniem tak skomplikowanych opisów świata jest zagadnieniem obliczeniowo trudnym.
Ponieważ zazwyczaj stan środowiska jest tylko częściowo obserwowalny, natomiast proces decyzyjny jest sekwencyjny, to planowanie można przedstawić jako częściowo obserwowalny decyzyjny proces Markowa POMDP (ang. Partially Observable Markov Decision Process) [75]. Jest to probabilistyczny automat skończony, w którym każdej trójce (stan aktualny, akcja, stan następny) przyporządkowano wartość liczbową nagrody. Z przejściem między stanem aktualnym i następnym, pod wpływem konkretnej akcji, związane jest jego prawdopodobieństwo. Planowanie polega na maksymalizacji sumy nagród wskutek wykonywania sekwencji akcji. Ponieważ stan środowiska nie jest w pełni obserwowalny, to musi być odtwarzany na podstawie obserwacji. Związek miedzy stanem i obserwacją też jest probabilistyczny. Niestety to w istotny sposób komplikuje wnioskowanie, czyniąc go nieefektywnym. Dlatego stosuje się uproszczenia tego modelu [76].
W przypadku stosowania teorii zbiorów rozmytych opis zaistniałych sytuacji jest niepewny [48, 74]. Dana sytuacja zachodzi do pewnego stopnia (np. zmierzona temperatura do pewnego stopnia określana jest jako ciepła, a do pewnego stopnia jako gorąca – może to wynikać z subiektywnych odczuć obserwatora lub eksperta). Dlatego w teorii zbiorów rozmytych przypisuje się stopień przynależności elementu (np. zmierzonej temperatury) do danego zbioru – stopień ten jest zawarty w przedziale od 0 do 1, ale nie wynika on z częstości zjawiska, a więc nie ma charakteru probabilistycznego. Baza reguł łączy rozmyte przesłanki z rozmytymi wnioskami – zazwyczaj konstruowana jest przez ekspertów na podstawie ich intuicji popartej bogatym doświadczeniem, stąd brak precyzji określeń. Najczęściej
wnioskowanie rozmyte składa się z matematycznych reguł dotyczących: rozmywania (ang. fuzzyfication), czyli określenia stopnia przynależności elementu do poszczególnych zbiorów rozmytych, agregacji, czyli wyznaczania na podstawie stopni przynależności elementów należących do różnych uniwersów siły działania (ang. firing) poszczególnych reguł znajdujących się w bazie, −skalowania lub przycinania, by wyznaczyć siłę wniosku, akumulacji tak zmodyfikowanych wniosków wynikających z poszczególnych reguł oraz wyznaczenia ostatecznej wartości ostrej (ang. defuzzyfiction), w sumie tworzących przepis na wyznaczenie ostatecznego wniosku – najczęściej decyzji bądź sterowania.
Pomimo prób integracji różnych podejść do planowania [64] nie istnieje jedna zbiorcza forma opisu uwzględniająca wszystkie powyższe zagadnienia. Ponadto jednym z podstawowych problemów przy wykonaniu planu jest rozstrzygnięcie, czy obserwowany obiekt jest tożsamy z tym występującym w bazie wiedzy, a więc i w planie. W takiej sytuacji tworzona jest reprezentacja stanów odzwierciedlających przekonania (ang. belief) robota o stanie świata. Przykładowo, jeżeli robot pozostawił zielony kubek w szafce w kuchni, a teraz widzi zielony kubek na stole w pokoju, to musi rozstrzygnąć, czy oba kubki są tożsame, czy to są dwa różne, acz podobne egzemplarze. W tej sytuacji próbuje się odwoływać do planowania probabilistycznego [16]. Ponadto nie wszystkie obiekty są zawsze widoczne, a jeżeli nawet są w zasięgu wzroku robota, to niekoniecznie są dla niego osiągalne. Kolejnym problemem jest rozróżnienie tego, co jest istotne, od tego, co nie. Nieograniczone gromadzenie wiedzy doprowadzi do przepełnienia pamięci oraz nieefektywnego przeszukiwania ogromnej bazy wiedzy. Stąd powinna być gromadzona wiedza potrzebna jedynie do rozwiązania aktualnego zadania, ale to czyni robota i jego sposób planowania mało ogólnym. Niestety wszystkie te problemy oraz wiele innych, o których nie było tu mowy, oznaczają konieczność prowadzenia dalszych badań, by stworzyć inteligentnego robota potrafiącego rozumować stosując wiedzę symboliczną.
Prócz wnioskowania dotyczącego realizowanego zadania, roboty powinny doskonalić wykonanie powtarzalnych czynności. Stąd intensywne prace nad uczeniem maszynowym [38]. Historycznie oprogramowanie komputerów wykorzystywało algorytmy, które określały kolejne kroki przetwarzania danych. Zadaniem programisty było stworzenie precyzyjnego algorytmu determinującego, co komputer ma zrobić i w jakiej kolejności. Uczenie maszynowe umożliwia odejście od tego żmudnego sposobu tworzenia oprogramowania. Tutaj algorytm uczący, na podstawie olbrzymiej liczby przykładów, uczy się wykonywania pożądanego zadania przez modyfikowanie wag połączeń w sieci. Tak więc, ustalanie sekwencji czynności komputera zostało zastąpione strojeniem wag. Uczenie maszynowe wykorzystuje sieci, które się samodoskonalą w wykonywaniu postawionego im zadania na podstawie dostarczanych danych. Dane te służą określeniu modelu, a dokładniej związku między danymi a rezultatem. Zazwyczaj można wyróżnić dwa etapy pracy sieci: uczenie i wnioskowanie. W pierwszym na podstawie danych treningowych sieć uczy się wykonywania swego zadania, a drugim realizuje to zadanie. Zasoby potrzebne do uczenia nie są potrzebne w trakcie realizacji zadania.
Wyróżnia się kilka sposobów uczenia: nadzorowane (ang. supervised), nienadzorowane (ang. unsupervised), częściowo nadzorowane (ang. semi-supervised), ze wzmacnianiem (ang. reinforcement learning) [152]. Jeżeli dane uczące są zaetykietowane, a więc znane jest, jaki rezultat sieć powinna wytworzyć
dla tych danych, to mamy do czynienia z uczeniem nadzorowanym. Jeżeli rezultat nie jest z góry znany, to takie uczenie nazywamy nienadzorowanym. Jeżeli tylko część danych uczących jest zaetykietowana, to mamy do czynienia z uczeniem częściowo nadzorowanym, a więc metodą pośrednią między poprzednio wymienionymi metodami skrajnymi. Niezależnie od zastosowanej metody uczenia sieci neuronowe różnią się architekturami [3, 123]. Ich liczność uniemożliwia dokładne omówienie tego zagadnienia w tym artykule.
Uczenie nadzorowane wykorzystywane jest do klasyfikacji (rozpoznawania obiektów) lub przewidywania wartości funkcji na podstawie jej argumentów – zazwyczaj bardzo wielu. Natomiast uczenie nienadzorowane używane jest do poszukiwania struktury danych wejściowych. Sieć wyodrębnia cechy danych. Na podstawie wartości tych cech dokonuje klasyfikacji danych. W związku z tym uczenie nienadzorowane używane jest do klasteryzacji danych, wykrywania anomalii, asocjacji lub filtrowania. W tym ostatnim przypadku stosuje się autoenkodery, które dokonują wpierw kompresji danych wejściowych, by uzyskać zbiór cech, na podstawie którego odtwarzany jest zbiór danych pierwotnych – oczywiście w tym procesie odtworzenie nigdy nie jest akuratne.
Ponieważ etykietowanie jest zarówno czasochłonne, jak i kosztowne, a co więcej nie zawsze znany jest pożądany rezultat działania sieci, metody uczenia nienadzorowanego są często stosowane. By poprawić ich działanie i jednocześnie nie ponosić zbyt wielkich kosztów procesu uczenia, stosuje się uczenie częściowo nadzorowane. Przykładem sieci, która wykorzystuje tę formę uczenia jest sieć GAN (ang. Generative Adversarial Network), w której generator produkuje nowe dane przypominające dane oryginalne, natomiast dyskryminator próbuje ocenić, czy ma do czynienia z danymi oryginalnymi czy wygenerowanymi. W każdej iteracji dzięki dodatniemu sprzężeniu zwrotnemu sieci generatora i dyskryminatora się doskonalą w wykonywanych przez siebie zadaniach. Dzięki temu sieci GAN mogą być wykorzystywane do detekcji anomalii [148]. W przypadku sieci neuronowych uczenie nadzorowane prowadzone jest przez wzmacnianie wag połączeń proporcjonalnie do różnicy między pożądaną aktywacją i aktualną. Różnica ta zwana jest błędem. Dokonuje się tego na podstawie iteracyjnej optymalizacji funkcji celu zbudowanej na bazie wspomnianych różnic. Zazwyczaj stosuje się wsteczną propagację błędu (ang. backpropagation) zaczynając od warstwy wyjściowej sieci, a kończąc na warstwie wejściowej. Natomiast uczenie nienadzorowane wykorzystuje regułę Hebba [68], która mówi, iż waga połączenia neuronów, których działanie jest skorelowane, powinna ulegać wzrostowi, jeżeli zachodzi relacja przyczynowo-skutkowa między aktywnością tych neuronów. Oczywiście brak takiej korelacji prowadzi do osłabienia połączenia. Uczenie nienadzorowane działa na podstawie przyjętej metryki podobieństwa danych.
Uczenie ze wzmacnianiem, gdzie dane uczące nie są zaetykietowane, wykorzystuje znajomość nagrody związanej z wykonaniem czynności na podstawie tych danych wejściowych. Algorytm uczenia dąży do maksymalizacji skumulowanych nagród. Takie algorytmy są często używane w robotyce do uczenia się podejmowania decyzji w miarę eksploracji środowiska, np. nawigacji w nieznanym otoczeniu. Uczenie ze wzmacnianiem uczy sieć przewidywać kolejny krok działania w taki sposób, by końcowa nagroda była najwyższa. W trakcie działania robot uczy się na podstawie przeszłych swoich działań oraz eksperymentuje z nowymi strategiami, dzięki czemu może się doskonalić.
Rozwój badań nad sieciami neuronowymi miał swoje wzloty i upadki. Od mniej więcej 2012 r. badania te znów przeżywają rozkwit. Spowodowane jest to opanowaniem technologii zrównoleglania obliczeń. Odkąd pojawiły się procesory graficzne GPU (ang. Graphic Processing Unit) prowadzenie dostatecznie
szybko obliczeń, które w przypadku sieci neuronowych daje się łatwo zrównoleglić, umożliwiło tworzenie ogromnych sieci nazywanych głębokimi (ang. Deep Learning Neural Networks). Sieci te uczą się na milionach danych, dzięki czemu są w stanie z dostateczną pewnością realizować postawione przed nimi zadania. Typowym przykładem jest sieć AlphaGo, która rozgrywając partie go ze swoją repliką, nauczyła się grać tak dobrze, że była w stanie pokonać arcymistrza [133].
Dotychczas głównym polem zastosowania uczenia maszynowego w robotyce była percepcja, a w szczególności rozpoznawanie obrazów oraz sygnałów mowy [79], ale powoli się to zmienia. Obecnie pracuje się także nad samodoskonalącymi się robotami, które dostosowują swoje zachowania do środowiska, w którym działają. Firma Google stworzyła Brain Team [2], zespół którego zadaniem jest zbadanie wpływu uczenia maszynowego na robotykę oraz robotyki na uczenie maszynowe. W tym celu wyposażono duże laboratorium w tzw. farmę robotów. Roboty te uczyły się chwytania przedmiotów i przekazywały sobie nawzajem wiedzę, którą zdobyły na temat przemieszczania i chwytania obiektów widzianych przez siebie [91]. Każdy z robotów wykorzystywał jedną kamerę umieszczoną na statywie obok manipulatora. Konwolucyjna sieć neuronowa uczyła się chwytania obiektów. Założono, że układ oko-ręka nie będzie kalibrowany, więc dostosowanie ruchów do uzyskiwanego obrazu także podlegało uczeniu. Uczenie prowadzono w ciągu dwóch miesięcy wykorzystując od 6 do 14 robotów, dzięki czemu dane uczące składały się z 800 tysięcy prób chwycenia obiektów. W drugim eksperymencie wykorzystano 9 robotów innego typu, które wykonały 900 tysięcy prób, ale im przekazano wiedzę zdobytą w pierwszym eksperymencie. Okazało się, że transfer wiedzy wspomaga uczenie, ale nadal potrzeba olbrzymiej ilości dodatkowych danych. Wprawdzie w obu eksperymentach wykorzystywano różne manipulatory, ale w obu przypadkach miały one po 7 stopni swobody oraz chwytaki dwupalczaste. Obiekty, których różnych typów użyto 1100, wyjmowane były z pojemnika, w którym zgromadzone były w sposób nieuporządkowany, tak że częściowo się przesłaniały, a co więcej ich chwytanie wymagało przesuwania innych przedmiotów. Wykorzystano uczenie bez nadzoru. To, czy próba uchwycenia się powiodła, ustalane było na podstawie stopnia zamknięcia chwytaka oraz różnicy w wyglądzie obrazu pojemnika po uchwyceniu przedmiotu i ponownym jego wrzuceniu przez robota do pojemnika. Początkowo robot nie miał wiedzy na temat obiektów, które będzie widział. Przeprowadzone eksperymenty wskazują, że wiedza zdobyta przez robota jednego typu w umiarkowany sposób wspomaga uczenie podobnego robota, a co więcej ilość danych, które są potrzebne do uczenia chwytania bez nadzoru musi być ogromna. Zebranie tych danych jest procesem niezmiernie czasochłonnym. Niemniej jednak ten niealgorytmiczny sposób podejścia do chwytania wykazał, że roboty nauczyły się różnych strategii chwytania obiektów sztywnych i miękkich. Obiekty sztywne były chwytane poprzez ustawienie palców chwytaka po przeciwnych stronach obiektu, natomiast w przypadku obiektów miękkich chwytak był wgniatany w obiekt i chwytał go przez uszczypnięcie.
W sztucznej inteligencji istnieją dwa podstawowe nurty. Pierwszy bazujący na wnioskowaniu symbolicznym i drugi opierający się na sztucznych sieciach neuronowych. Ten drugi, obecnie jest niezmiernie popularny, ponieważ wykazał swoją wyższość przy zastosowaniu do zadań, z którymi ten pierwszy miał istotne kłopoty, np. rozpoznawanie obrazów bądź mowy. Niemniej jednak należy zwrócić uwagę, że sieci neuronowe, a w szczególności głębokie sieci neuronowe, mają istotne wady. Szerzej rzecz ujmując, sztuczne sieci neuronowe doskonale się sprawdzają w klasyfikacji, gdzie dominuje porównanie ze wzorcem, natomiast dużo gorzej im idzie, gdy muszą znaleźć korelacje między nieprzystającymi do siebie zdarzeniami, np.
w diagnostyce uszkodzeń. Ponadto wytrenowana sieć rozwiązuje jedynie zadanie, którego ją nauczono. Zmiana zadania zazwyczaj wymaga ponownego uczenia od początku, a często również zmiany struktury sieci. Koszt trenowania jest wysoki, ponieważ do uczenia potrzeba olbrzymich ilości różnorodnych danych przykładowych, a co więcej przy uczeniu nadzorowanym muszą to być dane zaetykietowane, a proces etykietowania jest dość pracochłonny. Próby douczania takich sieci dla nowych danych często kończą się pogorszeniem wykonywania zadania dla poprzednich kategorii danych. Uczenie głębokie (ang. deep learning) niewątpliwie odniosło wielki sukces w wielu dziedzinach. Niemniej jednak uważa się, że w zastosowaniach krytycznych jego użycie jest ryzykowne. Podstawowym problemem jest brak wytłumaczenia (ang. explainability), dlaczego sieć daje takie rezultaty, jakie daje. W tej sytuacji nasza pewność, co do działania systemu, przestaje być oparta na rozumieniu, a zaczyna wynikać z wiary. Co więcej, w trakcie douczania sieci wykonywania nowego zadania może ją dotknąć gwałtowana amnezja – zapomni tego, czego się nauczyła wcześniej [119]. Próbą rozwiązania tego problemu jest stworzenie wyjaśnialnej sztucznej inteligencji (ang. explainable AI).
Wymienione problemy są obecnie przedmiotem intensywnych badań. Rozwiązanie tych problemów upatruje się w ściślejszym odwzorowywaniu sposobu działania mózgu niż to ma miejsce w sztucznych sieciach neuronowych powszechnie stosowanych. Jednym z podejść jest zastosowanie sieci typu ART (ang. adaptive resonance theory) [35, 65], które kategoryzują informacje jednocześnie na podstawie oczekiwanego rezultatu obserwacji oraz danych sensorycznych, tak jak to się dzieje w ludzkim umyśle, który stara się dopasować to co widzimy lub słyszymy do naszych oczekiwań. Sieci ART umożliwiają zachowanie odpowiedniej równowagi między zdobywaniem nowej wiedzy i stabilnością starej.
Algorytmy ewolucyjne dążą do wyboru najlepszego rozwiązania postawionego zagadnienia naśladując procesy ewolucyjne, stąd i stosowana terminologia zaczerpnięta jest z tej używanej do opisu doboru naturalnego [5]. Algorytmy ewolucyjne można uznać za jedną z technik optymalizacji albo za metodę stopniowego doskonalenia rozwiązania. Każde rozwiązanie zagadnienia stanowi osobnika. Ów osobnik reprezentowany jest chromozomem składającym się z genów. Algorytm ewolucyjny działa na populacji osobników. Dla każdego osobnika można obliczyć stopień jego przystosowania do środowiska. Służy temu funkcja przystosowania, która dobierana jest do rozpatrywanego zagadnienia. Algorytm ewolucyjny z pokolenia na pokolenie dokonuje reprodukcji populacji, czyli wybiera osobniki, które będą stanowiły podstawę konstrukcji kolejnego pokolenia osobnikó. Następnie wykonuje operacje genetyczne na zreprodukowanej populacji: mutacje, czyli modyfikację pojedynczych genów w chromosomie, i krzyżowanie, czyli sklejanie części chromozomów uzyskanych z różnych osobników. Dalej dokonuje oceny osobników tak zmodyfikowanej populacji, po czym następuje sukcesja. Ocena osobników i sukcesja służą selekcji. Selekcja jest prowadzona tak, by osobniki lepiej przystosowane przechodziły do kolejnego pokolenia z wyższym prawdopodobieństwem niż te gorzej przystosowane. Niemniej jednak i te ostatnie mogą być reprodukowane, co umożliwia wyrwanie się rozwiązania z ekstremum lokalnego. To powoduje, że algorytmy genetyczne uznawane są za metody optymalizacji globalnej. Po etapie selekcji powyższe kroki są powtarzane znów od reprodukcji, aż spełnione zostanie kryterium stopu, kończące wykonanie algorytmu. Najbardziej wartościowy osobnik uznawany jest za rozwiązanie postawionego zagadnienia.
Ponieważ w naturze osobniki silniejsze lub inteligentniejsze są lepiej dostosowane do życia w środowisku, a to ulega ciągłym zmianom, to mówi się tu o adaptacji. Zdolność do
adaptacji jest jednym z przejawów inteligencji. Algorytmy ewolucyjne były stosowane do rozwiązywania bardzo różnych problemów, w szczególności wyłoniło się programowanie genetyczne, które stosowane było do ewolucyjnego tworzenia programów zamiast ręcznego ich pisania [85, 137]. Algorytm ewolucyjny rozpoczynał pracę od populacji osobników (programów) słabo rozwiązujących postawiony problem, a następnie sprawdzał, jak osobniki kolejnych populacji dają sobie z tym problemem radę. Swego czasu pokładano w tym sposobie programowania wielkie nadzieje i prorokowano zmierzch klasycznej informatyki. Tak się jednak nie stało – nadal programy pisane są przez programistów.
Inteligencja roju jest cechą emergentną, czyli wyłaniającą się na skutek samoorganizowania, współdziałania i lokalnego pośredniego bądź bezpośredniego komunikowania się wielu prostych autonomicznych agentów wchodzących w skład zdecentralizowanych systemów [12, 13]. Samoorganizacja jest procesem, w którym wewnętrzna organizacja systemu złożonego z autonomicznych agentów wchodzących w interakcje ze swym otoczeniem samoistnie wzrasta, bez udziału koordynatora. Istotą jest kolektywne działanie prostych jednostek [113]. Symulacyjne badania nad tego typu systemami początkowo były prowadzone pod szyldem sztucznego życia (ang. artificial life). Sam termin „sztuczne życie” został spopularyzowany przez Christophera Langtona [86] i odnosi się do życia stworzonego przez człowieka, a nie przez naturę [87]. Wprawdzie prace nad tą dziedziną dotyczyły również związków chemicznych, ale większość badań poświęconych było aspektom matematycznym i symulacjom komputerowym wyimaginowanych systemów składających się z prostych automatów. W szczególności usiłowano odtworzyć systemy biologiczne. Do chwili obecnej nie udało się stworzyć niczego rzeczywiście żywego w sensie biologicznym. Nie wiadomo, czy to dobrze czy źle, ale sam Langton miał wątpliwości, czy nie stworzy to nowych niebezpieczeństw.
W 1970 r. John Conway opracował grę symulacyjną nazwaną Life [58], w której na dwuwymiarowej nieskończonej płaszczyźnie podzielonej na kwadratowe komórki umieszcza się pewną liczbę komórek żywych. Komórki tworzą rodzaj szachownicy, a więc każda z nich ma osiem sąsiadek. Komórka z dwoma lub trzema bezpośrednimi sąsiadkami pozostaje żywa, komórka martwa z trzema żywymi sąsiadkami staje się żywa (reprodukcja), natomiast wszystkie pozostałe komórki żywe umierają (wskutek przeludnienia). Okazało się, że przy tych trywialnych regułach rządzących zachowaniem komórek, zależnie od stanu początkowego, można obserwować wielką różnorodność zachowań organizmów złożonych z komórek żywych – mogą one się rozrastać, oscylować, ginąć lub przemieszczać w różnych formacjach. Komórki stanowią niezwykle prosty model automatu – automatu komórkowego.
Prace nad samopowielającymi się automatami zostały jednak zainicjowane wcześniej, bo już pod koniec lat 40. ubiegłego wieku, przez Stanisława Ulama oraz Johna von Nemanna. Von Nemann zauważył, że jeżeli jeden automat ma stworzyć drugi, to ten pierwszy powinien być bardziej skomplikowany niż ten drugi, ponieważ powinien dysponować dodatkowymi środkami na tworzenie automatów [146]. Niemniej jednak natura tak nie działa. W toku ewolucji organizmy prostsze reprodukują się w taki sposób, że w konsekwencji powstają organizmy coraz bardziej skomplikowane. Rozwiązaniem tego problemu było odwołanie się do Maszyny Turinga [143], która na podstawie prostych inskrypcji jest w stanie tworzyć inskrypcje bardziej złożone. Wprawdzie z matematycznego punktu widzenia te prace są niezmiernie interesujące, ale dotychczas nie dały odpowiedzi na pytanie, jak skonstruować fizyczny automat samopowielający się, a w szczególności jak stworzyć takiego inteligentnego robota.
Inspirację do badań nad inteligencją rojów, pomijając kwestię reprodukcji, stanowi obserwacja owadów społecznych (ang. social insects), np. mrówek [63], termitów czy pszczół, które dysponują bardzo prostymi układami nerwowymi, ale zdolne są do współpracy, a w szczególności do tworzenia bardzo złożonych struktur, takich jak mrowiska, termitiery czy gniazda. Przykładowo, termitiery powstające na sawannach, gdzie latem jest niezmiernie gorąco, są tak skonstruowane, że ich wentylacja grawitacyjna zapewnia temperaturę i wilgotność wewnątrz kopca zapobiegającą usmażeniu się owadów zamieszkujących termitierę. Żaden z termitów nie dysponuje całościowym planem budowy kopca, niemniej jednak powstaje struktura spełniająca globalne oczekiwanie. Co więcej, termitiery są cały czas modyfikowane (poprawiane), by mikroklimat w nich panujący był odpowiedni. Należy zwrócić uwagę, że większość owadów społecznych porozumiewa się pośrednio przez stygmergię, czyli pozostawianie innym insektom znaków w środowisku (np. feromonów) [20]. Budowa termitiery stymulowana jest sygnałami pozyskiwanymi ze środowiska, stygmergią i oczywiście imperatywem wewnętrznym do wykonywania tej pracy.
Zainteresowanie rojami powodowane jest ich zaletami, które chcielibyśmy umieć odtworzyć w systemach technicznych. Zalety te są następujące: −każdy owad wykazuje proste zachowanie, co wymaga jedynie prostego układu sterowania, ale rój wytwarza złożone struktury bądź zachowania, −każdy owad ma ograniczone możliwości wpływania na środowisko, każdy owad ma ograniczone możliwości percepcyjne i poznawcze (kognitywne), −łatwo się adaptują do zmian zachodzących w środowisku, system jest odporny – eliminacja lub awaria niektórych jednostek nie naraża na fiasko funkcjonowania całego systemu.
Niestety mają one również poważne wady: rezultat działania systemu jest emergentny, a więc jest trudny do przewidzenia lub do zaprogramowania, wynik bazuje nie tylko na zachowaniach jednostki, ale także na interakcjach z innymi osobnikami i środowskiem, przez co jest trudny do przewidzenia, brak wiedzy o globalnym celu może prowadzić do stagnacji lub zakleszczenia.
Z punktu widzenia realizacji technicznej systemy o strukturze roju mają następujące cechy: nie wymagają centralnego planowania – nie potrzebują koordynatora, −mają rozproszoną strukturę, −jednostki komunikują się przez środowisko (stygmergia) –komunikacja bezpośrednia rodzi problem ze skalowalnością, bo przy wielu robotach trudno jest zorganizować komunikację wielu-do-wielu, −ma proste reguły zachowań indywidualnych, −wytwarza złożone zachowanie adaptacyjne systemu, są skalowalne – struktura układu sterowania każdego robota jest taka sama, niezależnie od liczby robotów, są elastyczne – roboty mogą być dodawane lub zabierane ze środowiska bez konieczności modyfikacji specyfikacji zadania, są odporne – nie tylko ze względu na redundancję jednostek, ale także ze względu na minimalistyczny projekt jednostki.
Gdyby udało się określić sposób konstrukcji prostych robotów, które poprzez interakcje z otoczeniem oraz wzajemną komunikację byłyby w stanie tworzyć pożyteczne struktury złożone, to byłby to bardzo atrakcyjny sposób tworzenia np. budowli – same mogłyby zespalać się w celu utworzenia np. mostu nad rzeką. Ciekawą próbą, w tym kierunku, było
zaprojektowanie ponad tysiąca robotów, które przemieszczając się po płaszczyźnie stale stykając się krawędziami były w stanie tworzyć konkretne kształty dwuwymiarowe [121]. Niestety, mimo licznych prac na ten temat, jedynie udało się opracować bardzo szczególne systemy zdolne do bardzo ograniczonych zachowań realizujących globalne oczekiwania, np. wspólne pchanie pudła [169], tworzenie formacji, wspólne patrolowanie lub agregowanie się w zespoły robotów w celu realizacji konkretnego celu. Tworzenie takich systemów zazwyczaj sprowadza się do konstrukcji wielu prostych robotów, a następnie weryfikowania, czy uda im się osiągnąć globalny cel. Jeżeli nie, to roboty są modyfikowane, a następnie powtarzany jest krok weryfikacyjny. Innymi słowy, takie systemy zazwyczaj tworzone są metodą prób i błędów.
Często w przypadku zadań złożonych i heterogenicznym składzie grupy wprowadzany jest element rozdzielający zadania elementarne między poszczególne roboty. Taki system zawierający roboty obserwacyjne, manipulujące i przemieszczające został stworzony w ramach projektu europejskiego Swarmanoid [46]. Aby wykonać zadanie polegające na przyniesieniu książki znajdującej się na półce w regale, roboty obserwacyjne musiały latając po pomieszczeniach znaleźć regał z książką, następnie dwa roboty przemieszczające musiały zanieść robota manipulującego do regału, by ten wspiął się na niego i zdjął książkę. Każdy z robotów miał niewielki zasięg swojej komunikacji radiowej, więc dodatkowo roboty musiały sobie stworzyć sieć komunikacyjną. Takie zadanie wymaga zaplanowanie jego wykonania i przydzielenie zadań elementarnych poszczególnym robotom. Przy rozdziale zadań do wykonania, można mieć wątpliwości, czy nadal mamy do czynienia z rojem. Nie zmienia to faktu, że mamy tu do czynienia z dużą grupą współpracujących robotów przy realizacji złożonego zadania, ale jest ono zadane z góry, a nie wyłania się samoistnie z interakcji między robotami dysponującymi prostymi algorytmami postępowania.
Interfejsy te konstruowane są ze względów terapeutycznych, ale także poznawczych. W tym drugim przypadku przede wszystkim chodzi o odkrycie tajników działania mózgu, ale niektórzy spodziewają się, że dzięki tym badaniom będzie można usprawnić działanie mózgu. Inni obawiają się, że doprowadzi to do transhumanizmu.
Od lat 60. ubiegłego wieku badane są elektroniczne interfejsy z mózgiem BMI (ang. Brain Machine Interfaces). Celem takiego interfejsu jest wytworzenie wzajemnego powiązania między mózgiem zwierzęcia lub człowieka oraz napędem manipulatora, sztucznej nogi lub obrazu na ekranie komputera, by w pętli sprzężenia zwrotnego wykorzystać wolicjonalną aktywność elektryczną mózgu do sterowania ruchami tego napędu [89]. Zwierzę lub człowiek korzysta zarówno z własnych receptorów, np. zmysłu wzroku, jak i stymulacji bezpośredniej poprzez elektrody wytwarzające wrażenie, że np. dotyka twardego lub miękkiego przedmiotu. W niektórych eksperymentach zamiast sterować jakimś urządzeniem technicznym pacjent może sterować własna kończyną, z którą wskutek wypadku utracił łączność przez własny obwodowy układ nerwowy. Intensywność tych badań stale zwiększa się od lat 90. XX wieku. Celem tych badań jest: ustalenie i wykorzystanie zasad działania i właściwości plastycznych mózgu oraz tworzenie nowych terapii przywracających mobilność i czucie pacjentom z ciężkimi niepełnosprawnościami.
Z punktu widzenia poznawczego głównym celem jest zbadanie właściwości fizjologicznych mózgu, w tym zdolność grup neuronów w korze czuciowo-ruchowej do kodowania informacji i wykazywania plastyczności podczas uczenia się zwierząt nowych zadań motorycznych. Niemniej jednak cel terapeu-
tyczny był pierwotny. Z powodzeniem wszczepia się obecnie implanty ślimakowe p ołączone z mikrofonem, by przywrócić słuch. W celu przywrócenia wzroku, zbadano pozytywnie, czy implanty umieszczane w korze wzrokowej są w stanie przywrócić zdolność do wykrywania światła. Stosowano również substytucję jednego zmysłu drugim. Elektrody umieszczone na plecach pacjenta były pobudzane przetworzonym obrazem z kamery, dzięki czemu pacjenci po 10 godzinach uczenia się korzystania z urządzenia byli w stanie poprzez czucie dotyku wykrywać obiekty znajdujące się w pobliżu. Istotny postęp w miniaturyzacji implantów pozwolił zwiększyć rozdzielczość implantów umożliwiając jednoczesne pobieranie i wysyłanie sygnałów z/do wielu neuronów. Dzięki temu zwierzęta były w stanie jedynie za pomocą aktywności swoich mózgów włączać urządzenia, a w niektórych przypadkach poruszać np. ramieniem robota. Na pacjentach, którzy musieli być poddani operacyjnemu leczeniu choroby Parkinsona, wykazano, że te same techniki, które były stosowane na zwierzętach, można stosować na ludziach, by uzyskać wzorce ruchowe na podstawie sygnałów podkorowych. Niestety istnieją problemy z biokompatybilnością wielokanałowych implantów mózgowych. Niemniej jednak wykazano, że za pomocą takich implantów można ustalić wzorce ruchowe i je później odtworzyć, co umożliwia sterowanie urządzeniami za pomocą myśli. Co więcej można też pobudzać odpowiednie rejony mózgu, by wytworzyć wrażenia haptyczne.
Prócz technik inwazyjnych stosuje się też interfejsy nieinwazyjne wykorzystujące sygnały EEG. W ten sposób, np. za pomocą otwierania i zamykania oczu można sterować prostym urządzeniem. Ta technika była też stosowana do sterowania wózkami inwalidzkimi oraz egzoszkieletami montowanymi na nogach. Interfejsy nieinwazyjne nie wymagały stosowania procedur chirurgicznych i nie są związane z ryzykiem zakażenia lub tworzenia się blizn wokół elektrod umieszczonych w mózgu. Niestety ich rozdzielczość jest niska, a jakość uzyskiwanych sygnałów niezbyt wysoka. Niemniej jednak techniki nieinwazyjne są preferowane, bo nie zagrażają pacjentowi. Istnieje też technika pośrednia, która wprawdzie wymaga otwarcia czaszki, ale elektrody umieszczane są na powierzchni mózgu, a nie są wprowadzane do niego. Istnieją też interfejsy oparte na technikach obrazowania wykorzystujących np.: −funkcjonalny MRI, gdzie mierzy się odpowiedzi chemodynamiczne mózgu, magnetoencefalografię, która mierzy pola magnetyczne indukowane przez elektryczną aktywność neuronów, −pomiar wykorzystujący promieniowanie świetlne w bliskiej podczerwieni, by mierzyć koncentrację we krwi oksyhemoglobiny i deokshemoglobiny.
Niestety te metody pomiarowe wymagają specjalnych stanowisk laboratoryjnych.
Ponieważ roboty muszą działać w środowisku naturalnym istotna jest prędkość reakcji na bodźce pochodzące z otoczenia. Podobnie, jak u zwierząt wyższych, w robotach kluczową rolę odgrywa koordynacja kończyn ze wzrokiem. W tym celu konstruuje się serwomechanizmy wizyjne [36, 135]. Największym problemem jest szybkie rozpoznanie obrazu – detekcja i lokalizacja pożądanego obiektu. Układ składający się z kamery, procesora i oprogramowania przetwarzającego obraz zazwyczaj działa zbyt powoli, by reagować na szybko poruszające się przedmioty. Tu postępy spodziewane są raczej dzięki ulepszonym urządzeniom przetwarzającym obrazy, a nie doskonalszym algorytmom. Ostatnio opracowana fotoniczna głęboka sieć neuronowa może analizować obrazy bez potrzeby stosowania modułów pamięci, przetwornika analogowo-cyfrowego oraz zegara taktującego, czego wymagają procesory elektroniczne [8]. Może rozpoznać obraz w mniej niż 570 pikosekund. Roz-
miar układu fotonicznego to 9,3 mm2. Klasyfikację liter p i d w zbiorze 216 liter sieć wykonała z dokładnością 93,8 %, natomiast liter a, t, p i d w zbiorze 432 liter dokonała z dokładnością 89,8 %. Konwencjonalna 190-neuronowa sieć dokonywała tego z dokładnością 96 % – oczywiście zabierało jej to dużo więcej czasu. Ta fotoniczna sieć musi zostać udoskonalona, by radzić sobie z bardziej skomplikowanymi obrazami, z jakimi mają do czynienia roboty.
Wizja Przemysłu 4.0 zakłada wykorzystanie Internetu Rzeczy (IoT), inteligentnych urządzeń oraz chmur obliczeniowych do produkcji wyrobów dostosowanych do indywidualnych potrzeb klienta. Ta wizja rozszerza się w naturalny sposób także na świadczenie usług zarówno publicznych jak i przez urządzenia zainstalowane w domach. Chmura obliczeniowa może wspomagać roboty w przetwarzaniu i gromadzeniu informacji, szczególnie jeżeli ilość informacji oraz złożoność algorytmów przetwarzania danych jest duża. Pomysł zintegrowania robotów z siecią IoT doprowadził do powstania koncepcji Internetu rzeczy robotycznych IoRT (ang. Internet-of-Robotic-Things) [134]. Inkorporacja robotów do Internetu rzeczy zwiększa możliwości ich współdziałania z innymi urządzeniami znajdującymi się w ich otoczeniu, poprzez zrozumienie, jakie są ich cele, oraz wykorzystanie czujników znajdujących się w środowisku, a przyłączonych do sieci. Z punktu widzenia IoT dodanie robotów umożliwia wykorzystanie aktywnego czucia, czyli wykorzystanie ruchomości robota do zebrania lepszych odczytów czujników. Roboty, urządzenia produkcyjne i produkty mają komunikować się przez sieć, dzięki czemu następuje efektywniejsze wykorzystanie zasobów produkcyjnych do zindywidualizowanego wytwarzania. Ponieważ u podłoża tej koncepcji tkwi wymiana informacji między rozproszonymi urządzeniami poprzez sieć, niezbędne jest zapewnienie odpowiedniego poziomu cyberbezpieczeństwa. Istotnym elementem tej wizji jest zastosowanie sztucznej inteligencji. Między innymi zakłada się samodoskonalenie działania systemu wytwarzania lub świadczącego usługi dzięki jego uczeniu się. Inkorporowanie robotów do sieci, prócz zalet, niestety ma też wady – naraża je na różne formy ataków cybernetycznych.
Przyczynami podatności systemów robotycznych na cyber-ataki mogą być [149]: połączenia z sieciami przewodowymi lub bezprzewodowymi, korzystanie z platform programowych podatnych na ataki (np. systemów operacyjnych zawierających dziury lub tylne wejścia (ang. backdoors)), stosowanie oprogramowania sterującego stworzonego bez uwzględnienia zabezpieczeń przeciwko atakom, adopcja niewłaściwych środków zabezpieczających przeciwko atakom, brak odpowiednich procedur zabezpieczających w trakcie interakcji personelu z systemem robotycznym (np. autentyfikacja, kodowanie wiadomości, autoryzacja, szkolenie operatorów). Ataki mogą być prowadzone przez: blokowanie łącz komunikacyjnych (np. przez ich zakłócanie lub spowodowanie odmowy świadczenia usług wywołane nadmiarowym ich żądaniem DoS (ang. denial of service)), przechwytywanie komunikacji, wstrzykiwanie do oprogramowania systemu wrogiego oprogramowania (np. wirusy, trojany), nieuprawnione zdobywanie informacji o sposobach dostępu do systemu, modyfikowanie przesyłanych informacji, nadmierne zużycie zasobów robota (np. wyczerpanie akumulatorów lub przeciążenie komputera sterującego), fizyczne uszkodzenie sprzętu wykorzystywanego przez system robotyczny lub zakłócanie działania jego czujników. Powodem ataków zazwyczaj jest albo chęć przejęcia kontroli nad systemem w celu upośledzenia jego funkcji lub pozyskiwanie w sposób nieuprawniony danych wrażliwych. Upośledzenie funkcji może polegać np. na zakodowaniu danych w celu uzyskania okupu w zamian za odkodowanie danych.
Współczesne roboty są sterowane komputerowo, więc ich oprogramowanie, jak widać z tego, co zostało napisane powyżej, podlega w dużej mierze tym samym zagrożeniom, co oprogramowanie innych systemów informatycznych. Oczywiście istnieją różnice, ale duża część zagrożeń jest wspólna, dlatego wiele metod ochrony systemów informatycznych przed atakami jest wykorzystywanych również przez robotyków. Modelowanie zagrożeń polega na stworzeniu abstrakcyjnego modelu oprogramowania w celu zidentyfikowania możliwości, celów oraz motywacji atakującego, tak aby w efekcie utworzyć katalog możliwych zagrożeń [131]. Proces modelowania zagrożeń ma prowadzić do identyfikacji i oceny zagrożeń dla firmy wykorzystującej oprogramowanie oraz określenia skutków ewentualnego ataku i do znalezienia środków zaradczych w przypadku ich wykrycia.
W pracy [127] podkreślono, że analiza zagrożeń wymaga stworzenia abstrakcyjnego modelu systemu oraz profili agresorów, biorąc pod uwagę zarówno ich cele jaki i metody działania. Aby taki model był przydatny do analizy zagrożeń bezpieczeństwa, powinien obejmować zarówno oprogramowanie, jak i osoby z niego korzystające [130]. Brak modelu użytkownika w istotny sposób utrudnia analizę problemów związanych z autentyfikacją, a w szczególności czyni kłopotliwym wskazanie możliwych metod przeprowadzenia ataku. Prace przeglądowe [78, 101, 127, 128] przedstawiają najbardziej popularne metody projektowania systemów informatycznych biorące pod uwagę zapewnienie cyberbezpieczeństwa. Większość przedstawianych metod koncentruje się na fazie formułowania wymagań dla projektowanego systemu oraz na jego specyfikacji.
Metoda modelowania zagrożeń STRIDE [78], [127] (nazwana tak od angielskich słów: Spoofing, Tampering, Repudiation, Information disclosure, Denial of Service, Elevation of privilege), opracowania w 1999 r., używana przez wiele lat przez firmę Microsoft, bierze pod uwagę szeroki repertuar możliwych zagrożeń. Są to: −udawanie użytkownika uprawnionego do korzystania z systemu, dzięki naruszeniu procedur sprawdzających autentyczność (autentyfikacja), −modyfikacja danych, czyli naruszanie ich integralności, −wypieranie się swoich działań (zazwyczaj jest to związane z modyfikacją logów), −naruszanie poufności danych, doprowadzanie do odmowy dostarczania usług przez wyczerpywanie zasobów (DoS) oraz zwiększanie swoich przywilejów w celu uzyskania nieuprawnionego dostępu do zastrzeżonych zasobów.
Analiza systemu prowadzona jest przez jego dekompozycję na podsystemy. Najczęściej stosuje się w tym celu diagramy przepływu danych DFD (ang. Data Flow Diagram). Diagramy te tworzone są z czterech typów pojęć: procesów (funkcji), magazynów danych, przepływu danych, jednostek zewnętrznych (terminatorów), a w przypadku analizy bezpieczeństwa uzupełniane są przez zaznaczenie obszarów zaufania (ich granice wyznaczają zmianę niezbędnego stopnia uprzywilejowania). DFD wybrano do przeprowadzenia analizy cyberbezpieczeństwa, ponieważ większość ataków dotyczy danych i ich przetwarzania [130]. Każdy z elementów takiego diagramu analizowany jest pod kątem wymienionych tu zagrożeń. Dla ułatwienia analizy stosuje się przygotowane szablony zawierające listy pytań, na które należy udzielić odpowiedzi. Wadą metody STRIDE jest to, że dla dużych systemów, składających się z wielu modułów, z których każdy może podlegać wielu zagrożeniom, określenie środków zaradczych jest żmudne. Ponadto niezbędna jest lista potencjalnych zagrożeń. Na podstawie wymienionych tam zagrożeń oraz dzięki znajomości struktury systemu formułowane są środki zaradcze.
Dlatego firma Microsoft zmodyfikowała metodę STRIDE, a w konsekwencji powstała metoda DREAD (ang. Damage potential, Reproducibility, Exploitability, Affected users, Discoverability) [70, 130], która po kilku kolejnych latach uległa dalszym modyfikacjom. W metodzie DREAD ocenia się:
−jak wielką szkodę może wyrządzić atak?
−jak łatwo jest odtworzyć atak?
−jak wiele pracy trzeba włożyć w przeprowadzenie ataku?
−jak wielu ludzi będzie dotkniętych skutkami ataku?
−jak trudno jest odkryć atak?
Przy stosowaniu DREAD ewaluacji liczbowej podlega ryzyko wystąpienia każdego z wymienionych zagrożeń. Pierwsze trzy zagrożenia oceniane są w skali trójstopniowej, a ostanie dwa w czterostopniowej.
W 2012 r. opracowano zestaw narzędzi o akronimie PASTA (ang. Process for Attack Simulation and Threat Analysis –proces symulacji ataku oraz analizy zagrożeń, czyli niepożądanych zdarzeń), służący do stworzenia modelu zagrożeń z punktu widzenia atakującego system. Siedmiokrokowy proces modelowania określa ryzyko wystąpienia zagrożeń. Pierwszy krok polega na zdefiniowaniu swoich celów biznesowych oraz określeniu partnerów, którzy będą mieli styczność z tworzonym oprogramowaniem oraz przepisów rządzących dziedziną, której oprogramowanie dotyczy. W szczególności należy określić, jakie wartościowe zasoby mogą być zagrożone, by je odpowiednio chronić. W drugim kroku określa się techniczne zasoby (oprogramowanie i sprzęt) i jakie są współzależności między poszczególnymi komponentami. Innymi słowy, określa się kontekst, w którym będzie funkcjonowało tworzone lub badane oprogramowanie. Trzeci krok zajmuje się dekompozycją systemu. Określa przypadki użycia, role, usługi, źródła danych, przywileje użytkowników. W tym kroku tworzy się diagramy przepływu danych DFD oraz określa obszary zaufania. W czwartym kroku następuje analiza zagrożeń, polegająca na budowie katalogu zagrożeń z punktu widzenia dziedziny zastosowań tworzonego oprogramowania oraz probabilistyczna analiza możliwych scenariuszy ataków. W tym kroku bada się logi, jeżeli istnieją, by określić przeszłe wektory ataków. Piąty krok to detekcja słabości na podstawie drzew zagrożeń. Krok szósty polega na modelowaniu ataków i analizie ich skutków. W tym celu budowane są drzewa ataków, a w efekcie określane są drogi i sposoby prowadzenia możliwych ataków. Istotnym elementem jest wskazanie, jak przypadki użycia mogą zostać przetransformowane w przypadki nadużycia. Wreszcie w kroku siódmym przeprowadzana jest analiza ryzyka pojawienia się poszczególnych ataków i określane są sposoby przeciwdziałania im. Do działań związanych z poszczególnymi krokami powstały narzędzia programistyczne wspomagające pracę analityków.
Koncepcja drzew ataków została opracowana w 1999 r. [126]. Korzeniem drzewa jest cel ataku, gałęźmi są cele cząstkowe, natomiast jego liśćmi są metody osiągnięcia celu. Dla analizowanego systemu konstruuje się wiele takich drzew, bo różne mogą być cele ataku. Gałęzie wychodzące z węzłów drzewa mogą być w relacji OR lub AND. Zazwyczaj określa się też koszt osiągnięcia tego celu przypisując wartości celom cząstkowym. Cenę ataku określa się poruszając od liści do korzenia. Koszt ataku może być określany biorąc pod uwagę różne kryteria, np. czy dana czynność jest łatwa do wykonania czy trudna, czy wymaga specjalistycznego sprzętu czy nie, jest legalna czy nie. Można też oszacować koszt monetarny wykonania czynności lub prawdopodobieństwo jej sukcesu, przez co można oszacować całkowity koszt lub prawdopodobieństwo ataku. Drzewa ataku konstruuje się albo dla całego systemu albo dla poszczególnych jego elementów. Powinny być skojarzone z wiedzą o umiejętnościach atakujących. Istnieją opracowane wskazówki, jak powinno się konstruować takie drzewa [126].
Metoda modelowania zagrożeń PnG (ang. Persona non Grata) koncentruje się na motywacjach i umiejętnościach atakujących [39]. Atakujących definiuje się jako osoby wchodzące w interakcje z systemem w sposób niedopuszczalny. Analitycy stosując tę metodę patrzą na system z punktu widzenia osoby atakującej. Przyglądają się każdej z wymaganych cech systemu przez pryzmat tego, jak może ona być nadużyta. W ten sposób określa się, jak oprogramowanie zareaguje na przypadek niewłaściwego użycia.
Karty bezpieczeństwa (ang. Security Cards) są techniką badania bezpieczeństwa za pomocą zestawu kart, które zawierają pytania i przykłady ataków [45]. Karty te używa się w trakcie sesji burzy mózgów, jako ułatwienie do generacji pomysłów dotyczących ataków możliwych do przeprowadzenia. Karty podzielone są na cztery zestawy ułatwiające udzielanie odpowiedzi na następujące grupy pytań:
kto lub co (np. klimat) może ponieść stratę wskutek ataku? −jakie są motywacje atakującego? −jakie zasoby posiada atakujący? −jakich używa metod ataku?
Metoda SQUARE (ang. Security Quality Requirements Engineering Method) została opracowana w 2005 r. przez Software Engineering Institute Carnegie Mellon University [100]. Celem opracowanej metody było wprowadzenie do projektowania systemów informatycznych, już w początkowej fazie ich tworzenia, elementów mających zapewnić bezpieczeństwo produktu finalnego. Jeżeli wymagania nałożone na projektowany system nie są poprawnie wyrażone, powstanie system nieodpowiedni lub niskiej jakości. Korekty na etapie wdrażania są bardzo kosztowne i prowadzą do projektów, które znacznie przekraczają budżet i trwają dłużej niż zakłada harmonogram. Metoda wymaga wykonania dziewięciu następujących kroków. Krok pierwszy prowadzi do uzgodnienia definicji pojęć używanych przez wszystkich udziałowców projektu – tu najczęściej korzysta się z definicji ujętych w standardach. Krok drugi polega na sformułowaniu wymagań dotyczących bezpieczeństwa systemu (identyfikacji celów). Trzeci krok dotyczy wskazania narzędzi, które zostaną wykorzystane do pracy nad stworzeniem bezpiecznego systemu, np. scenariuszy działania, przypadków użycia i nadużycia, formularzy. Krok czwarty zajmuje się oceną ryzyka związanego z poszczególnymi zagrożeniami. W kroku piątym dokonuje się wyboru technik pozyskiwania informacji od udziałowców o zagrożeniach. W kroku szóstym wybrane technik stosuje się do pozyskania niezbędnych informacji od udziałowców. Krok siódmy polega na kategoryzacji wymagań dotyczących bezpieczeństwa. W kroku ósmym przypisuje się priorytety poszczególnym kategoriom zagrożeń. W ostatnim kroku dokonuje się ostatecznej inspekcji efektów pracy i tworzy ostateczną dokumentację przeprowadzonego procesu decyzyjnego.
Ponieważ wiele ze wcześniej przedstawionych podejść do modelowania zagrożeń koncentruje się jedynie na pewnych aspektach dziedziny, stworzono również metody hybrydowe wykorzystujące kilka z wcześniej powstałych narzędzi. Jedną z takich metod jest hTMM (ang. Hybrid Threat Modeling Method) stworzona przez Software Engineering Institute Carnegie Mellon University w 2018 r. [101]. Została ona zainspirowana przez STRIDE. Łączy ona w sobie: SQUARE, Security Cards i PnG. Oto główne kroki metody. Wpierw należy określić system, dla którego ma być przeprowadzona analiza zagrożeń. Następnie należy zorganizować burzę mózgów z zastosowaniem kart bezpieczeństwa. W burzy mózgów powinni wziąć udział użytkownicy (obecni lub przyszli) oraz nabywcy systemu, jego projektanci i wdrożeniowcy oraz eksperci zajmujących się cyberbezpieczeństwem. Kolejnym krokiem jest usunięcie z zestawu osób atakujących mało prawdopodobnych PnG, tj. takich, dla których wektory ataku są nierealistyczne. Po tym
następuje podsumowanie wyników za pomocą narzędzi wspomagających. Te działania powinny doprowadzić do skonkretyzowania odpowiedzi na następujące pytania:
−kto lub co może zainicjować atak?
−jaka jest motywacja atakującego?
−co jest celem ataku?
biorąc pod uwagę zasoby i umiejętności atakującego, jaki może być wektor ataku?
−jakie mogą być efekty ataku?
−jak dotkliwe mogą być efekty ataku? z jakim typem ataku mamy do czynienia (np. DoS, udawanie użytkownika)?
Na tej podstawie przeprowadza się formalną ocenę ryzyka, przykładowo używając metody SQUARE.
Metoda CVSS (ang. Common Vulnerability Scoring System), opracowana przez NIST (ang. National Institute of Standards and Technology), a obecnie utrzymywana przez stowarzyszenie FIRST, przypisuje wartość numeryczną podatności na zagrożenie [1]. Zastosowano trzy metryki: podstawową (ang. base), czasową (ang. temporal) oraz środowiskową (ang. environmental). Pierwsza zajmuje się zagrożeniami niezależnymi od czasu i środowiska, w którym działa system, druga zajmuje się zagrożeniami zależnymi od czasu, a trzecia tymi zależnymi od środowiska, które wykorzystuje użytkownik. Wpierw obliczana jest wartość metryki podstawowej, a następnie jest ona modyfikowana przez wartości wynikające z określenia wartości dwóch pozostałych metryk. Wartość metryki podstawowej określana jest przez organizację utrzymującą oprogramowanie, natomiast dwie pozostałe metryki określane są przez konkretnych użytkowników, którzy znają warunki, w których użytkują system. Przykładowo, zmiana zagrożenia w czasie może być spowodowana przez aktualizację systemu operacyjnego, natomiast zagrożenia wynikające z uwarunkowań środowiskowych zmieniają się w zależności od zabezpieczeń dodatkowych stosowanych przez konkretnego użytkownika. Metryka podstawowa zbudowana jest z dwóch zestawów wartości. Pierwszy dotyczy możliwości wykorzystania podatności na atak (ang. exploitability), a druga konsekwencji ataku (ang. impact). Pierwszy zestaw wskazuje na łatwość dokonania ataku na podatny komponent oraz niezbędne środki techniczne do jego przeprowadzenia. Drugi zestaw kwantyfikuje skutki pomyślnie przeprowadzonego ataku na ten komponent. Metryka bazowa daje wynik w zakresie 1–10 i jest uzupełniana przez wektor liczb wskazujący na wpływ powyżej wymienionych ocen cząstkowych.
Pełna ocena zagrożeń, którym może podlegać system robotyczny, możliwa jest jedynie w przypadku dogłębnej znajomości struktury i sposobu działania tego systemu [84]. Aby ocenić zagrożenia, wymienia się tu następujące wektory ataku (drogi, którymi ataki są przeprowadzane): sprzęt, sieć, system operacyjny i oprogramowanie wbudowane, a ponadto oprogramowanie aplikacyjne. Stwierdzono tam, że cyberbezpieczeństwo systemu wymaga: konfidencjonalności, czyli uniemożliwienia nieautoryzowanego ujawnienia danych, zachowania integralności, czyli zapobieżenia modyfikacji bądź skasowania danych, oraz dostępności, czyli zapewnienia dostępu do danych w sposób terminowy i niezawodny. Prócz danych zagrożone mogą być również inne zasoby, w szczególności urządzenia, i dostarczane usługi, a dokładniej kod programów je świadczące.
Analiza cyberbezpieczeństwa dotyczy zarówno sposobu konstrukcji systemów jak i ich użytkowania. W przypadku systemów informatycznych powszechnego użytku agresorzy mogą w celu zmylenia użytkownika podstawić nieprawdziwą stronę internetową, ale ten sposób jest powszechnie znany. W przypadku robotów należy zwrócić uwagę, że ludzie inaczej zachowują się wobec innych ludzi, a inaczej wobec robotów. Ludzie mają dużo większe zaufanie do robotów społecznych niż do
innych ludzi. Nie przypuszczają, że roboty te mogą posłużyć do spowodowania szkód. Przykładowo, o ile nie byliby skłonni wpuścić do strefy zastrzeżonej obcej osoby, to zbadano, że nie mieli takich oporów w przypadku robotów [84]. Prócz problemów związanych z konstrukcją bezpiecznego oprogramowania rozważana jest kwestia, analizy istniejącego oprogramowania, które nie było stworzone według postulowanych zasad, a teraz należy określić stopień jego odporności na ataki. W tym celu prowadzone są prace badawcze mające na celu automatyczną konwersję takiego oprogramowania w modele standardowo używane do analizy odporności na ataki (np. DFD) [130].
Ostatecznym wynikiem powyżej opisanych metod analizy jest wskazanie środków zaradczych zapobiegających skutkom ataków. Przykładowymi środkami obrony są: −Ściany ogniowe (firewall), służące blokowaniu niechcianych wiadomości nadchodzących z sieci, jednocześnie przepuszczające te pożądane, Systemy wykrywania i zapobiegania włamaniom (ang. Intrusion Detection System, Intrusion Prevention System), które porównują dane w przychodzących pakietach ze znanymi wzorcami ataków i je albo jedynie wykrywają albo również neutralizują ich szkodliwe działanie, Pułapki ściągające na siebie ataki (honeypot), umożliwiające zdobycie informacji o atakującym, dzięki stworzeniu sztucznego środowiska przypominającego rzeczywiste będące owocem pożądania intruza.
Należy zwrócić uwagę, że w przypadku robotów, nie tylko połączenie z siecią może być źródłem zagrożenia. Roboty korzystają z czujników do pozyskiwania informacji o stanie swego otoczenia. Atak może nastąpić poprzez wrogie oddziaływanie na czujniki. Taki atak będzie tworzył iluzję, którą układ sterowania robota potraktuje, jako rzeczywistość i zacznie podejmować niewłaściwe decyzje. To z kolei może prowadzić do jego uszkodzenia lub zniszczeń w jego otoczeniu. Jest to szczególnie niebezpieczne w przypadku robotów przeznaczonych do celów militarnych, które nierzadko są uzbrojone.
W przypadku robotów kompanów, lub szerzej patrząc robotów usługowych, dąży się do tego, by interakcja między człowiekiem a robotem odbywała się w języku naturalnym z użyciem mikrofonów i głośników, a także kamer w celu analizy wyrazu twarzy oraz gestykulacji. Nie każdy człowiek powinien mieć możliwość wydawania poleceń takiemu robotowi. W takim przypadku potrzebne są zabezpieczenia biometryczne, np. bazujące na rozpoznawaniu głosu, bądź twarzy [9], tęczówki [44], a nawet odcisków palców [118]. Ponadto każdy sterownik robota powinien być wyposażony w oprogramowanie monitorujące zachowanie tego robota, w celu detekcji anomalii. Minimalnym wymaganiem jest sygnalizacja wykrycia takiego nienormalnego zachowania, natomiast pożądanym jest by sterownik był w stanie dokonać korekty swego działania w celu osiągnięcia stanu normalnego (samonaprawa, ang. self-healing). Jeżeli to nie jest możliwe, to element systemu, który uległ atakowi powinien być izolowany. Jeżeli system jest w stanie jedynie wykryć atak, to powinien przechowywać logi rejestrujące jego aktywność, by możliwa była analiza prowadząca do wykrycia, co konkretnie się stało i skąd nastąpił atak. Ponadto należy podkreślić, że szyfrowanie komunikacji w istotny sposób utrudnia prowadzenie ataków.
Prócz ataków na wyprodukowanego i funkcjonującego już robota rozpatruje się również ataki prowadzone w trakcie jego wytwarzania lub projektowania – może dojść do sabotażu, wynikiem którego będzie celowe wstawienie do oprogramowania tylnego wejścia, przez które osoby niepowołane będą mogły w przyszłości dostać się do wnętrza systemu. W przypadku robotów wykorzystujących systemy sterowania o zmiennej strukturze (np. [167]), gdzie na potrzeby realizacji dużej różnorodności zlecanych zadań, robot musi wymieniać moduły
wykonujące te zadania, względnie łatwo jest przesłać z repozytorium umieszczonego w chmurze zainfekowany moduł. Roboty też mogą korzystać z usług świadczonych przez chmury obliczeniowe, np. przekazując obliczeniochłonne zadania do realizacji zdalnej. Przekazywanie danych i odbieranie wyników podatne jest na cyberatak. Co więcej, roboty działają w czasie rzeczywistym, więc spowolnienie otrzymania wyników przez atak typu DoS może w istotny sposób zaburzyć funkcjonowanie systemu.
Niestety nie ma jeszcze spójnego zestawu rekomendacji, jak konstruować cyberbezpieczne systemy robotyczne. Istnieją jedynie ogólne rekomendacje, głównie zaczerpnięte z inżynierii oprogramowania oraz zalecenia dotyczące wybranych form ataków na systemy konkretnego typu. Widać, że potrzebny tu jest duży wysiłek badawczy, by stworzyć odpowiednie standardy. Oczywiście standaryzacja jest wskazana, ale należy zwrócić uwagę, że badacze zajmujący się cyberbezpieczeństwem nadal poszukują rozwiązań niekonwencjonalnych. W szczególności szukają inspiracji w naturze [99, 124]. Zwracają uwagę, że konwencjonalny atak, składający się z: 1) instalacji wrogiego oprogramowania (ang. malware) – najczęściej dzięki oszukaniu użytkownika, 2) wprowadzenie zainfekowanego komputera do botnetu, dzięki czemu atakujący przejmuje kontrolę nad tym komputerem, 3) zainicjowanie kolejnego ataku z użyciem tego komputera,
ma swoje odpowiedniki w biologii. Przykładowo niektóre pająki zastawiają pułapki feromonowe, które powodują, że owady są wabione do ich pajęczyn, tak jak wabieni są internauci na niebezpieczne strony. Do przekazywania informacji w botnecie wykorzystuje się steganografię [153], czyli ukrywanie tajnej wiadomości w publicznie dostępnych danych, np. w obrazach, modyfikując je niezauważalnie dla ludzkiego oka. Podobnie działają niektóre grzyby, które infekują mrówki, powoli je trawiąc. W pewnym momencie dochodzi do przejęcia kontroli nad zachowaniem mrówki. Mrówka jest zmuszana do wędrówki do miejsca optymalnego dla rozwoju kolejnego pokolenia zarodników. Studiowanie zachowania roślin, grzybów i zwierząt pokazuje, jakie mogą być wektory ataku, ale również jak się przed nimi bronić.
Ponadto należy zwrócić uwagę, że cyberbezpieczeństwo, traktowane jako nauka, zajmuje się wykrywaniem oraz ochroną przed: wrogim przejęciem, modyfikacją zachowania lub zniszczeniem robota, ale zupełnie pomija możliwość samoistnej zmiany jego działania na potencjalnie groźne dla ludzi, a to jest przedmiotem troski wielu futurystów. Przez samoistną zmianę rozumiem tu transformację działania robota wskutek „świadomej” decyzji sztucznej inteligencji wbudowanej w jego sterownik.
1. Common Vulnerability Scoring System version 3.1: Specification Document CVSS Version 3.1 Release. https:// www.first.org/cvss/ specification-document, 2019.
2. Google Brain Team. https://research.google/teams/ brain/robotics/, 2022.
3. Aggarwal C.C., Neural Networks and Deep Learning: A Textbook. Springer, 2018, DOI: 10.1007/978-3-319-94463-0.
4. Alami R., Chatila R., Fleury S., Ghallab M.M., Ingrand F., An architecture for autonomy. The International Journal of Robotics Research, Vol. 17, No. 4, 1998, 315–337, DOI: 10.1177/027836499801700402.
5. Arabas J., Wykłady z algorytmów ewolucyjnych. Wydawnictwa Naukowo-Techniczne, Warszawa 2001.
6. Arkin R.C., Behavior-Based Robotics. MIT Press, 1998.
7. Armbrust C., Kiekbusch L., Ropertz T., Berns K., Soft robot control with a behaviour-based architecture. Soft Robotics, 81–91, Springer, 2015, DOI: 10.1007/978-3-662-44506-8_8.
8. Ashtiani F., Geers A., Aflatouni F., An on-chip photonic deep neural network for image classification. „Nature”, No. 606, 2022, 501–506, DOI: 10.1038/s41586-022-04714-0.
9. Azimi M., Pacut A., Investigation into the reliability of facial recognition systems under the simultaneous influences of mood variation and makeup. „Computers & Electrical Engineering”, Vol. 85, 2020, DOI: 10.1016/j.compeleceng.2020.106662.
10. Beetz M., Chatila R., Hertzberg J., Pecora F., AI Reasoning Methods for Robotics, [In:] Siciliano B., Khatib O. (red.), Springer Handbook of Robotics, Springer, 2016, 329–356, DOI: 10.1007/978-3-319-32552-1_14.
11. Beetz M., Mösenlechner L., Tenorth M., CRAM – A Cognitive Robot Abstract Machine for Everyday Manipulation in Human Environments. „IEEE/RSJ International Conference on Intelligent Robots and Systems”, IROS, Taipei, Taiwan, 1012–1017, DOI: 10.1109/IROS.2010.5650146.
12. Beni G., From swarm intelligence to swarm robotics „Lecture Notes in Computer Science”, Vol. 3342, 2004, DOI: 10.1007/978-3-540-30552-1_1.
13. Beni G., Wang J., Swarm intelligence in cellular robotic systems. „Robots and Biological Systems: Towards a New Bionics”, Springer, 1993, 703–712, DOI: 10.1007/978-3-642-58069-7_38.
14. Billard A., Calinon S., Dillmann R., Learning from humans, [In:] Siciliano B., Khatib O. (red.), Springer Handbook of Robotics, Springer, 2016, 1995–2014, DOI: 10.1007/978-3-319-32552-1_74.
Przegląd podstawowych czynników wpływających na inteligencję robotów, zawarty w tej części artykułu, wskazuje na następujące istotne fakty: opracowanie każdego z wymienionych tu czynników wymagało dużego wysiłku badawczego, −w każdym z tych przypadków osiągnięto duży postęp, stworzenie inteligentnego robota wymaga inkorporacji wszystkich opisanych tu czynników do jego sterownika, patrząc na każdy z tych czynników oddzielnie, niestety osiągnięty stan jest nadal niewystarczający, by roboty mogły dorównać ludzkiej inteligencji, nie wspominając już o jej przewyższeniu.
W drugiej części tego artykułu pokazane będzie, na ile wybrane tu kluczowe technologie, niezbędne do wytworzenia inteligentnego zachowania robotów, w istocie umożliwiły stworzenie takich maszyn.
15. Billard A., Calinon S., Dillmann R., Schaal S., Robot programming by demonstration. [In:] Siciliano B., Khatib O. (red.), Springer Handbook of Robotics, Springer, 2008, 1371–1394, DOI: 10.1007/978-3-540-30301-5_60.
16. Blodow N., Jain D., Marton Z., Beetz M., Perception and probabilistic anchoring for dynamic world state logging 10th IEEE-RAS International Conference on Humanoid Robots, 2010, 160–166, DOI: 10.1109/ICHR.2010.5686341.
17. Blume C., Jakob W., PASRO: Pascal for Robots. Springer–Verlag, 1985.
18. Blume C., Jakob W., Programming Languages for Industrial Robots. Springer–Verlag, 1986.
19. Bodner J., Augustin F., Wykypiel H., Fish J., Muehlmann G., Wetscher G., Schmid T., The da Vinci robotic system for general surgical applications: a critical interim appraisal. “Swiss Medical Weekly”, Vol. 135, 2005, 674–678, DOI: 10.4414/smw.2005.11022.
20. Bonabeau E., Dorigo M., Theraulaz G., Swarm Intelligence: From Natural to Artificial Systems. Oxford University Press, New York, Oxford, 1999.
21. Brady M., Artificial intelligence and robotics. “Artificial Intelligence”, Vol. 26, No. 1, 1985, 79–121.
22. Brooks A., Kaupp T., Makarenko A., Williams S., Orebäck A., Towards component-based robotics. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’05), 2005, 163–168, DOI: 10.1109/IROS.2005.1545523.
23. Brooks A., Kaupp T., Makarenko A., Williams S., Orebäck A., Orca: A component model and repository. [In:] Brugali D. (red.), Software Engineering for Experimental Robotics, Vol. 30 serii Springer Tracts in Advanced Robotics, 2007, 231–251, DOI: 10.1007/978-3-540-68951-5_13.
24. Brooks R.A., Elephants don’t play chess. “Robotics and autonomous systems”, Vol. 6, No. 1–2, 1990, 3–15, DOI: 10.1016/S0921-8890(05)80025-9.
25. Brooks R.A., A robust layered control system for a mobile robot, “IEEE Journal of Robotics and Automation”, Vol. 2, No. 1, 1986, 14–23, DOI: 10.1109/JRA.1986.1087032.
26. Brooks R.A., Intelligence without reason, Artificial Intelligence: critical concepts, 3:107–163, 1991.
27. Brooks R.A., Intelligence without representation. “Artificial Intelligence”, Vol. 47, No. 1–3, 1991, 139–159, DOI: 10.1016/0004-3702(91)90053-M.
28. Brooks R.A., New approaches to robotics, “Science”, Vol. 253, No. 5025, 1991, 1227–1232, DOI: 10.1126/science.253.5025.1227.
29. Brucker P., Scheduling Algorithms. Springer-Verlag, Berlin, Heidelberg, wyd. 5, 2007.
30. Brugali D., Model-driven software engineering in robotics: Models Are Designed to Use the Relevant Things, Thereby Reducing the Complexity and Cost in the Field of Robotics, “IEEE Robotics Automation Magazine”, Vol. 22, No. 3, 2015, 155–166, DOI: 10.1109/MRA.2015.2452201.
31. Bruyninckx H., Open robot control software: The OROCOS project. Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Vol. 3, 2001, 2523–2528, DOI: 10.1109/ROBOT.2001.933002.
32. Bruyninckx H., The real-time motion control core of the OROCOS project. Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2003, 2766–2771, DOI: 10.1109/ROBOT.2003.1242011.
33. Bulter Z., Rizzi A., Distributed and cellular robots. [In:] Siciliano B., Khatib O. (red.), Springer Handbook of Robotics, Springer, 2008, 911–920, DOI: 10.1007/978-3-540-30301-5_40.
34. Carlisle B., Robot mechanisms. Proceedings of the 2000 ICRA Millenium IEEE International Conference on Robotics and Automation, 2000, DOI: 10.1109/ROBOT.2000.844134.
35. Carpenter G., Grossberg S., Adaptive resonance theory [In:] Sammut C., Webb G. (red.), Encyclopedia of Machine Learning, Springer, 2010, 22–35, DOI: 10.1007/978-0-387-30164-8_11.
36. Chaumette F., Hutchinson S., Corke P., Visual Servoing [In:] The Handbook of Robotics, Springer, 2016, 841–866.
37. Chibani A., Amirat Y., Mohammed S., Matson E., Hagita N., Barreto M., Ubiquitous robotics: Recent challenges and future trends. “Robotics and Autonomous Systems”, Vol. 61, No. 11, 2013, 1162–1172, DOI: 10.1016/j.robot.2013.04.003.
38. Cichosz P., Systemy uczące się. Wydawnictwa Naukowo-Techniczne, Warszawa 2007.
39. Cleland-Huang, J., How well do you know your personae non gratae? “IEEE Software”, Vol. 31, No. 4, 2014, 28–31, DOI: 10.1109/MS.2014.85.
40. Collett T., MacDonald B., Gerkey B., Player 2.0: Toward a practical robot programming framework. Proceedings of the Australasian Conference on Robotics and Automation (ACRA), December 2005.
41. Cooper B., Driving on the surface of mars using the rover control workstation. Proceedings of the International Conference on Space Operations, SpaceOps ’98, June 1–5 1998.
42. Coradeschi S., Saffiotti A., An introduction to the anchoring problem. “Robotics and Autonomous Systems”, Vol. 43, No. 2-3, 2003, 85–96, DOI: 10.1016/S0921-8890(03)00021-6.
43. Coste-Maniere E., Simmons R., Architecture, the backbone of robotic systems. Proc. IEEE International Conference on Robotics and Automation ICRA ’00, Vol. 1, 2000, 67–72.
44. Czajka A., Kasprzak W., Wilkowski A., Verification of iris image authenticity using fragile watermarking. “Bulletin of the Polish Academy of Sciences: Technical Sciences”, Vol. 64, No. 4, 2016, 807–819, DOI: 10.1515/bpasts-2016-0090.
45. Denning T., Friedman B., Kohno T., The security cards – a security threat brainstorming toolkit. https: //securitycards.cs.washington.edu/, 2013.
46. Dorigo M., Floreano D., Gambardella L., Mondada F., Nolfi S., Baaboura T., Birattari M., Bonani M., Brambilla M., Brutschy A., Burnier D., Campo A., Christensen A., Decugniere A., Di Caro G., Ducatelle F., Ferrante E., Forster A., Gonzales J., Guzzi J., Longchamp V., Magnenat S., Mathews N., Montes de Oca M., O’Grady R., Pinciroli C., Pini G., Retornaz P., Roberts J., Sperati V., Stirling T., Stranieri A., Stutzle T., Trianni V., Tuci E., Turgut A.E., Vaussard F., Swarmanoid: A novel concept for the study of heterogeneous robotic swarms. “IEEE Robotics & Automation Magazine”, Vol. 20, No. 4, 2013, 60–71, DOI: 10.1109/MRA.2013.2252996.
47. Doriya R., Mishra S., Gupta S., A brief survey and analysis of multi-robot communication and coordination, 2015 International Conference on Computing, Communication Automation (ICCCA), 1014–1021, DOI 10.1109/CCAA.2015.7148524.
48. Driankov D., Hellendoorn H., Reinfrank M., An Introduction to Fuzzy Control. Springer-Verlag, Berlin, Heidelberg, 1993.
49. Dudek G., Jenkin M.R.M., Milios E., Wilkes D., A taxonomy for multi-agent robotics. “Autonomous Robots”, Vol. 3, No. 41996, 375–397, DOI: 10.1007/BF00240651.
50. Dudek W., Szynkiewicz W., Winiarski T., Nao Robot Navigation System Structure Development in an Agent-Based Architecture of the RAPP Platform. [In:] R. Szewczyk, C. Zieliński, M. Kaliczyńska (red.), Recent Advances in Automation, Robotics and Measuring Techniques, Vol. 440 serii Advances in Intelligent Systems and Computing (AISC), Springer, 2016, 623–633, DOI: 10.1007/978-3-319-29357-8_54.
51. Dudek W., Winiarski T., Scheduling of a Robot’s Tasks with the TaskER Framework. “IEEE Access”, Vol. 8, 2020, 161449–161471, DOI: 10.1109/ACCESS.2020.3020265.
52. Farinelli A., Iocchi L., Nardi D., Multirobot systems: a classification focused on coordination. “IEEE Transactions on Systems, Man, and Cybernetics”, Part B (Cybernetics), Vol. 34, No. 52004, 2015–2028, DOI: 10.1109/TSMCB.2004.832155.
53. Fedrizzi A., Mosenlechner L., Stulp F., Beetz M., Transformational planning for mobile manipulation based on action-related places. 14th International Conference on Advanced Robotics, ICAR, Munich, Germany, June 22–26 2009.
54. Ferrer-Mestres J., Dietterich T., Buffet O., Chadès I., Solving k-mdps. Proceedings of the International Conference
on Automated Planning and Scheduling, Vol. 30, 2020, 110–118, DOI: 10.1609/icaps.v30i1.6651.
55. Figat M., Zieliński C., Parameterised robotic system metamodel expressed by Hierarchical Petri nets. “Robotics and Autonomous Systems”, Vol. 150, 2022, DOI: 10.1016/j.robot.2021.103987.
56. Fikes R., Nilsson N., Strips: A new approach to the application of theorem proving to problem solving. “Artificial intelligence”, Vol. 2, No. 3–4, 1971, 189–208, DOI: 10.1016/0004-3702(71)90010-5.
57. Fitzpatrick P., Metta G., Natale L., Towards long-lived robot genes. “Robotics and Autonomous Systems”, Vol. 56, No. 1, 2008, 29–45, DOI: 10.1016/j.robot.2007.09.014.
58. Gardner M., Mathematical Games: The fantastic combinations of John Conway’s new solitaire game “Life” “Scientific American”, Vol. 223, 1970, 120–123, DOI: 10.1038/scientificamerican1070-120.
59. Gat E., On three-layer architectures. D. Kortenkamp, R. P. Bonnasso, R. Murphy (red.), Artificial Intelligence and Mobile Robots, 195–210. AAAI Press Cambridge, MA, 1998.
60. Gerkey B.P., Vaughan R.T., Støy K., Howard A., Sukhatme G.S., Mataric M.J., Most Valuable Player: A Robot Device Server for Distributed Control. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2001, 1226–1231, DOI: 10.1109/IROS.2001.977150.
61. Ghallab M., Howe A., Knoblock C., Mcdermott D., Ram A., Veloso M., Weld D., Wilkins D., PDDL—The Planning Domain Definition Language, 1998.
62. Gierse G., Niemueller T., Claßen J., Lakemeyer G., Interruptible Task Execution with Resumption in Golog. G. Kaminka, M. Fox, P. Bouquet, E. Hüllermeier, V. Dignum, F. Dignum, F. van Harmelen, (red.), Twenty-Second European Conference on Artificial Intelligence (ECAI), 2016, 1265–1273, Den Haag, The Netherlands, IOS Press, DOI: 10.3233/978-1-61499-672-9-1265.
63. Gordon D., Ant Encounters: Interaction, Networks and Colony Behavior. Primers in Complex Systems. Princeton University Press, 2010.
64. Gregory P., Long D., Fox M., Beck C., Planning modulo theories: Extending the planning paradigm. Proceedings of the International Conference on Automated Planning and Scheduling, Vol. 22, No. 1, 2012, 65–73, DOI: 10.1609/icaps.v22i1.13505.
65. Grossberg S., Conscious Mind, Resonant Brain: How Each Brain Makes a Mind. Oxford University Press, 2021.
66. Guarino N., Oberle D., Staab S., What is an ontology? S. Staab, R. Studer (red.), Handbook on Ontologies, 1–20. Springer-Verlag, Berlin, 2009.
67. Hayward V., Paul R.P., Robot manipulator control under Unix RCCL: A robot control C library. “International Journal of Robotics Research”, Vol. 5, No. 4, 1986, 94–111, DOI: 10.1177/027836498600500407.
68. Hebb D., The Organization of Behavior. Wiley & Sons, New York, 1949.
69. Horsch M., Poole D., An anytime algorithm for decision making under uncertainty. XIV Conference on Uncertainty in Artificial Intelligence, UAI’98, 1998, 246–255, DOI: 10.5555/2074094.2074123.
70. Howard M., Lipner S., The Security Development Lifecycle. Microsoft Press, 2006.
71. Höller D., Behnke G., Bercher P., Biundo S., Fiorino H., Pellier D., Alford R., HDDL: An Extension to PDDL for Expressing Hierarchical Planning Problems. Vol. 34, No. 6, 2020, 9883–9891, DOI: 10.1609/aaai.v34i06.6542.
72. Jesus A., Liefooghe A., Derbel B., Paquete L., Algorithm selection of anytime algorithms. Proceedings of the 2020
Genetic and Evolutionary Computation Conference, 850–858, DOI: 10.1145/3377930.3390185.
73. Jonsson P., Krokhin A., Complexity classification in qualitative temporal constraint reasoning. “Artificial Intelligence”, Vol. 160, No. 1-2, 2004, 35–51, DOI: 10.1016/j.artint.2004.05.010.
74. Kacprzyk J., Rozumowanie w warunkach niepewności. [In:] W. Traczyk (red.), Problemy sztucznej inteligencji, 77–114, Warszawa, 1995. Wiedza i Życie.
75. Kaelbling L., Littman M., Cassandra A., Planning and acting in partially observable stochastic domains. “Artificial Intelligence”, Vol. 101, No. 1-2, 1998, 99–134, DOI: 10.1016/S0004-3702(98)00023-X.
76. Kaelbling L., Lozano-Perez T., Integrated task and motion planning in belief space. “The International Journal of Robotics Research”, Vol. 32, No. 9-10, 2013, 1194–1227, DOI: 10.1177/0278364913484072.
77. Kaisler S., Software Paradigms. Wiley Interscience, Hoboken, 2005.
78. Kaneko T., Threat analysis using STRIDE with STAMP/ STPA. Proceedings of the International Workshop on Evidence-based Security and Privacy in the Wild and the 1st International Workshop on Machine Learning Systems Engineering, wolumen CEUR-2809, Nara, Japan, 2018.
79. Kasprzak W., Rozpoznawanie obrazów i sygnałów mowy Oficyna Wydawnicza Politechniki Warszawskiej, 2009.
80. Kavraki L., LaValle S., The handbook of robotics Motion Planning, 139–161. Springer, 2016.
81. Kiekbusch L., Armbrust C., Berns K., Formal verification of behaviour networks including sensor failures. “Robotics and Autonomous Systems”, Vol. 74, 2015, 331–339, DOI: 10.1016/j.robot.2015.08.002.
82. Kiekbusch L., Armbrust C., Berns K., Formal verification of behaviour networks including hardware failures. Vol. 302, 2016, 571–1582, DOI: 10.1007/978-3-319-08338-4_113.
83. Kortenkamp D., Simmons R., Brugali D., Robotic systems architectures and programming. B. Siciliano, O. Khatib (red.), Springer Handbook of Robotics, 2nd Edition, 283–306, Springer, 2016, DOI: 10.1007/978-3-319-32552-1_12.
84. Lacava G., Marotta A., Martinelli F., Saracino A., La Marra A., Gil-Uriarte E., Mayoral-Vilches V., Cybsersecurity issues in robotics. “Journal of Wireless Mobile Networks, Ubiquitous Computing, and Dependable Applications”, Vol. 12, No. 3, 2021, 1–28, DOI: 10.22667/JOWUA.2021.09.30.001.
85. Langdon W., Poli R., McPhee N., Koza J., Genetic programming: An introduction and tutorial, with a survey of techniques and applications. J. Fulcher, L. Jain (red.), Computational Intelligence: A Compendium, Vol. 115, 2008, 927–1028, Berlin, Heidelberg, DOI: 10.1007/978-3-540-78293-3_22.
86. Langton C., Self-reproduction in cellular automata. “Physica D: Nonlinear Phenomena”, Vol. 10, No. 1, 1984, 135–144, DOI: 10.1016/0167-2789(84)90256-2.
87. Langton C., Artificial Life : An Overview. MIT Press, Cambridge Mass., 1995.
88. LaValle S., Planning Algorithms. Cambridge University Press, 2006.
89. Lebedev M., Nicolelis M., Brain-machine interfaces: From basic science to neuroprostheses and neurorehabilitation. “Physiological Reviews”, Vol. 97, No. 2, 2017, 767–837, DOI: 10.1152/physrev.00027.2016.
90. LeCun Y., A path towards autonomous machine intelligence. https://openreview.net/pdf?id=BZ5a1rkVsf, 2022.
91. Levine S., Pastor P.S., Krizhevsky A., Ibarz J., Quillen D., Learning hand-eye coordination for robotic grasping with deep learning and large-scale data collection. “Internatio-
nal Journal of Robotics Research”, Vol. 37, No. 4–5, 2018, 421–436, DOI: 10.1177/0278364917710318.
92. Litman T., Autonomous vehicle implementation predictions implications for transport planning. Victoria Transport Policy Institute, November 2018.
93. Luger G.F., Stubblefield W.A., Artificial Intelligence and the Design of Expert Systems. Benjamin-Cummings, Redwood, 1989.
94. Lyons D.M., Prerational intelligence, Vol. 2: Adaptive behavior and intelligent systems without symbols and logic serii Studies in cognitive systems, [In:] A Schema-Theory Approach to Specifying and Analysing the Behavior of Robotic Systems, 51–70. Kluwer Academic, 2001.
95. Lyons D.M., Arbib M.A., A formal model of computation for sensory-based robotics. “IEEE Transactions on Robotics and Automation”, Vol. 5, No. 3, 1989, 280–293, DOI: 10.1109/70.34764.
96. Matarić M.J., Michaud F., The Handbook of Robotics, Behavior-Based Systems, 2008, 891– 909. Springer, DOI: 10.1007/978-3-540-30301-5_39.
97. Matarić M.J., Issues and approaches in the design of collective autonomous agents. “Robotics and Autonomous Systems”, Vol. 16, No. 2-4, 1995, 321–331, DOI: 10.1016/0921-8890(95)00053-4.
98. Matuszek C., Cabral J., Witbrock M., DeOliveira J., An Introduction to the Syntax and Content of Cyc. Proc. 2006 AAAI Spring Symposium on Formalizing and Compiling Background Knowledge and Its Applications to Knowledge Representation and Question Answering, 44–49, Stanford, California, March 2006.
99. Mazurczyk W., Rzeszutko E., Security–a perpetual war: Lessons from nature. “IEEE IT Professional”, Vol. 17, 2015, 16–22, DOI: 10.1109/MITP.2015.14.
100. Mead N., Hough E., Stehney T., Security quality requirements engineering (SQUARE). Raport instytutowy CMU/ SEI-2005-TR-009, Carnegie Mellon University, Software Engineering Institute, November 2005.
101. Mead N., Shull F., Vemuru K., Villadsen O., A hybrid threat modeling method. Raport instytutowy CMU/SEI2018-TN-002, Carnegie Mellon University, Software Engineering Institute, March 2018.
102. Metta G., Fitzpatrick P., Natale L., YARP: Yet Another Robot Platform. “International Journal on Advanced Robotics Systems”, Vol. 3, No. 1, 2006, 43–48, DOI: 10.5772/5761.
103. Munson G., The rise and fall of Unimation Inc. – story of robotics innovation & triumph that changed the world! “Robot Magazine”, December 2010.
104. Müller A., Kirsch A., Beetz M., Transformational planning for everyday activity. 17th International Conference on Automated Planning and Scheduling, ICAPS, 248–255, Providence, Rhode Island, September 22–26 2007.
105. Nalepa G., From Good Robots to Useful Intelligent Agents [In:] K. Tchoń, W. Gasparski, (red.), A Treatise on Good Robots, 159–170. Transaction Publishers, 2014.
106. Nesnas I., The CLARAty project: Coping with hardware and software heterogenity. [In:] D. Brugali (red.), Software Engineering for Experimental Robotics, 31–70. Springer–Verlag, 2007.
107. Nilsson N., Shakey the robot. SRI International Technical note 323, 1984.
108. Nordmann A., Hochgeschwender N., Wigand D., Wrede S., A survey on domain-specific modeling and languages in robotics. “Journal of Software Engineering for Robotics”, Vol. 7, 2016, 75–99.
109. Nwana H., Software agents: an overview. “The Knowledge Engineering Review”, Vol. 11, No. 3, 1996, 205–244, DOI: 10.1017/S026988890000789X.
110. Nwana H.S., Ndumu D.T., A Brief Introduction to Software Agent Technology, 29–47. Springer Berlin Heidelberg, Berlin, Heidelberg, 1998.
111. Padgham L., Winikoff M., Developing Intelligent Agent Systems: A Practical Guide. John Wiley & Sons, 2004.
112. Pan Z., Polden J., Larkin N., Duin S.V., Norrish J., Recent progress on programming methods for industrial robots “Robotics and Computer-Integrated Manufacturing”, Vol. 28, No. 2, 2012, 87–94, DOI: 10.1016/j.rcim.2011.08.004.
113. Parker L., Rus D., Sukhatme G., The handbook of robotics. Multiple Mobile Robot Systems, 1335–1380. Springer, 2016.
114. Parker L.E. Multiple mobile robot systems. [In:] O. Khatib, B. Siciliano (red.), Springer Handbook of Robotics, 921–941. Springer, June 2008.
115. Pałka P., Wieloagentowe systemy decyzyjne. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2019.
116. Pedersen M.R., Nalpantidis L., Andersen R.S., Schou C., Bøgh S., Krüger V., Madsen O., Robot skills for manufacturing: From concept to industrial deployment. “Robotics and Computer-Integrated Manufacturing”, Vol. 37, 2016, 282–291, DOI: 10.1016/j.rcim.2015.04.002.
117. Pilone D., Pitman N., UML 2.0 in a Nutshell. O’Reilly, 2005.
118. Pinto A., Pedrini H., Krumdick M., Becker B., Czajka A., Bowyer K., Rocha A., Counteracting presentation attacks in face, fingerprint, and iris recognition. [In:] M. Vatsa, R. Singh, A. Majumdar (red.), Deep Learning in Biometrics. CRC Press, 2018.
119. Pretz K., Don’t Trust Deep Learning, Says Brain Modeler – Stephen Grossberg maintains his approach to intelligence is better. “IEEE Spectrum”, 54–55, June 2022.
120. Quigley M., Gerkey B., Conley K., Faust J., Foote T., Leibs J., Berger E., Wheeler R., Ng A., ROS: an opensource Robot Operating System. Proceedings of the OpenSource Software Workshop at the International Conference on Robotics and Automation (ICRA), 2009.
121. Rubenstein M., Cornejo A., Nagpal R., Programmable self-assembly in a thousand-robot swarm. “Science”, Vol. 345, No. 6198, 2014, 795–799, DOI: 10.1126/science.1254295.
122. Russell S., Norvig P., Artificial Intelligence: A Modern Approach. Pearson Education, Upper Saddle River, N.J., 2003.
123. Rutkowski L., Metody i techniki sztucznej inteligencji Wydawnictwo Naukowe PWN, Warszawa, 2005.
124. Rzeszutko E., Mazurczyk W., Insights from nature for cybersecurity. “Health security”, Vol. 13, No. 2, 2014, 82–87, DOI: 10.1089/hs.2014.0087.
125. Sacha K., Inżynieria oprogramowania. Wydawnictwo Naukowe PWN, Warszawa, 2010.
126. Schneier B., Attack trees. “Dr. Dobb’s Journal”, December 1999.
127. Shevchenko N., Threat modeling: 12 available methods Raport instytutowy, Carnegie Mellon University, Software Engineering Institute, 2018
128. Shevchenko N., Chick T., O’Riordan P., Scanlon T., Woody C., Threat modeling: A summary of available methods. Raport instytutowy, Carnegie Mellon University, Software Engineering Institute, July 2018.
129. Shoham Y., Agent-oriented programming. “Artificial Intelligence”, Vol. 60, No. 1, 1993, 51–92, DOI: 10.1016/0004-3702(93)90034-9.
130. Shostack A., Experiences Threat Modeling at Microsoft MODSEC@MoDELS, 2008.
131. Shull F., Evaluation of threat modeling methodologies. http://resources.sei.cmu.edu/library/asset-view.cfm?assetID=474197, 2016.
132. Siciliano B., Sciavicco L., Villani L., Oriolo G., Robotics: Modelling, Planning and Control. Advanced Textbooks in Control and Signal Processing. Springer, London, 2009.
133. Silver D., Huang A., Maddison C., Guez A., Sifre L., Driessche G., Schrittwieser J., Antonoglou I., Panneershelvam V., Lanctot M., Dieleman S., Grewe D., Nham J., Kalchbrenner N., Sutskever I., Lillicrap T., Leach M., Kavukcuoglu K., Graepel T., Hassabis D., Mastering the game of go with deep neural networks and tree search. “Nature”, Vol. 529, 2016, 484–489.
134. Simoens P., Dragone M., Saffiotti A., The internet of robotic things: A review of concept, added value and applications. “International Journal of Advanced Robotic Systems”, Vol. 15, No. 1, 2018, DOI: 10.1177/1729881418759424.
135. Staniak M., Zieliński C., Structures of visual servos. “Robotics and Autonomous Systems”, Vol. 58, No. 8, 2010, 940–954, DOI: 10.1016/j.robot.2010.04.004.
136. Stenmark M., Haage M., Topp E.A., Simplified programming of re-usable skills on a safe industrial robot – prototype and evaluation. Proceedings of the IEEE/ACM Conference on Human-Robot Interaction (HRI), Vienna, Austria, March, 6–9 2017, DOI: 10.1145/2909824.3020227.
137. Taleby Ahvanooey M., Li Q., Wu M., Wang S., A survey of genetic programming and its applications. KSII Transactions on Internet and Information Systems, Vol. 13, No. 4, 2019, 1765–1793, DOI: 10.3837/tiis.2019.04.002.
138. Tang F., Parker L., A Complete Methodology for Generating Multi-Robot Task Solutions using ASyMTRe-D and Market-Based Task Allocation., 2007 IEEE International Conference on Robotics and Automation, 3351–3358, DOI: 10.1109/ROBOT.2007.363990.
139. Tenorth M., Beetz M., KnowRob: a knowledge processing infrastructure for cognition-enabled robots. “International Journal of Robotics Research”, Vol. 32, No. 52013, 566–590, DOI: 10.1177/0278364913481635.
140. Tenorth M., Perzylo A.C., Lafrenz R., Beetz M., The RoboEarth language: Representing and exchanging knowledge about actions, objects, and environments. IEEE International Conference on Robotics and Automation. 2012, DOI: 10.1109/ICRA.2012.6224812.
141. Tenorth M., Perzylo A.C., Lafrenz R., Beetz M., Representation and exchange of knowledge about actions, objects, and environments in the RoboEarth framework “IEEE Transactions on Automation Science and Engineering”, Vol. 10, No. 3, 2013, 643–651, DOI: 10.1109/TASE.2013.2244883.
142. Traczyk W., Metody wnioskowania w systemach ekspertowych. [In:] W. Traczyk (red.), Problemy sztucznej inteligencji, 53–75, Warszawa, 1995. Wiedza i Życie.
143. Turing A., Computing machinery and intelligence “Mind”, Vol. 59, No. 236, 1950, 433–460, DOI: 10.1093/mind/LIX.236.433.
144. Vaughan R.T., Gerkey B.P., Reusable robot software and the Player/Stage project. [In:] D. Brugali (red.), Software Engineering for Experimental Robotics, Vol. 30 serii Springer Tracts in Advanced Robotics, 267–289, Springer, 2007, DOI: 10.1007/978-3-540-68951-5_16.
145. Čapek K., Four Plays: R.U.R., The Insect Play, The Makropulos Case, The White Plague. Methuen Publishing Ltd., 1999.
146. von Neumann J., The general and logical theory of automata. Cerebral Mechanisms in Behavior. The Hixon Symposium, 1–41. John Wiley & Sons, New York, 1951.
147. Wooldridge M., Multiagent systems. Intelligent Agents, 27–77. MIT Press, Cambridge, MA, USA, 1999.
148. Xia X., Pan X., Li N., He X., Ma L., Zhang X., Ding N., GAN-based anomaly detection: A review. “Neurocomputing”, Vol. 493, 2022, 497–535, DOI: 10.1016/j.neucom.2021.12.093.
149. Yaacoub J.-P., Noura H., Salman O., Chehab A., Robotics cyber security: Vulnerabilities, attacks, countermeasures, and recommendations. “International Journal of Information Security”, Vol. 21, No. 1, 2022, 115—158, DOI: 10.1007/s10207-021-00545-8.
150. Yim M., Shen W.-M., Salemi B., Rus D., Moll M., Lipson H., Klavins E., Chirikjian G.S., Modular self-reconfigurable robot systems [grand challenges of robotics]. “IEEE Robotics & Automation Magazine”, Vol. 14, No. 1, 2007, 43–52, DOI: 10.1109/MRA.2007.339623.
151. Zhang X., Zhu Y., Ding Y., Zhu Y., Stone P., Zhang S., Visually grounded task and motion planning for mobile manipulation. IEEE International Conference on Robotics and Automation (ICRA), May 23–27 2022.
152. Zheng N., Mazumder P., Fundamentals and learning of artificial neural networks. [In:] Learning in EnergyEfficient Neuromorphic Computing: Algorithm and Architecture Co-Design, 11–60, 2020.
153. Zielińska E., Mazurczyk W., Szczypiorski K., Trends in steganography. “Communications of the ACM”, Vol. 57, No. 3, 2014, 86–95, DOI: 10.1145/2566590.2566610.
154. Zieliński C., TORBOL: An object level robot programming language. “Mechatronics”, Vol. 1, No. 4, 1991, 469–485, DOI: 10.1016/0957-4158(91)90032-6.
155. Zieliński C., Description of semantics of robot programming languages. “Mechatronics”, Vol. 2, No. 2, 1992, 171–198, DOI: 10.1016/0957-4158(92)90030-R.
156. Zieliński C., The MRROC++ system. Proceedings of the First Workshop on Robot Motion and Control, RoMoCo ’99, 147–152, DOI: 10.1109/ROMOCO.1999.791067.
157. Zieliński C., A Quasi-Formal Approach to Structuring Multi-Robot System Controllers. Second International Workshop on Robot Motion and Control, RoMoCo’01, 121–128, DOI: 10.1109/ROMOCO.2001.973442.
158. Zieliński C., Formal approach to the design of robot programming frameworks: the behavioural control case “Bulletin of the Polish Academy of Sciences – Technical Sciences”, Vol. 53, No. 1, 2005, 57–67.
159. Zieliński C., Systematic approach to the design of robot programming frameworks. Proceedings of the 11th IEEE International Conference on Methods and Models in Automation and Robotics (on CD), 639–646. Technical University of Szczecin, 2005.
160. Zieliński C., Transition-function based approach to structuring robot control software. [In:] K. Kozłowski (red.), Robot Motion and Control, Vol. 335 serii Lecture Notes in Control and Information Sciences, 2006, 265–286. Springer-Verlag.
161. Zieliński C., Koboty – w przemyśle i laboratoriach badawczych. „Automatyka”, Nr 12, 2020, 28–40, 2020.
162. Zieliński C., Robotic System Design Methodology Utilising Embodied Agents, Vol. 296 serii Advances in Intelligent Systems and Computing, 523–561. Springer, 2021.
163. Zieliński C., Kornuta T., Stefańczyk M., Szynkiewicz W., Trojanek P., Walęcki M., Języki programowania robotów przemysłowych. „Pomiary Automatyka Robotyka”, Vol. 16, Nr 11, 2012, 10–19.
164. Zieliński C., Stefańczyk M., Kornuta T., Figat M., Dudek W., Szynkiewicz W., Kasprzak W., Figat J., Szlenk M., Winiarski T., Banachowicz K., Zielińska T., Tsardoulias E.G., Symeonidis A.L., Psomopoulos F.E., Kintsakis A.M., Mitkas P.A., Thallas A., Reppou S.E., Karagiannis G.T., Panayiotou K., Prunet V., Serrano M., Merlet J.-P.,
Arampatzis S., Giokas A., Penteridis L., Trochidis I., Daney D., Iturburu M., Variable structure robot control systems: The RAPP approach. “Robotics and Autonomous Systems”, Vol. 94, 2017, 226–244, DOI: 10.1016/j. robot.2017.05.002.
165. Zieliński C., Kornuta T., Diagnostic requirements in multi-robot systems. [In:] J. Korbicz, M. Kowal (red.), Intelligent Systems in Technical and Medical Diagnostics, Vol. 230 serii Advances in Intelligent Systems and Computing, 345–356. Springer, 2014.
166. Zieliński C., Kornuta T., Programowe struktury ramowe do tworzenia sterowników robotów, „Pomiary Automatyka Robotyka”, R. 19, Nr 1, 2015, 5-14, DOI: 10.14313/PAR_215/5.
167. Zieliński C., Szynkiewicz W., Mianowski K., Nazarczuk K., Mechatronic design of open-structure multirobot controllers. “Mechatronics”, Vol. 11, No. 8, 2001, 987–1000, DOI: 10.1016/S0957-4158(00)00038-6.
168. Zieliński C., Trojanek P., Stigmergic cooperation of autonomous robots. “Journal of Mechanism and Machine Theory”, Vol. 44, No. 4, 2009, 656–670, DOI: 10.1016/j.mechmachtheory.2008.08.012.
In order to assess the impact of robots on society, it is necessary to carefully analyze the state-of-the-art, and in particular the fundamental issues that have yet to be resolved, however having significant impact on the potential societal changes resulting from the development of robotics. The aforementioned impact depends on the level of intelligence of robots, so this aspect dominates in the presented analysis. The presentation has been divided into three parts: 1) analysis of technical factors affecting the intelligence and security of robots, 2) analysis of current capabilities of robots, 3) analysis of diverse predictions of how robotics will evolve, and thus the attitudes towards the influence of the result of this development on society. This part of the paper is devoted to the first of the above mentioned three issues.
Keywords
ORCID: 0000-0001-7604-8834
This study provides a new class of controllers for freeflying space manipulators subject to unknown undesirable disturbing forces exerted on the end-effector. Based on suitably defined taskspace non-singular terminal sliding manifold and the Lyapunov stability theory, we derive a class of estimated extended transposed Jacobian controllers which seem to be effective in counteracting the unstructured disturbing forces. The numerical computations which are carried out for a space manipulator consisting of a spacecraft propelled by eight thrusters and holonomic manipulator of three revolute kinematic pairs, illustrate the performance of the proposed controller.
1. Introduction
Space manipulators are extensively applied in recent years in space operations such as an on-orbit high-tolerance assembly tasks, maintenance, inspection and precise capturing and transferring space debris [10]. Space manipulators are complex and highly non-linear dynamic systems composed of a spacecraft (platform or satellite) on which holonomic robotic manipulator is mounted. The spacecraft is actuated by thrusters or other propellers and the links of holonomic manipulator are usually driven by electric DC motors. There are two modes of operations of space manipulators: free-flying and free-floating. In the case of free-flying dynamic systems, a spacecraft’s controller is active. On the other hand, in the free-floating operational mode, a platform controller is turned off. Due to high potential costs of a space mission, space manipulators have to be robust against actuator failures. This means that such dynamic systems are, by nature, over-determined (number of actuators is greater than the number of coordinates uniquely describing a configuration of the whole space robotic system). It is worth noting that the space operations requiring extremely high accuracy still make a great challenge for space manipulators due to various uncertainties of, e.g., parts or sub-parts to be assembled, end-effector tasks, etc., which are rigidly gripped and transferred by the end-effector along a desired trajectory mostly expressed in task (Cartesian) coordinates. In practice, for example, either a known or unknown
sub-part (by its geometry and mass) introduces structural and/or parametric uncertainties in both kinematic and dynamic equations of the space manipulator. As a result, transferred sub-parts generate undesirable external disturbances (e.g., Coriolis and/or centrifugal forces) acting on the end-effector which may result in large tracking errors. When accomplishing the complicated assembly process, the space manipulator (or at least a holonomic manipulator) should attain possibly maximal manipulability measure [25]. Otherwise, a complex and time-consuming reconfiguration of the whole space manipulator has to be carried out to make it possible accomplishment of assembly operations by the end-effector. The control of space manipulators is usually decomposed into two stages. In the first stage, the space manipulator has to attain a close vicinity of a target using the thrusters (the rendezvous). In the second one, the target must be captured in a close range using only the holonomic manipulator actuators (the docking). Most of the works devoted to control process in Cartesian task coordinates concern an on-orbit docking maneuvers (e.g., with tumbling target) [17–19, 23] for which, the thrusters are turned off what implies a non-holonomic movement. In [17, 19, 23], the authors have applied a Jacobian transposed technique with full knowledge of kinematics and dynamics to steer space manipulator to a close target. An off-line control based on endogenous space approach and accurate knowledge of both kinematic nd dynamic equations has been offered in [18]. Let us note that control algorithms proposed in [17–19, 23] may lead, e.g., to configurations with small manipulability measure what prevents accomplishment of complicated assembly operations. In order to increase the mobility of in-orbit robotic systems, both thrusters of spacecraft and actuators of holonomic manipulator are assumed to be active (in works [11–13, 15, 16, 24]) in controlling the space manipulator during the trajectory tracking tasks. Unfortunately, a vast majority of control algorithms is expressed in the space of generalized (joint) coordinates [11–13, 24]. Due to the fact that a huge amount of trajectory tracking tasks is expressed in Cartesian (task) coordinates, the algorithms proposed in works [11–13, 24] are
not suitable for accomplishment of such tasks. Only a very few works has been reported which tackle the problem of trajectory tracking control of fully actuated space manipulators in task coordinates. In [15, 16], a modified transpose Jacobian control algorithm has been presented, which employs stored data of the control command in the previous time step as a learning tool to yield improved performance. Nevertheless, the control laws from [15, 16] are only stable and require the full knowledge of kinematic equations.
In this work, a new class of controllers for space manipulator subject to undesirable forces exerted on the end-effector, is introduced. Due to unstructured nature of external disturbance forces, kinematics and dynamics of the mechanism is assumed herein to be uncertain. In order to tackle the trajectory tracking control problem subject to unstructured, a new non-singular terminal sliding manifold (TSM) is proposed. Based on the TSM introduced, we propose a new robust controller (incorporating a transposed extended estimated Jacobian matrix) which tackles unknown external forces and uncertainties of kinematic as well as dynamic equations. By fulfilment of a reasonable assumption regarding the Jacobian matrix, the proposed control scheme is shown to be finite-time stable. The remainder of the paper is organized as follows. Section 2 introduces kinematic and dynamic equations of the space manipulator including external forces acting on the end-effector. Section 3 sets up a class of robust controllers solving the trajectory tracking control problem in a finite-time. Section 4 presents computer example of the end-effector trajectory tracking by a space manipulator which is subject to external disturbance forces. Finally, some concluding remarks are drawn in Section 5.
eral, non-linear with respect to q) and k is the dimension of the task space. On account of the fact that space manipulator becomes mostly in practice a redundant mechanism with respect to a task to be accomplished, the following inequality holds true: . nk ≥ Consequently, there exists a possibility to augment vector of the end-effector coordinates pe by additional task coordinates pa (specified by the user) of the following general form [20]: () , aa pfq = (4)
where : nn-k fa → is at least twice continuously differentiable mapping with respect to q. From the practical point of view, redundant degrees of freedom of the mechanism may either satisfy additional task requirements (constraints) [20, 21] or optimize performance criteria reflecting the kinematic characteristics of the mobile manipulator [7]. Concatenating fe(q) with fa(q), one obtains generalized kinematic-differential mappings which relate q with augmented task coordinates e a
p p p ⎛⎞ = ⎜⎟ ⎝⎠ () , pfq = () , pJqq = (5) where e a
f f f ⎛⎞ = ⎜⎟ ⎝⎠ and f J q ∂ = ∂ is the n × n extended Jacobian matrix. The task accomplished by the space manipulator is to track both desired end-effector trajectory () , ek d pt ∈ [ ) 0, t ∈∞ and auxiliary (user specified) trajectory () an-k d pt ∈ Introducing the task tracking error e = f(q ) − pd(t), where , e d d a d
The control scheme designated in the next section is applicable to holonomic mechanical systems comprising both non-redundant and redundant space manipulators considered here, which are described, in general, by the following dynamic equations, expressed in generalized coordinates [14, 19]: () ()() ,,, MqqCqqqBvdqq +=+ (1)
where ()T 1 ,..., n n qqq=∈ denotes the space manipulator configuration including location and orientation of spacecraft with respect to a global coordinate system OX1X2X3 and joint coordinates of the holonomic manipulator; M(q) is the n × n positive definite inertia matrix; () , Cqqq denotes the n–dimensional vector representing centrifugal and Coriolis forces; () , dqq describes the n–dimensional external disturbance signal; B(q) stands for the n × m non-singular control matrix; v is the m–dimensional vector of steering signals (forces generated by thrusters of spacecraft and torques provided by actuators of holonomic manipulator); n denotes the dimension of the space of generalized coordinates and m stands for the number of controls. By assumption, we have mn ≥ (safety and reliability of the space mission when a thruster is damaged). Without loss of generality, d is assumed to be upper estimated as follows
(),,,dtqq α ≤ (2)
where a( ) is the time dependent, non-negative locally bounded Lebesgue measurable function. Location and orientation of the end-effector with respect to the global coordinate system OX1X2X3 is described by the kinematic equation
() , ee pfq = (3)
where k pe ∈ denotes the coordinates of the end-effector; : nk fe → represents k-dimensional mapping (in gen-
p p p ⎛⎞ = ⎜⎟ ⎝⎠ the finite time control problem may be formally expressed by means of the following equations: () lim0, tT et → = () lim0, tT et → = (6) where 0 T ≤ denotes a finite time of convergence of f(q) to pd and ()() 0 etet== for tT ≥ The aim is to determine control u, for which, the corresponding trajectory q = q(t) as being the solution of differential equations (1), accomplishes the space manipulator task (6).
Before we propose the control law solving the kinematic task (6), some useful concepts are first introduced. Let () ˆˆ JJq = and () ˆˆ BBq = denote estimates of the uncertain generalized extended Jacobian matrix J(q) and full rank control matrix B(q) given by formulas (5), (1). In further considerations, ˆ J and full rank matrix ˆ B are assumed to fulfil the following inequalities: () 1T min ˆˆ 0, aJMJ λ <≤ (7) and 12 0, bba≤+< (8) where
# B denotes the Moore-Penrose pseudo-inverse matrix of B It is worth noting that inequality (8) can be in practice fulfilled by selection of measurement devices, which provide both kinematic and dynamic parameters of space manipulator with sufficient accuracy. Let us also observe that inequality (7) means non-singularity of extended estimated Jacobian matrix ()Jq Nevertheless, relations (7)–(8) are only needed in the proof of the finite-time stability of the controller to be designated. The estimate of constant a from (7) can be determined based both on the numerical solution with respect to q of the following system of algebraic equations: f(q) = p d(t) and the knowledge of the components of the nominal kinematic and dynamic equations J(q) and M(q). Motivated partially by the computed torque methodology [8], we propose a new extended estimated transposed Jacobian control law of the following form: ˆˆ#T , vBJu = (9) where n u ∈ is a new control to be determined. Applying (9) as a non-linear control law, inserting it to the right-hand side of (1) and determining q gives
1#T11 ˆˆ qMBBJuMCqMd =−+ (10)
Let us also twice differentiate e with respect to time thus obtaining (11)
In order to design a controller solving the space manipulator task (6), we introduce the following non-singular integral sliding vector variable n s ∈ defined in task coordinates as follows ()() ( ) 2 1 01 0 0, t seeeed α α =−++ωωτ ∫ (12) where 1 1 2 ; a a α = a1, a2 are positive odd numbers, a1 < a2 < 2a1, 1 2 1
2 ; 1 α α α = + w0, w1 stand for controller gains. The odd variables a1 and a2 ensure the finite-time convergence of the task errors () , ee to the origin ()() ,0,0.ee = The time derivative of (12) results after simple calculation and taking into account (11) in the following expression:
1#T ˆˆ , sJMBBJu=+ (13) where
In further analysis, an upper estimate of will be needed. It takes the form given below: , ≤ (14)
where ( ) () 2 1 2 01 , wqeepd α α αωω =+++− w denotes a construction parameter of the space manipulator. In what follows, we provide a useful lemma [8].
If s(t) = 0 for 0 tT≥≥ then task errors () , ee of (6) stably converge to the origin in a finite time.
Based on (7)–(8), (12)–(14), we propose the following simple control law for the space manipulator solving the kinematic task (6):
cs cs as utqs ⎧ −+≠ ⎪ = ⎨ ⎪ ⎩ (15)
() () 0 for0 ,, 0otherwise,
where c, c0 denote controller gains to be specified further on. Applying the Lyapunov stability theory, we now derive the following result.
Theorem 1. If w0, w1, c0 > 0 and 12 1 c c bb a
′ = + with c ¢ > 1 then
control scheme (9), (15) guarantees stable convergence in a finite time of the task tracking errors () , ee to the origin ()() ,0,0.ee =
Proof. Consider a Lyapunov function candidate 1 ,. 2 Vss = (16)
Computing the time derivative of (16) and replacing v by (9) results in the following expression: () () 1T1T 1#T
VsJMJusJJMJu sJMBBBJus
=+−+ −+ (17)
ˆˆˆˆ ,, ˆˆˆ ,,.
Replacing u from (17) by (15) and then using (7)–(8), one obtains the inequality () 12 0 cbcb Vsccs aa ⎛⎞ ≤+−+++ ⎜⎟ ⎝⎠ (18)
On account of (14) and using assumption regarding c0 as well as 12 1 c c bb a
′ = + with c ¢ > 1 from Theorem 1, we have () () 12 0011. cbcb Vsccccs aa ⎛⎞ ≤+−+++≤−− ′ ⎜⎟ ⎝⎠ (19)
Based on (19) and (12), we conclude that TSM manifold s = 0 is stably attainable in a finite time. Finally, from Lemma 1, it follows that origin ()() ,0,0ee = can also be attained in a finite time 0. T ≥
Two remarks may be made regarding the control law (9), (15) and Theorem 1.
Let us observe that term in controller (15) will cause undesirable chattering effect in a small neighbourhood of s = 0. In order to eliminate the chattering, a known boundary layer technique of control law may now be utilized as follows () () () 0 0
cs cs as utqs cs c a
for ,,, otherwise,
ε ε ε
⎧ ℘ ⎪ ⎪ = ⎨ ⎪ −+ ⎪ ⎩ (20)
where ε is a user-specified arbitrarily small positive real number (size of boundary layer). Let () , eet ε = and be the solutions of control problem (1), (9), (12) and (20). Although boundary layer control is a well known technique, its desired property of uniform ultimate boundedness has been established for linear sliding variables s, e, e and diagonal actuation matrices of non-zero diagonal components (or of constant signs) in [22] as well as for dynamic systems fulfilling
the so called matching conditions with known actuation matrices in work, e.g., [2], respectively. On the other hand, expression (12) is a non-linear differential equation with respect to and (),. eet ε = Moreover, B is uncertain non-diagonal actuation matrix. Consequently, the classic results regarding the ultimate uniform boundedness of and () , eet ε = may not, in general, apply in our case. Hence, based on the results from work by [8], we may conclude that task errors (),, eet ε = () , eet ε = converge uniformly with respect to time t (t ³T) to the origin as 0, ε → i.e. (),0 et ε → as 0. ε →
Let us note that expressions (9), (15) present a transpose Jacobian controller. In such a context, the use of the transpose of the Jacobian matrix to robotic manipulators in [3, 4, 16] is a well-known technique.
However, works [3, 4, 16] present stability analysis for the set-point control problems. On the other hand, Theorem 1 provides stability analysis for the trajectory tracking of the space manipulator whose both kinematic and dynamic equations are uncertain as well as disturbances acting on the mechanism are unknown. In such a context, it is worth noting the fact that authors from works [5, 6] have also shown finite-time convergence of their controller using however the inverse of the Jacobian matrix.
In each of the four corners of the spacecraft, there are two thrusters that propel it. Moreover, the holonomic manipulator is actuated by three DC motors which generate three generalized torques in the joints of the kinematic pairs. Hence, the mechanism from Fig. 1 generates m = 11 steering signals. The space manipulator is assumed to operate in a three dimensional task space (k = 3). Hence, it becomes redundant mechanism with
k = 3 redundant degrees of freedom. In the numerical computations, SI units are used. The nominal values of both kinematic and dynamic parameters of the space manipulator have been taken from work [1]. The nominal values of link lengths of the holonomic manipulator are equal to l1 = 0 449 [m], l2 = 0 449 [m] and l3 = 0 3103 [m]. The coordinates (p1, p2) of the manipulator mounting point equal (p1, p2) = (0 377 [m], −0 001 [m]).
In this section, we illustrate the performance of the proposed robust controller (9), (20) using the data of the planar space manipulator constructed in the Space Research Centre of the Polish Academy of Sciences [1] and schematically depicted in Fig. 1. This mechanism consists of a freeflying spacecraft
Fig. 1. A kinematic scheme of the space manipulator with force F acting on the end-effector Rys. 1. Schemat kinematyczny manipulatora kosmicznego z siłą F działającą na koniec efektora whose posture is described by two position variables x1,c, x2,c and orientation angle q with respect to the global coordinate system OX1X2. The planar holonomic manipulator (of three revolute kinematic pairs of the V-th order) whose configuration is described by the three joint angles y1, y2 and y3, respectively is rigidly attached to the spacecraft at the point (p1, p2) – see Fig. 1. Consequently, vector of generalized coordinates q of the space manipulator from Fig. 1 equals q = (x1,c, x2,c, q, y1, y2, y3)T with n = 6.
Distance w from the spacecraft geometry centre to each of corner is equal to w = 0.2 [m]. The dynamic parameters take the following nominal values: spacecraft mass m0 = 58 7 [kg], masses of the first, second and third links of the holonomic manipulator equal m1 = 2 82 [kg], m2 = 2 82 [kg] and m3 = 4 64 [kg], respectively; spacecraft inertia I0 = 2 42 [kg m2], links inertias are equal to I1 = 0 06 [kg m2], I2 = 0 06 [kg m2] and I3 = 0 05 [kg m2], respectively. The kinematic equations of the space manipulator from Fig. 1 take the following form: () ,1 ,2 ,3 1,12123 2,12123 123
f pfqf f xpcpslclclc xpspclslsls yyy
e eee e c c
⎛⎞ ⎜⎟ === ⎜⎟ ⎜⎟ ⎝⎠ +−+++ ⎛⎞ ⎜⎟ +++++ ⎜⎟ ⎜⎟ +++ ⎝⎠
θθθθθ θθθθθ θ
123 123,
(21) where c q = cos( q ); s q = sin( q ); () 1 cos; i j j ciy θθ=+ ∑ () 1 sin; i j j siy θθ = =+ ∑ i = 1, …, n and n = 3, respectively. Due to inequality n − k = 3 > 0, we can augment vector pe by additional coordinates 3 pa ∈ of the geometric centre of spacecraft and its orientation, as follows () 1, 2,
c aac
x pfqx θ
⎛⎞ ⎜⎟ == ⎜⎟ ⎜⎟ ⎝⎠ (22)
Disturbing signal d from (1) is assumed in the simulation to take the following form: () () ()
e e
fq q dqF fq q
∂ ⎡⎤ ⎢⎥ ∂ ⎢⎥ = ⎢⎥ ∂ ⎢⎥ ∂ ⎣⎦ (23)
T ,1 ,2 ,
where 2 ∈ denotes external force vector (imitating the action of, e.g., a sub-part to be assembled) exerted on the end-effector. It takes the following form (external forces of a Brownian motion type):
(24) where X(t) ~ N(0, 1); i = 1, 2; 0,25. t ∈ ⎡⎤ ⎣⎦ The actuator matrix B in (1) equals () () 33 3833 , Bspacecraf BqTr θ × ××
⎡⎤ = ⎢⎥ ⎣⎦ (25)
10
2.5
2
1.5
3 ||e|| [m]
1
0.5
0510152025 t[s] 0
0.5
0
1 v 3 [N]
-0.5
0510152025 t[s] -1
Fig. 5. Force v3 of the third thruster for controller (9), (20) Rys. 5. Siła v3 trzeciego pędnika typu cold-gas dla sterownika (9), (20)
0.8
0.6
1 v 1 [N]
0.4
0.2
0510152025 t[s] 0
1 v 2 [N]
0.5
0.4
0.3
0.6 v 4 [N]
0.2
0.1
Fig. 2. The logarithm of the Euclidean norm of task errors e for controller (9), (20) Rys. 2. Logarytm normy Euklidesowej błędow zadaniowych e dla sterownika (9), (20) 0510152025 t[s] 0
Fig. 6. Force v4 of the fourth thruster for controller (9), (20) Rys. 6. Siła v4 czwartego pędnika typu cold-gas dla sterownika (9), (20)
0.5
0
-0.5
0510152025 t[s] -1
Fig. 4. Force v2 of the second thruster for controller (9), (20) Rys. 4. Siła v2 drugiego pędnika typu cold-gas dla sterownika (9), (20)
0.8
0.6
1 v 5 [N]
0.4
0.2
Fig. 3. Force v1 of the first thruster for controller (9), (20) Rys. 3. Siła v1 pierwszego pędnika typu cold-gas dla sterownika (9), (20) 0510152025 t[s] 0
Fig. 7. Force v5 of the fifth thruster for controller (9), (20) Rys. 7. Siła v5 piątego pędnika typu cold-gas dla sterownika (9), (20)
troller (9), (20) are chosen as a = 0 1, b1 = 0 03, b2 = 0 06. In order to simplify numerical computations, rough conservative estimates of wi, i = 1, 2 have been assumed. Hence, coefficients wi were chosen as follows w1 = 1 and w2 = 0 02, respectively. The initial configuration q(0) and velocity () 0 q are assumed to be equal to q(0) = (0, 0, 0, −0.458, 2.19, −0 161)T and ()00, q = respectively. The task realized by controller (9), (20) is to track desired augmented trajectory pd(t) which takes the form
0.5
0
1 v 6 [N]
-0.5
0510152025 t[s] -1
Fig. 8. Force v6 of the sixth thruster for controller (9), (20) Rys. 8. Siła v6 szóstego pędnika typu cold-gas dla sterownika (9), (20)
0.25
0.2
0.15
0.3 v 7 [N]
0.1
0.05
0510152025 t[s] 0
Fig. 9. Force v 7 of the seventh thruster for controller (9), (20) Rys. 9. Siła v7 siódmego pędnika typu cold-gas dla sterownika (9), (20)
0.8
0.6
1 v 10 [Nm]
0.4
0.2
0510152025 t[s] 0
Fig. 12. Torque v10 of the second holonomic manipulator joint for controller (9), (20) Rys. 12. Moment napędowy v10 drugiego ogniwa manipulatora holonomicznego dla sterownika (9), (20)
0.4
0.3
0.2
0.5 v 11 [Nm]
0.1
0510152025 t[s] 0
0.5
1 v 8 [N]
-0.5
0
0510152025 t[s] -1
Fig. 10. Force v8 of the eight thruster for controller (9), (20) Rys. 10. Siła v8 ósmego pędnika typu cold-gas dla sterownika (9), (20)
0.7
0.6
0.5
0.4
0.8 v 9 [Nm]
0.3
0.2
0.1
Fig. 11. Torque v9 of the first holonomic manipulator joint for controller (9), (20)
Rys. 11. Moment napędowy v9 pierwszego ogniwa manipulatora holonomicznego dla sterownika (9), (20)
0.4
0.35
0.45 F x 1 [N]
0.3
0.25
0510152025 t[s] 0.2
Fig. 14. Disturbing external force F x1 acting on the end-effector with controller (9), (20) Rys. 14. Zewnętrzna siła zakłocająca F x1 działająca na koniec efektora dla sterownika (9), (20)
0.52
0.5
0.48
0.54 F x 2 [N]
0.46
0.44
0.42
Fig. 13. Torque v11 of the third holonomic manipulator joint for controller (9), (20) Rys. 13. Moment napędowy v11 trzeciego ogniwa manipulatora holonomicznego dla sterownika (9), (20) 0510152025 t[s] 0
0510152025 t[s] 0.4
Fig. 15. Disturbing external force F x 2 acting on the end-effector with controller (9), (20) Rys. 15. Zewnętrzna siła zakłócająca F x 2 działająca na koniec efektora dla sterownika (9), (20)
The estimates , J B of the uncertain Jacobian matrix J(q) and control matrix B(q) are assumed in the computations to be equal to ˆ
, JJJ =+Δ ˆ , BBB =+Δ (27)
where each element ΔJi,,j, 1,6 ij ≤≤ 1 of matrix ΔJ and each element ΔB i,j, 16, i ≤≤ 111 j ≤≤ of ΔB were randomly generated according to normal distribution 0 1N(0, 1). In order to attain the convergence of task errors e at least less or equal to 10−6, with simultaneous fulfilment of inequalities 01 i v ≤≤ for i = 1 : 8 (forces generated by thrusters of the spacecraft), the following numerical values of gain coefficients are taken for controller (9), (20: w0 = 2, w1 = 6, a1 = 3/5, e = 0 01, c ¢ = 2 4, and c0 = 0.77, respectively. On account of the physical properties of thrusters, we have equivalently modified computations of the thrusters forces vi, i = 1 : 8 as follows [26]. If vi(t) < 0 then vi(t) := 0. Otherwise vi(t) := 2vi(t), where symbol := means assigning a value to a variable. The results of numerical computations are depicted in Figs 2−15. As is seen from Fig. 2, our controller generates tracking errors e, which are practically for 3 t ≥ equal to zero. Steering signals (eight forces generated by thrusters and three torques provided by DC motors of holonomic manipulator) are depicted in Figs 3−13. As is seen from Figs 3−13, control variables vi, i = 1 : 8 fulfil inequalities 01. i v ≤≤ Moreover, all the steering signals v1, ..., v11 are absolutely continuous functions of time. Although, manipulator torques/forces (see Figs 3−13) present continuous mapping, the control signals shown in Figs 3−13 could not be feasible in real case due to the physical limitations of the actuators. In such a case a smoothing of torques/forces should be carried out. In order to eliminate additional phase delay related with recursive low-pass filters, one could apply Newton predictor enhanced Kalman filter (NPEKF) [9] which provides a wide bandwidth and significantly reduced phase lag. Finally, Figs 14−15 present one realization of external disturbing force acting on the end-effector which tracks extended desired trajectory pd(t).
Let’s know that the control algorithm (9), (15) is also able to converge to desired trajectory pd starting from an arbitrary initial configuration. However, in order to maintain control constraints on usually imposed space craft thrusters, the control gains related to space craft should be sufficiently small. In practice, they should be chosen by trials and errors.
5. Conclusions
A new class of task space TSM controllers with finite-time stability when tracking a desired end-effector trajectory by the space manipulator has been proposed in this paper. On account of the fact that external forces acting on the mechanism are unknown, we have offered a sliding technique which seems to be effective in counteracting those undesirable forces. Moreover, our controller provides physically realizable steering signals. Another feature of the control law proposed is the elimination of the Jacobian matrix inverse (or pseudo-inverse) from the trajectory tracking. Instead, estimated extended Jacobian transpose matrix has been used. Applying the Lyapunov stability theory, control strategy (9), (15) is shown to be finite-time stable by fulfilment of practically reasonable assumptions. Numerical computations have shown that controller (9), (20) well performs under conditions of unknown external disturbances, uncertain kinematics and dynamics of the mechanism. Although our transposed estimated Jacobian controller needs some knowledge extracted from
both the system kinematics and dynamics of the mechanism, the approach is able to handle uncertainties in kinematics and dynamics of the space manipulator as well as unknown external forces.
This work was supported by: (i) the European Regional Development Fund within the BB-PL INTERREG V A 2014-2020 Program, project: ”SpaceRegion: cross-border integration of the space sector”, no. 85038043; (ii) internal program of CBK PAN, project TT.402.365.2021; (iii) Marshal of the Lubuskie Voivodeship.
1. Basmadji F.L., Chmaj G., Rybus T., Seweryn K., Microgravity testbed for the development of space robot control systems and the demonstration of orbital maneuvers, [In:] Photonics Applications in Astronomy, Communications, Industry, and High-Energy Physics Experiments 2019, Romaniuk R.S., Linczuk M., (Eds), Vol. 11176, International Society for Optics and Photonics. SPIE, 2019, 1158–1172, DOI: 10.1117/12.2537981.
2. Brogliato B., Neto A.T., Practical stabilization of a class of nonlinear systems with partially known uncertainties, “Automatica”, Vol. 31, No. 1, 1995, 145–150, DOI: 10.1016/0005-1098(94)E0050-R.
3. Cheah C., On duality of inverse Jacobian and transpose Jacobian in task-space regulation of robots, [In:] Proceedings of the IEEE International Conference on Robotics and Automation, ICRA 2006, 2571–2576, DOI: 10.1109/ROBOT.2006.1642089.
4. Cheah C., Lee K., Kawamura S., Arimoto S., Asymptotic stability of robot control with approximate Jacobian matrix and its application to visual servoing, [In:] Proceedings of the 39th IEEE Conference on Decision and Control, Vol. 4, 2000, 3939–3944, DOI: 10.1109/CDC.2000.912329.
5. Defoort M., Floquet T., Kökösy A.-M., Perruquetti W., A novel higher order sliding mode control scheme, “Systems & Control Letters”, Vol. 58, No. 2, 2009, 102–108, DOI: 10.1016/j.sysconle.2008.09.004.
6. Defoort M., Floquet T., Kökösy A.-M., Perruquetti W., Higher order sliding modes in collaborative robotics, [In:] Sliding Modes after the First Decade of the 21st Century: State of the Art, Lecture Notes in Control and Information Sciences, Fridman L., Moreno J., Iriarte R. (Eds), Vol. 412. Berlin, Heidelberg: Springer, 2012, 409–437, DOI: 10.1007/978-3-642-22164-4_15.
7. Galicki M., Inverse kinematics solution to mobile manipulators, “The International Journal of Robotics Research”, Vol. 22, No. 12, 2003, 1041–1064, DOI: 10.1177/0278364903022012004.
8. Galicki M., Constraint finite-time control of redundant manipulators, “International Journal of Robust and Nonlinear Control”, Vol. 27, No. 4, 2016, 639–660, DOI: 10.1002/rnc.3591.
9. Han J.D., He Y., Xu W., Angular acceleration estimation and feedback control: An experimental investigation, “Mechatronics”, Vol. 17, No. 9, 2007, 524–532, DOI: 10.1016/j.mechatronics.2007.05.006.
10. Hu Q., Zhang J., Maneuver and vibration control of flexible manipulators using variable-speed control moment gyros, “Acta Astronautica”, Vol. 113, 2015, 105–119, DOI: 10.1016/j.actaastro.2015.03.026.
11. Jia S., Jia Y., Xu S., Hu Q., Maneuver and active vibration suppression of free-flying space robot, “IEEE Transactions on Aerospace and Electronic Systems”, Vol. 54, No. 3, 2018, 1115–1134, DOI: 10.1109/TAES.2017.2775780.
12. Jia S., Shan J., Finite-time trajectory tracking control of space manipulator under actuator saturation, “IEEE Transactions on Industrial Electronics”, Vol. 67, No. 3, 2020, 2086–2096, DOI: 10.1109/TIE.2019.2902789.
13. Khaloozadeh H., Homaeinejad M. Reza, Real-time regulated sliding mode controller design of multiple manipulator space free-flying robot, “Journal of Mechanical Science and Technology”, Vol. 24, 2010, 1337–1351, DOI: 10.1007/s12206-010-0403-7.
14. Moosavian S.A.A., Dynamics and control of free-flying robots in space: A survey, “IFAC Proceedings Volumes”, Vol. 37, No. 8, 2004, 621–626, DOI: 10.1016/S1474-6670(17)32047-5.
15. Moosavian S.A.A., Papadopoulos E., Free-flying robots in space: an overview of dynamics modeling, planning and control, “Robotica”, Vol. 25, No. 5, 2007, 537–547, DOI: 10.1017/S0263574707003438.
16. Moosavian S.A.A., Papadopoulos E., Modified transpose Jacobian control of robotic systems, “Automatica”, Vol. 43, No. 7, 2007, 1226–1233, DOI: 10.1016/j.automatica.2006.12.029.
17. Nanos K., Papadopoulos E.G., On the dynamics and control of free-floating space manipulator systems in the presence of angular momentum, “Frontiers in Robotics and AI”, Vol. 4, 2017, 26.1–26.19, DOI: 10.3389/frobt.2017.00026.
18. Ratajczak A., Ratajczak J., Trajectory reproduction algorithm in application to an on-orbit docking maneuver with tumbling target, [In:] 12th International Workshop on Robot Motion and Control, RoMoCo 2019, 172–177, DOI: 10.1109/RoMoCo.2019.8787367.
19. Rybus T., Seweryn K., Sasiadek J.Z., Control system for free-floating space manipulator based on nonlinear model
predictive control (NMPC), “Journal of Intelligent & Robotic Systems”, Vol. 85, 2017, 491–509, DOI: 10.1007/s10846-016-0396-2.
20. Seraji H., A unified approach to motion control of mobile manipulators, “The International Journal of Robotics Research”, Vol. 17, No. 2, 1998, 107–118, DOI: 10.1177/027836499801700201.
21. Seraji H., Colbaugh R., Improved configuration control for redundant robots, “Journal of Robotic Systems”, Vol. 7, No. 6, 1990, 897–928, DOI: 10.1002/rob.4620070607.
22. Slotine J.-J.E., Li W., Applied nonlinear control. Englewood Cliffs, New Jersey: Prentice Hall, 1991.
23. Xu W., Hu Z., Yan L., Yuan H., Liang B., Modeling and planning of a space robot for capturing tumbling target by approaching the dynamic closest point, “Multibody System Dynamics”, Vol. 47, 2019, 203–241, DOI: 10.1007/s11044-019-09683-3.
24. Yao Q., Robust finite-time trajectory tracking control for a space manipulator with parametric uncertainties and external disturbances, “Proceedings of the Institution of Mechanical Engineers, Part G: Journal of Aerospace Engineering”, Vol. 236, No. 2, 2022, 396–409, DOI: 10.1177/09544100211014754.
25. Yoshikawa T., Manipulability of robotic mechanisms, “The International Journal of Robotics Research”, Vol. 4, No. 2, 1985, 3–9, DOI: 10.1177/027836498500400201.
26. Zappulla R., Virgili-Llop J., Zagaris C., Park H., Sharp A., Romano M., Floating spacecraft symulator test bed for the experimental testing of autonomous guidance, navigation, and control of spacecraft proximity maneuvers and operations, [In:] AIAA/AAS Astrodynamics Specialist Conference. Calhoun, 2016, 1–26, DOI: 10.2514/6.2016-5268.
W pracy zaproponowano nową klasę sterowników dla manipulatorów kosmicznych przy uwzględnieniu nieznanych, niepożądanych sił zakłócających wywieranych na koniec efektora. W oparciu o odpowiednio zdefiniowane nieosobliwą, końcową rozmaitość ślizgową i teorię stabilności Lapunowa wyprowadzono klasę rozszerzonych estymowanych transponowanych sterowników Jakobianowych, ktore wydają się być efektywne w przeciwdziałaniu nieustrukturyzowanych sił zakłocających. Podejście zilustrowano również obliczeniami numerycznymi dla manipulatora kosmicznego składającego się z bazy napędzanej przez osiem pędników typu cold-gas i manipulatora holonomicznego o trzech parach kinematycznych obrotowych.
ORCID: 0000-0003-0445-1717
ORCID: 0000-0002-9048-9334
ORCID: 0000-0003-2769-33994
ORCID: 0000-0001-7934-8058
Pomiary Automatyka Robotyka, ISSN 1427-9126, R. 26, Nr 4/2022, 37–42, DOI: 10.14313/PAR_246/37
Extremal problems for integral time lag infinite order parabolic systems are studied in the paper. An optimal boundary control problem for distributed infinite order parabolic systems in which integral time lags appear in the Neumann boundary conditions is solved. Such equations constitute in a linear approximation a universal mathematical model for many diffusion processes (e.g., modeling and control of heat transfer processes). The time horizon is fixed. Using the Dubovicki-Milutin framework, the necessary and sufficient conditions of optimality for the Neumann problem with the quadratic performance indexes and constrained control are derived.
1. Introduction
Extremal problems play an increasing role in applications of control theory [20]. Despite a great variety of these problems, they can be converted by a unified functional-analytic framework, first suggested by Dubovicki and Milutin.
In 1962 Dubovicki and Milutin found a necessary condition for an extremum in the form of an equation set down in the language of functional analysis. They were able to derive, as special cases of this condition, almost all previously known necessary extremum conditions and thus to recover the lost theoretical unity of the calculus of variations.
In particular, in the paper [6], the Dubovicki-Milutin approach was adopted for solving optimal control problems for parabolic-hyperbolic systems. The existence and uniqueness of solutions of such parabolic-hyperbolic systems with the Dirichlet boundary conditions are discussed. Using the Dubovicki-Milutin framework, the necessary and sufficient conditions of optimality for the Dirichlet problem with the quadratic performance indexes and constrained control are derived.
In the papers [9–13], the Dubovicki-Milutin approach was used for solving boundary optimal control problems for the case of time lag parabolic equations [9] and for the case
of parabolic equations involving time-varying lags [10, 11], multiple time-varying lags [12], and integral time lags [13] respectively.
The sufficient conditions for the existence of a unique solution of such parabolic equations [9–13] are presented. Such equations with deviating arguments are a well-known mathematical tool for representing many physical phenomena.
Consequently, in the papers [9–13], the linear quadratic problems of parabolic systems with time lags given in various forms (constant time lags [9], time-varying lags [10, 11], multiple time-varying lags [12], integral time lags [13], etc.) were solved.
Extremal problems for integral time lag infinite order parabolic systems are investigated. The purpose of this paper is to show the use of the Dubovicki-Milutin theorem [11] in solving optimal control problems for distributed parabolic systems.
As an example, an optimal boundary control problem for a system described by a linear infinite order partial differential equation of parabolic type in which integral time lag appears in the Neumann boundary condition is considered. Such equation constitutes in a linear approximation universal mathematical model for many diffusion processes (e.g., modeling and control of heat transfer processes). The right-hand side of this equation and the initial condition are not continuous functions usually, but they are measurable functions belonging to L 2 or L ∞ spaces. Therefore, the solution of this equation is given in a certain Sobolev space [17]. The performance indexes have the quadratic form. Finally, we impose some constraints on the boundary control. Using the Dubovicki-Milutin theorem, the necessary and sufficient conditions of optimality with the quadratic performance indexes and constrained control are derived for the Neumann problem.
h is an integral time lag such that (),,hab ∈ Ψ0 is an initial function defined on Σ0
Let Ω be a bounded set of Rn with smooth boundary Γ. We define the infinite order Sobolev space H ∞{a a, 2}(Ω) of functions Φ(x) defined on Ω [1, 2] as follows
{} ()()() 2 2 0 ,2: HaxCaD α αα α
∞ ∞∞ =
⎧⎫ ⎪⎪ Ω=Φ∈ΩΦ<∞ ⎨⎬ ⎪⎪ ⎩ ⎭ ∑ (1)
where C ∞(Ω) is a space of infinite differentiable functions, a a 0 is a numerical sequence and ‖ ‖2 is a norm in the space L2(Ω), and () () 1 1 n n
D xx
α α α α ∂ = ∂∂ (2) where a = (a1, …, a n) is a multi-index for differentiation, 1 n i i αα = = ∑
The space H –∞{a a, 2}(Ω) [1, 2] is defined as the formal conjugate space to the space H ∞{a a, 2}(Ω), namely (3) where () 2L α Ψ∈Ω and 2 2 0 aαα α
∞ Ψ<∞ ∑
The duality pairing of the spaces H ∞{a a, 2}(Ω) and H –∞{a a, 2}(Ω) is postulated by the formula (4) where
From above, H ∞{a a, 2}(Ω) is everywhere dense in L2(Ω) with topological inclusion and H –∞{a a, 2}(Ω) denoted the topological dual space with respect to L2(Ω) so we have the following chain
The parabolic operator ()At t ∂ + ∂ in the state equation (1) satisfies the hypothesis of Lions and Magenes [17] and A(t) is given by and (9) is an infinite order elliptic partial differential operator [3]. (10) where: A
y γ ∂ ∂ is a normal derivative at Γ, directed towards the exterior of Ω, cos(n, xi) is an i-th direction cosine of n, n-being the normal at Γ exterior to Ω and ()()() ,,, b a qxtyxthdhvxt =−+ ∫ (11)
Now we shall present the sufficient conditions for the existence of a unique solution of the mixed initial-boundary value problem (5)–(8) for the case where the boundary control () 2vL∈Σ For this purpose we introduce the Sobolev space H ∞,1(Q) ([17], vol. 2, p. 6) defined by (12)
which is the Hilbert space normed by (13) where the space H 1(0,T; H 0(Ω)) is defined in Chapter 1 of [17], vol. 1, respectively.
Conditions
we formulate the control problem for the system described by the following parabolic equation:
The existence of a unique solution for the mixed initial-boundary value problem (5)–(8) on the cylinder Q can be proved using a constructive method, i.e., first, solving (5)–(8) on the subcylinder Q1 and in turn on Q2, etc. until the procedure covers the whole cylinder Q. In this way the solution in the previous step determines the next one. Then the following result is fulfilled [15]:
Theorem 1: Let y0, Ψ0, v, and u be given with () 2 00 , L Ψ∈Σ () 2vL∈Σ and
Then, there exists a unique solution for the mixed initial-boundary value problem (5)–(8). Moreover, for j = 1, …, K.
In the sequel, we shall fix
In this paper we shall consider the optimal boundary control problem i.e., () 2vL∈Σ
Let us denote by the space of states and by () 2UL∈Σ the space of controls. The time horizon T is fixed in our problem.
The performance index is given by (14)
where li ≥ 0 and l1 + l2 > 0; zd is a given element in () 2 LQ and N is a strictly positive linear operator on () 2L Σ into () 2L Σ
From the Theorem 1 [15] it follows that for any ad vU ∈ the cost function (14) is well-defined since We assume the following constraints on control: ad vU ∈ is a closed, convex set with non-empty interior, a subset of U. (15).
The optimal control problem (5)–(8), (14), (15) will be solved as the optimization one in which the function u is the unknown function.
Taking advantage of the Dubovicki-Milutin theorem [11] we shall derive the necessary and sufficient conditions of optimality for the optimization problem (5)–(8), (14), (15).
The solution of the stated optimal control problem is equivalent to seeking a pair which satisfies the equation (5)–(8) and minimizing the performance index (14) with the constraints on control (15).
We formulate the necessary and sufficient conditions of the optimality in the form of Theorem 2.
The solution of the optimization problem (5)–(8) exists and it is unique with the assumptions mentioned above; the necessary and sufficient conditions of the optimality are characterized by the following system of partial differential equations and inequalities:
State equation (16)
Outline of the proof
Due to the Dubovicki-Milutin theorem [11], we approximate the set representing the inequality constraints by the regular admissible cone (RAC), the equality constraint by the regular tangent cone (RTC), and the performance index by the regular improvement cone (RFC).
a) Analysis of the equality constraint
The set Q1 representing the equality constraint has the form (20)
Adjoint equations (17)
We construct the regular tangent cone (RTC) of the set Q1 using the Lusternik theorem (Theorem 9.1 [5]). For this purpose, we define the operator P in the form (21)
The operator P is the mapping from the space () () ¢ HQL ∞ ×Σ into the space
Maximum condition (18)
Moreover () (19)
The Fréchet differential of the operator P can be written in the following from: (22)
In fact, t ∂ ∂ (Theorem 2.8 [18]), A(t) (Theorem 2.1 [16]) and Aγ ∂ ∂ (Theorem 2.1 [17]) are linear and bounded mappings.
By virtue of the Theorem 1 [15], we can prove that P’ is the operator “one to one” from the space onto
Considering that the assumptions of Lusternik’s theorem are fulfilled, we can write down the regular tangent cone (RTC) for the set in a point () 00 , yv in the form
() () () () () {}0000 1 ,,,;,,0RTCQyvyvEPyvyv=∈= ′ (23) where the cone (23) is the subspace (Theorem 9.1 [5]).
Therefore, using Theorem 10.1 [5] we know the form of the functional belonging to the adjoint cone
() () () () 0011,0,,, fyvyvRTCQyv =∀∈ (24)
b) Analysis of the constraint on controls
The set Q2 = Y × Uad representing the inequality constraints is a closed and convex one with non-empty interior in the space E.
By virtue of Theorem 10.5 [5] we find the functional belonging to the adjoint regular admissible cone (RAC), i.e. () () () 00 22,,, fyvRACQyv ∗ ⎡⎤ ∈ ⎣⎦
We notice that if E1, E2 are two linear topological spaces, then the adjoint space to E = E1 × E2 has the form () {} 121122 ,;, EffffEfE ∗∗∗ ==∈∈ and f(x) = f1(x1) + f2(x2)
So we note the functional () 2 , fyv as follows () () () 212 , fyvfyfv ′′ =+ (25) where () 1 0 fyyY ′ =∀∈ (Theorem 10.1 [5]), () 2 fv ′ is a support functional to the set Uad in a point v0 (Theorem 10.5 [5]).
c) Analysis of the performance functional
Taking advantage of Theorem 7.5 [5], we find the regular improvement cone (RFC) of the performance index (14) () () () () () {}0000 ,,,;,,0RFCIyvyvEIyvyv=∈< ′ (26)
where: () () 00 ,, Iyvyv ′ is the Fréchet differential of the performance index (14) and it can be written as
Using the definition of the support functional [5] and dividing both members of the obtained inequality by λ0, we finally get (32)
The last inequality is equivalent to the maximum condition (18).
In order to prove the sufficiency of the derived conditions of the optimality, we use the fact that constraints and the performance index are convex and that the Slater’s condition is satisfied (Theorem 15.3 [5]). In fact, there exists a point () 2 ,int yvQ ∈ such that () 1 ,.yvQ ∈ This fact follows immediately from the existence of non-empty interior of the set Q2 and from the existence of the solution of the equation (5)–(8) as well. The uniqueness of the optimal control follows from the strict convexity of the performance index (14).
The above remarks complete the proof of Theorem 2. One may also consider the similar optimal control problem with the performance index (33) where zΣd is a given element in () 2L Σ
On the basis of Theorem 10.2 [5] we find the functional belonging to the adjoint regular improvement cone (RFC), which has the form (27) where: l0 > 0.
d) Analysis of Euler-Lagrange’s equation
The Euler-Lagrange equation for our optimization problem has the form 3 1 0 i i f = ∑ (28)
Let p(x,t) be the solution of (14) for (y0 , v0).
Let us denote by y the solution of (),0Pyv = ′ for any fixed v Then taking into account (24), (25) and (27) we can express (28) in the form (29)
From the Theorem 1 [15] and the trace theorem [17] for each () 2 , vL∈Σ there exists a unique solution with Thus () ˆ , Iyv is well-defined. Then the solution of the formulated optimal control problem is equivalent to seeking a pair which satisfies the equation (5)–(8) and minimizing the cost function (33) with the constraints on control (15).
We can prove the following theorem:
The solution of the optimization problem (5)–(8), (33), (15) exists and it is unique with the assumptions mentioned above; the necessary and sufficient conditions of the optimality are characterized by the following system of partial differential equations and inequalities: State equation (16)
Adjoint equations (34)
We transform the first component of the right-hand side of (29) introducing the adjoint variable by adjoint equations (17).
After transformations we get
Substituting (30) into (29) gives
(30)
Maximum condition (35)
The idea of the proof of the Theorem 3 is the same as in the case of the Theorem 2.
In the case of performance indexes (14) and (33) with λ1 > 0 and λ2 = 0, the optimal control problem reduces to the minimizing of the functional on a closed and convex subset in a Hilbert space. Then, the optimization problem is equivalent to a quadratic programming one [7, 8, 14] which can be solved by the use of the well-known algorithms, e.g., Gilbert’s [4, 7, 8, 14] ones. The practical application of Gilbert’s algorithm to optimal control problem for a parabolic system with boundary condition involving a time lag is presented in [14]. Using the Gilbert’s algorithm, a one-dimensional numerical example of the plasma control process is solved [14].
1. Dubinskii Ju.A., Sobolev spaces of infinite order and behavior of solution of some boundary value problems with unbounded increase of the order of the equation, “Matiematiczeskii Sbornik”, Vol. 98, 1975, 163–184.
2. Dubinskii Ju.A., Non-trivality of Sobolev spaces of infinite order for a full Euclidean space and a Tour’s, “Matiematiczeskii Sbornik”, Vol. 100, 1976, 436–446.
3. Dubinskii Ju.A., About one method for solving partial differential equations, “Doklady Akademii Nauk SSSR”, Vol. 258, 1981, 780–784.
4. Gilbert E.S., An iterative procedure for computing the maximum of a quadratic form on a convex set, “SIAM Journal on Control”, Vol. 4, No. 1, 1966, 61–80, DOI: 10.1137/0304007.
The derived conditions of the optimality (Theorems 2 and 3) are original from the point of view of application of the Dubovicki-Milutin theorem [11] in solving optimal control problems for infinite order parabolic systems in which integral time lags appear in the Neumann boundary conditions. The proved optimization results (Theorems 2 and 3) constitute a novelty of the paper with respect to the references [7, 8, 14] concerning application of the Lions framework [16] for solving linear quadratic problems of optimal control for the case of the Neumann problem. The results presented in the paper can be treated as a generalization of the results obtained in [9–13] to the case of integral time lags appearing in the Neumann boundary conditions.
The obtained optimization theorems (Theorems 2 and 3) demand the assumption dealing with the non-empty interior of the set Q2 representing the inequality constraints. Therefore, we approximate the set Q2 by the regular admissible cone (RAC) (if intQ2 = f then this cone does not exist) [11]. The obtained results can be reinforced by omitting the assumption concerning the non-empty interior of the set Q2 and utilizing the fact that the equality constraints in the form of the parabolic equations are “decoupling”. The optimal control problem reduces to seeking 0 2vQ ∈ ′ and minimizing the performance index I(v). Then, we approximate the set 2Q ′ representing the inequality constraints by the regular tangent cone (RTC), and for the performance index I(v) we construct the regular improvement cone (RFC) [11].
The proposed methodology based on the Dubovicki-Milutin approach can be presented on a specific case study concerning hyperbolic systems described by infinite order partial differential equations of the hyperbolic type in which time lags appear in the integral form both in the state equations and in the Neumann boundary conditions.
Moreover, the Dubovicki-Milutin framework can be applied to solving optimization problems for a sophisticated case of infinite order parabolic systems with deviating arguments given in the integral form such that () 0, hb ∈ with a = 0.
Another direction of research would be the analysis of case studies with numerical examples concerning the determination of optimal boundary control with constraints for infinite order parabolic systems with integral time lags.
An interesting possible future research direction may consist in formulation of extremal problems for advanced modern control strategies, for example, event-based control [19].
5. Girsanov I.V., Lectures on Mathematical Theory of Extremum Problems, Publishing House of the University of Moscow, Moscow 1970 (in Russian).
6. Kowalewski A., On optimal control problem for parabolic-hyperbolic systems, “Problems of Control and Information Theory”, Vol. 15, 1986, 349–359.
7. Kowalewski A., Optimization of parabolic systems with deviating arguments, “International Journal of Control”, Vol. 72, No. 11, 1999, 947–959, DOI: 10.1080/002071799220498.
8. Kowalewski A., Optimal Control of Infinite Dimensional Distributed Parameter Systems with Delays, AGH University of Science and Technology Press, Cracow, 2001.
9. Kowalewski A., Miśkowicz M., Extremal problems for time lag parabolic systems, Proceedings of 21st International Conference on Process Control (PC), 446–451, Strbske Pleso, Slovakia, June 6-9, 2017, DOI: 10.1109/PC.2017.7976255.
10. Kowalewski A., Extremal problems distributed parabolic systems with boundary conditions involving time-varying lags, Proceedings of 22nd International Conference on Methods and Models in Automation and Robotics (MMAR), 447–452, Międzyzdroje, Poland, August 28–31, 2017.
11. Kowalewski A., Extremal problems for parabolic systems with time-varying lags, “Archives of Control Sciences”, Vol. 28, No. 1, 2018, 89–104, DOI: 10.24425/119078
12. Kowalewski A., Extremal problems distributed parabolic systems with multiple time-varying lags, Proceedings of 23rd International Conference on Methods and Models in Automation and Robotics (MMAR), 791–796, Międzyzdroje, Poland, August 27-30, 2018.
13. Kowalewski A., Miśkowicz M., Extremal problems for integral time lag parabolic systems, Proceedings of 24th International Conference on Methods and Models in Automation and Robotics (MMAR), 7–12, Międzyzdroje, Poland, August 26–29, 2019.
14. Kowalewski A., Duda J., On some optimal control problem for a parabolic system with boundary condition involving a time-varying lag, “IMA Journal of Mathematical Control and Information”, Vol. 9, No. 2, 1992, 131–146, DOI: 10.1093/imamci/9.2.131.
15. Kowalewski A., Krakowiak A., Time-optimal boundary control of an infinite order parabolic system with time lags, “International Journal of Applied Mathematics and Computer Science”, Vol. 18, No. 2, 2008, 189–198.
16. Lions J.L., Optimal Control of Systems Governed by Partial Differential Equations, Springer-Verlag, Berlin-Heidelberg, 1971.
17. Lions J.L., Magenes E., Non-Homogeneous Boundary Value Problems and Applications, Vols 1 and 2, Springer-Verlag, Berlin-Heidelberg, 1972.
Adam Kowalewski was supported under the research program no. 16.16.120.773 at AGH University of Science and Technology, Krakow, Poland. Marek Miśkowicz was supported by the Polish National Center of Science under Grant DEC-2018/31/B/ST7/03874.
18. Maslov V.P., Operators Methods, “Nauka”, Moscow 1973 (in Russian).
19. Miśkowicz M. (Ed.), Event-Based Control and Signal Processing, CRC Press, 2016.
20. Ioffe A.D., Tihomirov V.M., Theory of Extremal Problems, Elsevier, 2009.
Zaprezentowano ekstremalne problemy dla systemów parabolicznych nieskończonego rzędu z całkowymi opóźnieniami czasowymi. Rozwiązano problem optymalnego sterowania brzegowego dla systemów parabolicznych nieskończonego rzędu, w których całkowe opóźnienia czasowe występują w warunkach brzegowych Neumanna. Tego rodzaju równania stanowią w liniowym przybliżeniu uniwersalny model matematyczny dla procesów dyfuzyjnych. Korzystając z metody Dubowickiego-Milutina wyprowadzono warunki konieczne i wystarczające optymalności dla problemu liniowo-kwadratowego.
ORCID: 0000-0001-5792-2039
ORCID: 0000-0003-3737-4690
Abstract: In this paper the novel control and communication scheme designed to ease the development and maintenance of the robotic astronomical telescope device is presented. The proposed solution allows the user to remotely access any signal in the controller of the telescope without imposing any additional overhead during telescope operation. The implemented scheme can be used by both an automated control system and human operators for easy supervision, control, and maintenance of the device.
1. Introduction
Development of autonomous robotic telescopes poses considerable challenges concerning reliability and maintainability of the supervised system. Devices designed with the aim of deployment in distant isolated locations, with possibly harsh and changing environmental conditions, require special means of supervision and maintenance to ensure their constant and infallible operation. Ivanescu et al. [6] presented some challenges of the telescope working in such conditions, which resulted in the need for constant supervision by a human operator. The demand for development of modern systems that allow easy and automated supervision or maintenance has recently been reported by Marchiori et al. [11]. Importantly, proposed solutions have to be lightweight in terms of computational resources as the performance of the telescope controller cannot be hindered during normal operations. Moreover, the need for a simplified graphical user interface for the control of the telescopes by the final user has also been reported, e.g. Abareshi et al. [1] with growing interest in taking advantage of modern web-based technologies as used by Sadeh et al. [12] or Edwards et al. [3]. Satisfaction of all these requirements introduces significant difficulty for any team working on the development of automated robotic telescopes.
In this paper a novel framework for software architecture designed to ease the development and maintenance of autonomous telescopes is presented. Recently, this architecture has been successfully employed in the SkyLab laboratory established at the Poznan University of Technology in 2018. The pro-
gresses in development of the SkyLab were already reported by Kozlowski et al. [8]; Krysiak et al. [10]; Kozłowski et al. [9].
The proposed framework takes advantage of an internal communication scheme, which makes it possible to monitor every single signal in the software realization of the telescope controller without affecting the real-time operation of the control loop. Multiple client applications able to communicate with the controller were implemented using this approach. They include services used to automatically synchronize the clock of the controller, acquire and store the data produced during the operation of the telescope, and control of the telescope using a graphical interface, either for maintenance or regular observations. The use cases presented in this paper confirm the wide applicability of the proposed framework.
The rest of the paper is organized as follows. Section 2 presents the overall structure of the discussed telescope system. In Section 3 details of the internal communication scheme are described. Section 4 presents the client application designed mainly for astronomical operations and Section 5 describes the client application for maintenance and development. In Section 6 the example of some possibilities of the proposed system is presented. Section 7 concludes the paper.
The considered software architecture was designed for a set of astronomical telescope mounts currently developed at the Institute of Automatic Control and Robotics. The discussed collection consists of autonomous robotic mounts for a single telescope of diameter of either 0.5 m or 1 m. Currently, all of the SkyLab mounts work under the same framework presented in this paper. The example of the mount used in SkyLab is given in Fig. 1.
The developed solution consists of several interconnected devices including Mimas – Spartan 6 FPGA, microcontroller (MCU) STM32H743ZI2 with the high performance CPU ARM Cortex-M7 operating up to 480 MHz, an electronic security system with energy dissipation function (UZE), the compu-
Fig. 1. The mount carrying a 0.5 m class telescope (PlaneWave CDK20 0.51-m f/6.8 Corrected Dall-Kirkham with resolving power 0.28 arcsec and camera FLI PL16803 CCD 4096 × 4096 9 μm pixels with resolution 0.54 × 0.54 arcsec/px and field of view 0.61 × 0.61 deg) used in SkyLab Rys. 1. Montaż z teleskopem klasy 0,5 m (PlaneWave CDK20 0.51-m f/6.8 Corrected Dall-Kirkham z maksymalną zdolnością rozdzielczą 0,28 arcsec oraz camerą FLI PL16803 CCD 4096 × 4096 9 μm piksele o rozdzielczości 0,54 × 0,54 arcsec/px z polem widzenia 0,61 × 0,61 deg) stosowany w SkyLab
ter Raspberry Pi 4 (RPI) and the miniature NTP/PTP time server NTS-pico3 (GPS). The architecture of this system, with all channels of data exchange between the nodes, is graphically presented in Fig. 2.
The STM32 is a main real-time controller which is responsible for performing low-level tasks such as processing data, computing trajectory, controlling motors and overviewing all external devices to ensure faultless operation. The control system loop is designed to work with a 10 kHz frequency for both axes of the telescope mount. Using the I2C interface, the STM32 communicates with the UZE module to obtain the temperature and current measurements of the motors and to adjust a supply voltage or energy dissipation function settings. The main controller program is written in a standard C/C++ programming language. Here, the novel programming framework introduced by Gawron and Kozłowski [4] was employed to manage the code structure and ensure the exchange of information between separate modules. The FPGA is used mainly for signal processing and gathering of measurements, including
telescope positions, status of encoders, supply voltage and current of the drives, which later are sent to the main STM32 controller. The communication between FPGA and STM32 is made possible by employing a fast SPI interface with STM32 in a role of a main device. FPGA is also tasked with exercising custody over drives controller as a watchdog and, in case of failure, interrupt PWM signals which control the drives. The RPI runs Linux-based Raspbian operating system with realtime Preempt RT kernel modified to incorporate support of the Precise Time Protocol (PTP). The real-time system is crucial to guarantee a minimum latency between external interrupts and the interrupt handling, and consistent behavior of thread scheduling. Due to its networking capabilities, the RPI platform serves mainly as a relay for communication between the STM32 controller and external client applications. The communication between STM32 and RPI through the SPI interface is adjusted to use the ASTCom communication library, which is described in detail in Section 3. As the RPI is the only computer-scale node in the considered system, it also hosts several of those client services. The Relay program provides service support with the SPI interface and transmission of data between STM32 and external clients, including a Virtual Star Server (VSS), Database Relay, Robot Supervisor Panel (RSP) or Time Synchronizer (TimeS). The task of Database Relay is to intercept the data streaming from the STM32 and save all transmitted data to an external database for future reference. The Virtual Star application is designed to ensure a proper operation of the telescope in astronomical observation tasks, while diagnostic operations can be carried out through a multi-function web application RSP. The RPI communicates with the external world by Ethernet connection, taking advantage of Websocket or HTTP protocol.
In a case of astronomical observations, an availability of reliable clock source is a crucial requirement to obtain a high level of tracking accuracy, as it is vital to calculate a position of an observed object in a given time instant. Thus, a custom time
Fig. 2. Software, hardware and communication architecture of the telescope system Rys. 2. Oprogramowanie, osprzęt i architektura systemu komunikacji w układzie teleskopu
synchronization module was developed using a proposed communication scheme. To this end, a GPS module is employed, which is connected to the RPI using an Ethernet standard. This enables the RPI to periodically update its internal system clock through the PTP protocol, as described in Cochran et al. [2]. However, in order to employ the PTP synchronization, the system kernel has to provide control of the hardware clock and packet timestamping at the hardware or software layer, which is ensured by the aforementioned kernel modifications. Once the synchronization of its system clock is performed, the RPI can be treated as the main source of time measurements in the considered system. By taking advantage of this notion, the program TimeS reads the synchronized system timestamp of the hindmost full second and transfers it in the UTC format to the STM32 using the proposed ASTCom approach, thus updating the internal clock of the telescope control system. In order to avoid time diverging, an additional one 1PPS (a pulse per second) signal is routed directly from the GPS module into one of the digital inputs of the STM, which enables the control system to precisely assign the received UTC timestamp to the time instant marked by the 1PPS pulse.
Data storage during the operation of the automatic control system is an element of high importance, as it was emphasized by Story et al. [13]. In particular, thanks to recorded signals, it is possible to conduct an in-depth analysis of the conducted experiments, as well as to diagnose the cause of the possible system defects based on the data collected over a wide time horizon. An open-source time series database InfluxDB installed on an external server with plenty of storage space is used for gathering and saving data from the controlled system. As has been mentioned earlier, the program Database Relay, running on the RPI machine, catches streamed signals and saves data into the database using InfluxDB’s custom command language similar to mySQL by the HTTP protocol. An arbitrary choice of stored data is given to the user of the telescope system and these can be defined using the RSP and VS applications, both of which are equipped with a user-friendly GUI. To access the database and download the data series, one can make use of the HTTP protocol directly or take advantage of a custom application that works as a module of the MATLAB environment. Any calculations, visualization, or data processing can also be done in the MATLAB program.
serialization of custom defined classes, the special macro AST_ VARIABLE_DEFINE is declared which, when included in the class definition, declares a set of functions used to serialize and deserialize all variables of the chosen class. The types of variables and a proper way of their processing are discovered automatically by the library. Thus, once a class is defined, a call to a single function automatically serializes an entire content of its object, including any member objects that were implemented taking advantage of the AST_VARIABLE_DEFINE. A globally accessible Collection class is then defined, which can be called to recursively scan and register any object of the ASTVariable type. During this process, information about name, type, address of data in physical memory and addresses of serializing and deserializing functions of the object are stored in memory of the Collection singleton. Due to to the recursiveness of this operation, it is sufficient to register only the top level object, provided that all member objects are also of the ASTVariable type. Thus, if any change in the structure of the software is made, there is no requirement for any additional modifications outside the affected classes, as their proper registration is automatically ensured by the top level class. It is of major significance that all of these operations are performed either at compile time or on the device startup and does not in any way slow down main computation tasks executed online by a CPU. Once the initial registration of objects is performed, the current state of any signal in the telescope can be easily obtained by invoking the Collection object with name and type of the required variable.
In order to facilitate the communication and data exchange between various nodes of the telescope environment, the novel communication protocol called the Astronomic Communication Library (ASTCom) was proposed and implemented. The library provides an interface for serialization and real-time exchange of data between various devices through the Websocket protocol. The serialization itself is performed using a custom format similar to the well-known MessagePack format enhanced with several extensions to accommodate features of the proposed scheme. Mainly, the possibility to dynamically configure the set of exchanged data at run-time is introduced.
The basis of the ASTCom library design is the system of variable and class registration, which allows the library to discover each and every desired variable declared in the code of the telescope controller. To this end, a conceptual ASTVariable is defined as any variable or class that can be serialized by the ASTCom library. Serialization procedures for multiple basic types (e.g. integer, float, string, array, etc.) are predefined by the library itself. Moreover, ASTVariable can also represent a function with an arbitrary signature. In order to enable
In order to make use of the proposed approach, two separate modules are implemented – the Endpoint module, to be employed on board of the telescope, and the Client module, run in each of the client applications. Both modules are derived from the single Interface class. These two are then used to establish communication between various devices in the ASTCom network. To this end, a series of hard-coded ASTCommands is defined and used to exchange basic commands between devices. These are in nature similar to functions of the Modbus protocol and are first used to establish a formal connection between the nodes, during which version compatibility is verified and access rights are granted through password verification. Each connection is represented in both parties by a separate Connection class object, which stores all information necessary to carry on the communication. It has to be noted that multiple Client devices can be simultaneously connected to a single Endpoint and their number can be limited by the Endpoint to reduce the performance impact. Once the connection is defined, the Client uses proper ASTCommands to query the Endpoint device and request it in order to define new ASTMessages – virtual structures consisting of several ASTVariables with a unique ID number assigned. Once the Endpoint receives such request, it queries the Collection for desired entries and copies pointers to serialization functions. Hence, once the ASTMessage is defined in the Endpoint, it is directly available for use, and no additional overhead is created beside brief configuration of the messages, which can be done before the proper start of operation of the telescope system. On the Client side, the newly defined ASTMessage is also bound to a chosen locally defined variable of the same type. It is noteworthy that as the serialization procedures of the basic types are hard-coded into the library, the Client device is not required to have counterparts of the defined data in its source code, as they can always be built in the runtime from objects of basic types. On both sides, defined ASTMessages are stored in the MessageRegister class object, with a notion that the Endpoint defines a single register used by all connections, while the Clients assign separate storage for each connection. The process of ASTMessage definition can be seen as creating of a bond between the local and remote variables on two devices. In case of an ASTMessage containing
an ASTVariables representing the function, the bound is made between the function on one device and variables used as its arguments on the other. Such messages containing references to a function can be transferred only in one direction, as arguments can only be written to functions. A graphical scheme showing an example of this binding is given in Fig. 3.
The proposed approach was first implemented in C++ code, as this is the language of the main controller of the telescope. To enable support of various client applications, the Client class with all necessary dependencies was later ported into JavaScript (using LLVM/Clang-based Emscripten compiler), pure C and C# (using p/invoke feature).
Fig. 3. Example of variable binding in ASTCom. Note that function reset() is called without any argument and the remote variable int pos is used to invoke a local callback function. Variables float tau and float var4 can be transferred in both directions Rys. 3. Przykład łączenia zmiennych w ASTCom. Zauważyć można, że funkcja reset() wywoływana jest bez argumentów, a zdalna zmienna int pos wykorzystywana jest do wywołania funkcji lokalnej. Zmienne float tau oraz float var4 mogą być przesyłane w obu kierunkach
Two modes of data exchange are supported by the ASTCom library – the private channel communication used to transfer data between two devices and the stream channel used by the Endpoint to broadcast large amounts of data to all connected clients. All of the aforementioned ASTCommands are also sent through the private channel. Importantly, the ASTCom library does not specify a precise transport layer of the channels, and thus the communication can be carried out using several medias, including Websocket, TCP/IP or SPI communication with both channels supported by a single connection or separated between two independent routes, e.g. two separate Websocket connections. The Client can request to exchange the data through one of these communication channels. In case of the private channel, the Client requests a single exchange of data of a chosen ASTMessage in the desired direction – the data can be both read from or written to the telescope. Once the command is carried out, the values of the bound variables are identical on both devices. If the considered ASTMessage contains ASTVariables representing the function, it is remotely invoked, which can be used to control the behavior of the telescope controller.
While the private channel is designed mainly to control the telescope by the user or the supervisor, the stream channel is intended for constant acquisition of information about the state of the adevice. To this end, the Client may request the Endpoint to start recording chosen ASTMessages with a desired frequency. Currently, on the considered setup of the telescope controller, the recording with a frequency up to 10 kHz is possible. The Endpoint executes such a command, by cyclically serializing the value of requested variables into a local predefined buffer. Once a certain volume of data is acquired, the data is flushed and sent to all connected Clients, which receive the packets containing the amassed record of state of the telescope in the previous time instants. Importantly, Clients may bind the received data to some custom callback functions and this way process each sample of data separately upon arrival. Thus, a significant amount of data can be exchanged between devices to allow constant monitoring of the telescope performance.
In order to enable the user to interact with the telescope and perform standard astronomical calculations, the automated control VirtualStar (VS) system was developed. It is responsible for real-time data acquisition and processing (e.g. axes states are continuously monitored) and, most importantly, it is a complex tool for calculation of desired telescope trajectories based on the movements of celestial objects. All these computations are possible with the use of commonly known astronomical libraries (SOFA, SGP4) as reported by Vallado et al. [14]; Hohenkerk [5]. Moreover, this software is responsible for management of the graphical presentation layer and processing of user requests. In order to ensure full system scalability and security in data storage, the VirtualStar system design consists of two separate subsystems (shown in Fig. 2 as the VSS and VSC modules). C# and .Net Core 3.1 tools were chosen to implement all subsystem components, including open source astronomical libraries – nuget packages written as wrappers for C++ source tools. The server-based subsystem part has been built specifically for the linuxarm distribution, while the client part is only available as the Windows application.
The basis of the VirtualStar Server (VSS) structure is the ASTCom Client module which enables the exchange of the current state of any signal processed by the STM32 controller. Directly at startup, the ASTMessages are defined according to the rules specified by the ASTCom modules. A custom JSON-based configuration file contains a set of variable and function names paired with specific ASTCom library signals, which are used to properly configure the connection. Then, after a successful connection, each signal is transferred to the graphical presentation layer or sent to other subroutines within the VSS module, such as the kinematic calibration module (known as pointing model), for feature control tasks of the telescope system. The computation and data preparation are completely independent of the telescope mechanics, making it possible, for example, to continuously provide trajectory samples while tracking satellites without waiting to reach a previous point. Connected to the ASTCom Endpoint, VSS takes advantage of the private communication channel to query the Endpoint device and request it to perform the following commands: initialize/ start/reset trajectory, getting a free buffer space, rotation around the horizontal axis (control of the altitude angle), rotation around the vertical axis (control of the azimuth angle), and sending next trajectory positions. In addition, using this mode, it also reads signals considered to be the general state of the device: telescope positions from encoders (instrumental altitude and azimuth angles), operating state, status and potential errors of each axis, and current time measured in microseconds. Meanwhile, the stream channel communication is used by the VSS to receive continuous tracking errors data with a specified frequency. Then, these position errors are stored in internal data arrays until they are forwarded to the VirtualStar client’s presentation layer, described briefly below. It should be noted that both the mount driver and ASTCom library process requests synchronously, while the VirtualStar system handles all commands fully asynchronously. This means that at the VSS level it was necessary to include a synchronization
module, thanks to which overloads and communication errors were avoided. It is a simple mutex-based implementation that always passes only one thread to the requesting function and holds all others until it is released.
The user interface of the VirtualStar is designed as a standalone desktop VirtualStar Client application based on the Windows Presentation Foundation (WPF) framework and .Net Core 3.1. Its basic structure consists of the background communication layer and the graphical user interface with data presentation features. The exchange of data between the VSS and the VSC is performed on a separated communication layer using a Websocket protocol. All high-level application commands inputted by the user through the graphical layer are immediately converted to messages in JSON format and sent to the VSS, where they are serialized to particular commands recognized by the mount driver. Once a command is sent to the VSS, the VSC waits for the response stating that the command was correctly classified, executed, and completed successfully. Furthermore, the communication with the VSS is kept active by using a watchdog, which informs about any possible gaps in sending requests even though the Websocket state is still open. By applying a continuous time synchronization with the mount driver, both STM32 controller and VirtualStar subsystems operate in the same clearly defined time domain. Thus, all discrete points approximating the desired trajectory are fully synchronized and the motion actions are performed with a valid coordinates conversion time.
The graphical user interface layer (Fig. 4) shows the current coordinates as instrumental positions in the horizontal system (based on encoders values) (1), as well as current astronomical coordinates, both in the horizontal and equatorial systems (2). The last item in the vertical stack is the field for the input of the slewing targets (3), defined in any coordinate system. Other functionalities of the system (4) include: switching to a passive or active state, starting or stopping sidereal
tracking, sending TLE orbital elements data for satellite tracking, monitoring operations of the entire system and reacting to possible errors and faults, preparing a file for the calculation of pointing model coefficients, and generating an automatic observations program.
The web application called the Robot Supervisor Panel (RSP) was created to facilitate the development and testing of the telescope system and to enable the designer to interact with the system in a simple and easy way. The main focus of the RSP is given to diagnostics, parameter tuning, online visualization with signal processing, and the possibility of conducting experiments for the telescope development and maintenance. The application is written using standard web development tools, including Hyper-Text Markup Language (HTML), Cascading Style Sheets (CSS) with Leaner Style Sheets (LESS) and Java Script (JS). Additionally, the JS front-end framework Vue.js is used for simplification of the design process and maintenance of the code. The most significant advantage of this framework is the reactivity feature. Namely, after any change of a reactive state, the interface structure is updated automatically. Moreover, this framework supports the modular structure of the application, which enables to dynamically modify the page depending on data received from the telescope system and the user’s interaction.
The main target of RSP is an exchange of information with the telescope system by taking advantage of the ASTCom communication library. The RSP interface is divided into several panels, each responsible for a different functionality. The first panel, called Board, can be used to initiate a connection with the telescope system. Once the connection is successfully established, the application queries the telescope controller
Fig. 4. VirtualStar graphical user interface (a color inversion is applied to the image for readability) Rys. 4. Interfejs graficzny aplikacji VirtualStar (dla zwiększenia czytelności zastosowano inwersję kolorów na ilustracji)
for a list of all available variables which are then separated into three types: streaming signals, parameters, and executable functions. An internal structures corresponding to these remote variables are then dynamically created to be used in further processing. These dynamically defined variables are used to exchange data with the telescope controller. It should be noted that for writing, reading, and streaming requests, the RSP takes advantage of a private channel to communicate with the Endpoint, and streaming channel to receive streaming data of requested signals.
The Board tab also shows all basic information about the device, including connection status, telescope status, and possible errors. The designed layout allows the user to keep an eye on the device and connection status without much effort. A full overview of all statuses and errors for each module of the telescope system can be found on the Diagnostics tab. In this tab, the user is able to check states of low-level controller, motors or a trajectory status. The card Signals presents remote variables available for streaming and is responsible for defining commands for a stream of chosen signals with a frequency up to 10 kHz that is equal to the sampling frequency of the main controller. The Plot card, as the name suggests, is used to visualize received data of streamed variables. Moreover, an additional tab called Compute is provided, which enables the user to perform algebraic calculations using streamer signals, the results of which can be later displayed in Plot tab. Significantly, each card offers a possibility to save its current state to a local configuration file, which can be later loaded to restore all settings with just a one click, e.g. if there is a need to recreate a past experiment.
Using the Parameters card, one can easily read and modify the parameters values of the telescope system to perform the controller tuning. During the tuning process there is no need to restart the system to apply new settings and this process can be done online, while the telescope executes the ordered task. The online browser of signals received from the controller helps to manually tune up parameters to obtain the required performance of the control system for various conditions.
The Input card enables to send predefined control commands like start, stop, or reset, and custom commands to remotely execute functions with given arguments. From this panel the user is also able to define a trajectory for each axis by giving a mathematical formula dependent on time and additionally specifying experiment duration. This function of the RSP has been used for experimental validation in Section 6.
In order to present the practical possibilities of the proposed software framework, the experiment was performed using the real telescope system operating in SkyLab. The experiment was conducted for a whole-night tracking of drifting sinusoidal trajectory specified for the single axis of the telescope with an average speed of approximately 0.0095 rad/min that resulted in an axis covering the distance of 6.8 rad in 12 h. Data acquisition was carried out throughout the experiment with a frequency of 1 kHz. The change of axis position from the start of experiment, motor current, and position tracking error were chosen for recording. Notably, all data was gathered directly from the drive controllers and visualizes the performance of the mount itself irrespectively from properties (e.g. resolving power) of the optical part of the telescope. Due to the simple character of the desired trajectory, the RSP module was used for its generation. Alternatively, VS application could be employed to perform the experiment with a trajectory corresponding to movement of some celestial objects. The database was used for online storage of acquired measurements. Significantly, the experiment was conducted remotely and no kind of human supervision was required throughout the experiment. The results of the experiment are given in Fig. 6.
In Fig. 7 a zoomed view of only the first two seconds of the experiment with full resolution of 1000 samples per second is given. Notably, both these figures were created using the same data from the same experiment. This exposes the possibilities of the proposed solution to monitor the performance of the telescope in different time scales while preserving high time accuracy even for long acquisition periods. In particular, one can distinguish different dynamic effects visible in Fig. 6 and 7
Fig. 6. Data obtained during the whole experiment Rys. 6. Dane uzyskane w trakcie całego eksperymentu
The design of a control architecture for autonomous telescope mounts can be regarded as an interesting and challenging task due to a high complexity of the system, difficulties in achieving high performance of motion control and a reliable operation of the system over a long period of time in various environmental conditions. The tools described in the paper have been created taking into account these requirements. The implemented communication library ensures that adding new signals to the growing code of the controller will not take much effort, and no significant changes on the client side will be necessary. The designed web application allows monitoring, tuning the telescope control system and conducting experiments from one place that can be convenient for system designers and engineering scientists. This diagnostic tool can also be used during the maintenance to keep performance on the highest level and prevent failures of the system. Alternatively, the VirtualStar system enables astronomers to efficiently carry out desired observations. The database provides access to measurements gathered during observations to later conduct an analysis of the acquired data.
The future work may include extension of functionality of the presented client applications, including implementation of log viewer and adding additional conversion and calculation functions in the web application. Moreover, reliability and security of the considered communication scheme should be increased. Specifically, introduction of some security measures concerning prevention of unauthorized access to the communication network may be considered as a crucial issue for the employment of the telescope mounts working under the proposed framework. Additionally, there is still a space for the development of the error detection process to achieve better effectiveness and reliability of the telescope control system, including analysis of collected data.
Fig. 7. Detailed view of data obtained in the first 2 s of the experiment Rys. 7. Szczegółowy widok danych uzyskanych w pierwszych 2 s trwania eksperymentu
– vibrations visible in the wider time horizon are presumably caused by the presence of cogging torque due to the electromechanical structure of the motors, while the tracking errors observed in the short time scale are attributed to the vibrations of the mechanical mount which is not perfectly stiff. The data obtained from the whole experiment takes approximately 1 GB of memory when stored in optimized MATLAB data format and over 4 GB when written into text based .csv file.
The gathered data can be used not only for experimental purposes, but also to supervise the performance of the telescope system in order to detect failures and react as quickly as possible to any reduction in control quality, which may otherwise lead to loss of functionality of the system. In the worst case, it can help diagnose a broken element thanks to the recorded historical data. This subject was discussed in Katal et al. [7], where difficulties and possible techniques to deal with data analyze problem were presented.
We would like to express our thanks to our late leader, Professor Krzysztof Kozłowski who was the initiator of series of projects focused on the development of technologies for autonomous optical observation systems implemented at the Poznan University of Technology.We would also like to thank Bartłomiej Krysiak, PhD, and Mateusz Ochocki, MSc, who are the designers of the mechanical structure of the telescopic mount used in the SkyLab, and Tomasz Jedwabny, MSc, who designed and integrated the electronic units of the system, and Stanisław Kozłowski, PhD, for his support in the field of astronomy and SST, and active participation in the functional development of the SkyLab laboratory. We also thank Piotr Mieszała, MSc, for his technical and administrative support of the projects.
This research was funded by the Poznan University of Technology grant number 0211/SBAD/0121.
1. Abareshi B., Marshall R., Gott S., Sprayberry D., Cantarutti R., Joyce D., Williams D., Probst R., Reetz K., Paat A., et al., A new telescope control software for the Mayall 4-meter telescope, „Software and Cyberinfrastructure for Astronomy IV”, Vol. 9913, 2016, 645–656. SPIE, DOI: 10.1117/12.2233087.
2. Cochran R., Marinescu C., Riesch C., Synchronizing the Llinux system time to a PTP hardware clock. IEEE International Symposium on Precision Clock Synchronization for Measurement, Control and Communication, 2011, 87–92, DOI: 10.1109/ISPCS.2011.6070158.
3. Edwards P., Amy S., Brodrick D., Carretti E., Hoyle S., Indermuehle B., McConnell D., Mader S., Mirtschin P., Preisig B., et al., Remote access and operation of telescopes by the scientific users. „Observatory Operations: Strategies, Processes, and Systems V”, Vol. 9149, 2014, International Society for Optics and Photonics, DOI: 10.1117/12.2058794.
4. Gawron T., Kozłowski K., Semi-automated synthesis of control system software through graph search, „Advanced, Contemporary Control”, 2020, 1092–1103, Springer, DOI: 10.1007/978-3-030-50936-1_91.
5. Hohenkerk C.Y., SOFA and the algorithms for transformations between scales & between systems. [In:] H. Schuh, S. Boehm, T. Nilsson, N. Capitaine (eds.), „Proc. of Journées Systémes de Référence Spatiotemporels 2011”, 2012, 21–24.
6. Ivanescu L., Baibakov K., O’Neill N.T., Blanchet J.P., Blanchard Y., Saha A., Rietze M., Schulz K.H., Challenges in operating an Arctic telescope. „Ground-based and Airborne Telescopes V”, Vol. 9145, 2014, 1489–1509, SPIE, DOI: 10.1117/12.2071000.
7. Katal A., Wazid M., Goudar R.H., Big data: Issues, challenges, tools and Good practices. [In:] 2013 Sixth International Conference on Contemporary Computing (IC3), 2013, 404–409, DOI: 10.1109/IC3.2013.6612229.
8. Kozlowski K., Pazderski D., Krysiak B., Jedwabny T., Piasek J., Kozlowski S., Brock S., Janiszewski D., Nowopolski K., High precision automated astronomical mount. [In:] Conference on Automation, 2019, 299–315, Springer, DOI: 10.1007/978-3-030-13273-6_29.
9. Kozłowski S., Pazderski D., Krysiak B., Patelski R., Jedwabny T., Kozłowski K., Sybis M., SkyLab: Research
and development facility for ground based observations. „Ground-based and Airborne Telescopes VIII”, Vol. 11445, 2020, 1399–1408, SPIE, DOI: 10.1117/12.2576332.
10. Krysiak B., Pazderski D., Kozłowski S., Kozłowski K., High efficiencydirect-drivemountforspacesurveillanceandNEO applications. „Publications of the Astronomical Society of the Pacific”, Vol. 132, No. 1015, 2020, DOI: 10.1088/1538-3873/ab9cc5.
11. Marchiori G., Formentin F., Rampini F., Reliability-centered maintenance for ground-based large optical telescopes and radio antenna arrays. „Groundbased and Airborne Telescopes V”, Vol. 9145, 2014, 1346–1354, SPIE, DOI: 10.1117/12.2057593.
12. Sadeh I., Dezman D., Oya I., Pietriga E., Schwarz J., The Graphical User Interface of the Operator of the Cherenkov Telescope Array. [In:] Proc. of International Conference on Accelerator and Large Experimental Control Systems (ICALEPCS’17), Barcelona, Spain, 8-13 October 2017, 186–191. JACoW, 2018, DOI: 10.18429/JACoW-ICALEPCS2017-TUBPL06.
13. Story K., Leitch E., Ade P., Aird K., Austermann J., Beall J., Becker D., Bender A., Benson B., Bleem L., et al., South Pole Telescope software systems: control, monitoring, and data acquisition. „Software and Cyberinfrastructure for Astronomy II”, Vol. 8451, 2012, International Society for Optics and Photonics, DOI: 10.1117/12.925808.
14. Vallado D.A., Crawford P.S., Hujsak R., Kelso T.S., Revisiting Spacetrack Report #3. [In:] AIAA Astrodynamics Specialist Conference, 2006.
Artykuł przedstawia nowy system sterowania i komunikacji zaprojektowany w celu usprawnienia rozwoju i utrzymania zrobotyzowanego montażu teleskopu astronomicznego. Proponowane rozwiązanie umożliwia użytkownikowi zdalny dostęp do dowolnych sygnałów wewnątrz sterownika bez zwiększonego obciążenia podczas pracy systemu. Zaimplementowane rozwiązanie może być wykorzystywane zarówno przez automatyczny system nadzorujący, jak i przez użytkownika lub operatora, do nadzoru, sterowania i utrzymania urządzenia.
ORCID: 0000-0002-1675-4259
ORCID: 0000-0002-7301-5436
ORCID: 0000-0003-4260-9909
ORCID: 0000-0002-8732-7350
Pomiary Automatyka Robotyka, ISSN 1427-9126, R. 26, Nr 4/2022, 53–59, DOI: 10.14313/PAR_246/53
Streszczenie: W niniejszej publikacji zaproponowano metodę lokalizacji wizyjnej z wykorzystaniem obrazów z symulowanej kamery oraz mapy georeferencyjnej. Model BSP oraz symulacja lotu zostały wykonane w pakiecie MATLAB Simulink, który przesyłał dane dotyczące orientacji BSP do opisywanego programu. Wizualizacja obrazu z kamery została wykonana w czasie rzeczywistym przy pomocy oprogramowania FlightGear, której obraz również był przechwytywany przez program NW. Metoda ta realizowana jest przez dwa procesy w dwu modułach: Global Positioning Component oraz Motion Positioning Component. Pierwszy z nich porównuje obraz z symulowanej kamery z ortofotomapą. Drugi wyznacza pozycję na podstawie oceny przemieszczenia punktów charakterystycznych w obrazie w stosunku do ostatnio znanej lokalizacji. Wynik działania obu modułów ilustrowany jest w oknie graficznym aplikacji NW, co pozwala na wizualne porównanie uzyskanych wyników. W przypadku globalnej metody lokalizacji wymagana jest dodatkowa korekcja orientacji kamery w celu wyznaczenia pozycji w przestrzeni 2D. W tym celu wykorzystano dane dotyczące bieżącej orientacji kamery wyrażone w kwaternionach. Pozwoliło to na wprowadzenie poprawki pozycji, co znacząco poprawiło dokładność wyniku uzyskiwanego w module GPC mimo znacznych przechyleń BSP podczas symulowanego lotu.
Wprowadzenie
Nawigacja Bezzałogowych Statków Powietrznych (BSP) wykorzystuje do samolokalizacji głównie systemy satelitarne GNSS (ang. Global Navigation Satellite Systems). W sytuacji utraty łączności lub braku dostępu usługi GNSS sprawne pilotowanie statku bezzałogowego jest niemożliwe. Powstaje więc potrzeba zapewnienia bezpieczeństwa lotów i nieprzerwanej nawigacji przez wprowadzenie redundancji informacyjnej. Potrzeba ta wynika również z konieczności zmniejszenia
podatności systemu nawigacji satelitarnej na zakłócania czy oszustwa (ang. jamming/spoofing). Ze względu na oczekiwaną uniwersalność rozwiązania, preferowane są systemy nawigacji, których oprzyrządowanie jest lekkie i zajmuje niewiele miejsca a wykorzystujące je metody nawigacji nie potrzebują dodatkowej zewnętrznej infrastruktury.
Jednym z możliwych rozwiązań zapewnienia ciągłej nawigacji BSP, bez konieczności dodatkowej infrastruktury zewnętrznej, jest system lokalizacji wykorzystujący analizę obrazu pozyskiwanego z kamery pokładowej [1]. Takie systemy często wyposażone są w stabilizator elektromechaniczny, pozwalający na uzyskanie stabilnego obrazu z kamery w celu zniwelowania zniekształceń w obrazie. Autorzy artykułu [2] wykorzystali techniki głębokiego uczenia maszynowego. Do treningu sztucznej sieci neuronowej zastosowano wcześniej przygotowane zdjęcia lotnicze. Wytrenowana sieć identyfikowała charakterystyczne cechy w obrazie uzyskanym na żywo z kamery pokładowej zamontowanej na gimbalu.
Z kolei w publikacji [3] przedstawiono system, który nie wymaga stosowania stabilizatora. Składa się on z trzech głównych komponentów. Pierwszy komponent stosuje metodę VIO
(ang. Visual Inertial Odometry) do nawigacji względnej. Wykorzystuje ona metodę odometrii wizyjnej o nazwie VINS-Mono, która integruje urządzenie MIMU (ang. Micro Inertial Measurement Unit) i kamerę monokularową, aby oszacować stany ruchu kamery (np. pozycję, położenie i prędkość) i zrekonstruować pozycję 3D śledzonych cech. Drugi komponent porównuje obrazy z kamery pokładowej z ortofotomapami. Z obrazu lotniczego najpierw wyodrębniane są cechy mapy w trybie off-line za pomocą algorytmu SIFT (ang. Scale-Invariant Feature Transform) z biblioteki OpenCV. Następnie obraz z kamery jest obracany i skalowany w celu uzyskania podobnej orientacji i skali, jaką ma mapa z repozytorium off-line. Do tych transformacji wykorzystywany jest zwrot UAV oraz wysokość wyznaczona z zastosowaniem metody VIO. Charakterystyczne punkty są następnie porównywane z ortofotomapą. Do lokalizacji obiektu wykorzystywany jest algorytm PNP (Perspektywa-N-Punkt), który polega na oszacowaniu pozycji kamery, bazując na zestawie punktów 3D oraz odpowiadającym im rzutom 2D na obrazie. Ostatnim komponentem jest graf dokonujący fuzji danych (łączy on względne wyniki nawigacji z VIO z pozycjami geodezyjnymi pochodzącymi z ortofotomapy). Przeprowadzono walidację proponowanej metody. Kamera wraz z MIMU zostały sztywno przymocowane do korpusu UAV. Wykonano dwa loty w różnych środowiskach o nieznanych współrzędnych początkowych. Wyniki pokazują, że proponowana metoda może zapewnić dokładność lokalizacji z błędem pozycji mniejszym niż 4 m w locie na wysokości 100 m i błędem mniejszym niż 9 m w locie na wysokości 300 m.
W publikacji [4] opisano system łączący tradycyjne techniki widzenia komputerowego z sieciami głębokiego uczenia do porównania obrazu satelitarnego (referencyjnego) z obrazem pochodzącym z UAV (docelowego) na potrzeby lokalizacji. Parametrami wejściowymi są obraz z kamery, ortofotomapa
wraz z georeferencją oraz wstępną pozycją UAV. Moduł kalibracji odpowiada za wyodrębnienie obszaru ROI (ang. Region Of Interest) oraz wstępne wyznaczenie lokalizacji na podstawie poniższych równań. Przy pomocy równań (1) i (2) obliczane są współrzędne pikseli pixx, pixy określających położenie UAV, przy znanych współrzędnych geograficznych UAV: lon, lat, współrzędnych brzegowych obrazu: lon n, lat e, lat w, lon n oraz znanym wymiarze mapy: widthmin, widthmax, heightmin, heightmax. Wzory (3) i (4) służą do obliczenia współrzędnych geograficznych: lat, lon na podstawie współrzędnych na obrazie w pikselach: pixh, pixw. Proces odnajdywania punktów charakterystycznych jest realizowany tak, aby przetwarzanie klatek wideo odbywało się w czasie rzeczywistym. Porównano wynik działania algorytmów ORB, SURF i SIFT wyszukujących cechy charakterystyczne na obrazach. Stwierdzono, że metoda ORB jest szybsza od pozostałych, jednak charakteryzuje się mniejszą dokładnością dopasowania porównywanych dwu obrazów w przypadku zmiany skali jednego z nich.
Mniejsza dokładność dopasowania obrazów o różnych skalach powodowała spadek dokładności pozycjonowania UAV podczas zmiany jego wysokości. W celu eliminacji tego problemu zaimplementowano funkcję skalowania mapy na podstawie wysokości lotu. W kolejnym kroku wykorzystano wytrenowaną sieć UNet do semantycznej segmentacji obiektów. Sieć ta została wybrana ze względu na wysoką wydajność obliczeniową. Następnym krokiem była ocena podobieństwa wykrytych kształtów na obrazie z kamery pokładowej do tych wykrytych na mapie. Dopasowane kształty są stosowane do obliczania macierzy homografii [5] w celu zwiększenia dokładności pozycjonowania UAV.
Schemat pokazany na Rys. 1. przedstawia, opracowaną w ramach prowadzonych badań, koncepcję systemu nawigacji wizyjnej (NW). Podczas prawidłowego funkcjonowania lokalizacji satelitarnej autopilot PixHawk korzysta z jej danych do określenia swojego położenia geograficznego. Moduł Drone Component w sposób ciągły pobiera dane z autopilota PixHawk za pomocą protokołu MAVLink (ang. Micro Air Vehicle Link – protokół do komunikacji stosowany w pojazdach bezzałogowych). Następnie sprawdzany jest status danych podających lokalizację. Dzieje się to w bloku decyzyjnym oznaczonym na schemacie FIX status. W przypadku pozytywnego statusu (dane kompletne) dane z sensorów lokalizacyjnych zapisywane są w pamięci. W przypadku negatywnego statusu, dane przechowywane w pamięci przekazywane są do modułu GPC (ang. Global Positioning Component) oraz MPC (ang. Motion Positioning Component), natomiast znacznik czasu, w którym te dane zostały zarejestrowane przekazywany jest do Filtering component. Global Positioning Component wyznacza pozycję na podstawie porównania obrazu ze znaną mapą (przechowywaną w pamięci), natomiast Motion Positioning Component wyznacza pozycję na podstawie oceny przemieszczenia punktów charakterystycznych w obrazie w stosunku do ostatnio znanej lokalizacji. Pierwszy z nich wykorzystuje metody klasycznej analizy obrazu zaimplementowane w OpenCV oraz metody oparte na uczeniu maszynowym. Charakteryzuje się długim czasem przetwarzania obrazów oraz niewielkim błędem systematycznym wyniku. Drugi komponent (MPC) wykorzystuje algorytm Optical Flow, co przekłada się na krótszy czas realizacji obliczeń oraz większy błąd systematyczny. W celu uzyskania małego błędu systematycznego oraz dużej szybkości przetwarzania danych oba komponenty pracują równolegle. Wyznaczona w module Global Positioning Component lokalizacja przekazywana jest do Filtering component oraz Motion Positioning Component w celu aktualizacji pozycji odniesienia. Oba moduły korzystając z funkcji OpenCV, wyznaczają współczynnik ufności uzyskanego wyniku (ang. confidence). W kolejnym kroku moduł Filtering component, uwzględniając obliczone współczynniki ufności, określa pozycję oraz w odniesieniu do ostatniego znanego czasu, generuje pakiet danych zgodny ze standardem NMEA, który trafia do autopilota. Wyznaczona na podstawie danych wizyjnych lokalizacja jest również deponowana w module Drone Component w celu ponownego wykorzystania w przypadku braku dostępnych danych z systemów satelitarnych (dane z GNSS & Compass sensors).
3. Ortofotomapa
Składnikiem Global Positioning Component jest funkcja odpowiedzialna za wygenerowanie wycinka ortofotomapy w otoczeniu lokalizacji BSP z użyciem danych dotyczących całego
obszaru przechowywanego w pamięci. Początkowo dane dotyczące mapy stanowiły jeden plik o rozszerzeniu *.geotiff zawierający wybrany obszar o wysokiej rozdzielczości. W metadanych danego pliku znajdowały się również informacje na temat lokalizacji narożników mapy oraz stosowanego układu współrzędnych. Jednak ze względu na ograniczenia pamięci w przypadku otwierania dużych plików, zastosowano metodę podziału mapy znaną jako Slippy Map [14]. Jest to metoda stosowana powszechnie w mapach internetowych typu Google Maps [15] czy OpenStreetMap [16]. Pozwala ona na podzielenie ortofotomapy dużego obszaru na małe kafelki a następnie uporządkowanie ich w odpowiednich katalogach o nazwach związanych z rozdzielczością oraz podkatalogach o nazwach związanych z lokalizacją wzdłuż równoleżników. Nazwy plików graficznych *.png o rozdzielczości 256 × 256 pikseli skojarzone są z lokalizacją wzdłuż południków. Na podstawie wysokości BSP, pobranej przez Drone Component, możliwe jest obliczenie GSD (ang. Ground Sampling Distance), co pozwala na dobranie właściwej rozdzielczości mapy. Pobrana lokalizacja geograficzna determinuje wybór odpowiednich katalogów oraz plików zawierających ortofotomapy w otoczeniu danej lokalizacji. Tak uporządkowany system pozwala na wczytanie minimalnej ilości danych, co przekłada się na mniejsze obciążenie pamięci oraz na szybkość działania.
W celu pozyskania filmów, obrazujących nagrania z kamery wideo zbierane w trakcie lotu BSP, wykorzystano otwarty źródłowy symulator FlightGear [17] Wybór ten został podyktowany możliwością integracji z oprogramowaniem MATLAB Simulink, w którym możliwe jest zaimplementowanie różnych modeli latających, co opisano między innymi w publikacji [6]. W przyszłości pozwoli to na testowanie opracowywanej nawigacji na różnych platformach powietrznych – zarówno załogowych, jak i bezzałogowych.
Poniżej przedstawiono wizualizację funkcjonowania systemu dla przelotu z kamerą, której oś optyczna skierowana jest prostopadle do płaszczyzny ziemi. Dla tego przypadku, wspomniany wcześniej komponent GPC prawidłowo określa pozycję BSP, ponieważ obraz z kamery stanowi prostokątny wycinek mapy, a geometryczny środek tego prostokąta – lokalizację BSP w rzucie na tę mapę. Wizualizacja została podzielona na cztery części: obraz w prawym górnym rogu – widok z kamery z zaznaczonymi punktami charakterystycznymi algorytmu Optical Flow, poniżej – wycinek mapy z zaznaczonym rzutem pola widzenia kamery oraz trajektoriami lotu BSP, lewy dolny róg – parametry wykorzystane do obliczeń wraz z wyznaczoną lokalizacją geograficzną, obraz po prawej – cała wczytana mapa z zaznaczonym wycinkiem obszaru wokół BSP, polem widzenia kamery oraz wyznaczonymi trajektoriami lotu.
Trudniejszym zadaniem jest porównanie obrazów uzyskanych pod różnymi kątami widzenia. Kąt widzenia nie tylko zmienia geometrię obrazu, lecz również wpływa na nierównomierności w rozkładzie rozdzielczości w danym widoku. W pracy skupiono się na geometrycznym wyznaczeniu lokalizacji podczas wychylenia BSP względem poziomu (rys. 2). Ma to na celu uniknięcie potrzeby stosowania stabilizowanej mechanicznie głowicy optycznej, co znacznie zmniejsza masę i objętość systemu, oraz zapewnia większą niezawodność dzięki minimalizacji elementów ruchomych. Na potrzeby przedstawionego zadania wygenerowano symulację przelotu BSP ze zmiennymi wychyleniami do 30° względem płaszczyzny ziemi. Na rys. 3 pokazano wizualizację działania systemu bez korekcji kąta wychylenia.
Wyznaczona lokalizacja przez Global Positioning Component znacząco odbiega od prawidłowej, wyznaczonej przez GNSS.
Rys. 2. Wizualizacja funkcjonowania systemu; niebieski – rzeczywista trajektoria lotu BSP, żółty – trajektoria wyznaczona przez moduł MPC, czerwony – trajektoria oraz rzut pola widzenia kamery na mapę 2D – wynik algorytmu GPC (Źródło: opracowanie własne)
Fig. 2. Visualization of the system functioning; blue – the actual UAV flight trajectory, yellow – the trajectory determined by the MPC module, red – the trajectory and the projection of the camera’s field of view onto the 2D map – the result of the GPC algorithm (Source: own study)
Spowodowane jest to brakiem kompensacji kąta wychylenia dla wyznaczanej pozycji.
Na podstawie dopasowanych punktów źródłowych na obrazie wideo do odpowiadających im na mapie, zostaje wyznaczona macierz homografii H [5], która zawiera pozycję i orientację kamery. Do jej wyznaczenia zastosowano metodę RANSAC (ang. RANdom SAmple Consensus), która wymaga co najmniej
czterech, niewspółliniowych punktów charakterystycznych. Za pomocą macierzy H rzutującej punkty płaszczyzny kamery na płaszczyznę mapy oraz przy uwzględnieniu wymiarów obrazu wideo wyznaczane są punkty czworokąta, który reprezentuje pole widzenia kamery na płaszczyźnie mapy. Jeśli oś optyczna kamery jest skierowana prostopadle w kierunku ziemi, rzutowane pole widzenia jest prostokątem o długościach boków w proporcji adekwatnej do wymiarów sensora kamery. Położenie centroidu L (punktu określającego geometryczny środek figury) wyznaczonego prostokąta odpowiada rzutowi prostopadłemu punktu lokalizacji BSP na mapę 2D.
Rys. 3. Symulacja funkcjonowania systemu w przypadku zmiennych wychyleń BSP – pitch, roll, yaw [7] w zakresie od 0° do 30° względem układu NED, którego początek związany jest z lokalizacją BSP; GPC –czerwony, GNSS – niebieski (Źródło: Opracowanie własne)
Fig. 3. Simulation of the system operation in the case of variable BSP deflections – pitch, roll, yaw [7] in the range from 0° to 30° in relation to the NED system, the beginning of which is related to the BSP location; GPC –red, GNSS – blue (Source: Own study)
Rys. 4. Wizualizacja wyznaczania lokalizacji za pomocą centroidu L prostokąta stanowiącego rzut pola widzenia kamery na płaszczyznę mapy, gdy oś optyczna kamery jest skierowana prostopadle w kierunku ziemi (Źródło: Opracowanie własne)
Fig. 4. Visualization of determining the location using the centroid L of a rectangle constituting the projection of the camera’s field of view onto the map plane, when the optical axis of the camera is directed perpendicularly towards the ground (Source: Own study)
W przypadku zmiany kąta Φ osi optycznej kamery względem ziemi występuje zniekształcenie obrazu – kamera obejmuje szerszy obszar ziemi w kierunku, w którym nastąpiła zmiana kąta. Przy znacznym wychyleniu płaszczyzny kamery względem płaszczyzny ziemi, pole widzenia kamery nie obejmie obszaru na którym znajduje punkt lokalizacyjny L. Powo duje to konieczność wprowadzenia korekcji lokalizacji w zależności od kąta Φ.
Przy transformacji współrzędnych uwzględnia się trzy układy współrzędne o oznaczeniach: −NED – (ang. Nord East Down), układ o niezmiennej orientacji względem mapy, o początku związanym z poruszającym się w przestrzeni BSP. W tym układzie oś X skierowana jest na północ, oś Y na wschód, a oś Z w dół; BSP – układ związany ze statkiem powietrznym o początku pokrywającym się z początkiem układu NED lecz o orientacji zmieniającej się względem NED zgodnie z obrotami roll, pitch oraz yaw statku powietrznego BSP; MAP – układ, którego orientacja oraz pozycja jest na stałe związana z mapą.
Do testowania opracowanej metody wykorzystano model platformy BSP sprzężony z kamerą, opracowany z wykorzystaniem pakietu MATLAB Simulink. Jednym z parametrów wyjściowych modelu jest orientacja kamery względem układu
(6)
Osie układu współrzędnych nieobróconej kamery pokrywają się z osiami układów NED i BSP, natomiast wektor orientacji BSPP camera kamery w układzie BSP wyrażony jest jako: ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
⎡ = 1 0 0 0 camera BSP P (7)
Wynikiem działania (6) jest kwaternion NEDp’: ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ = ′ p NED p NED p NED NED z y x p
⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
0 (8)
Rys. 5. Pole widzenia kamery; DC, DM oraz DF to najbliższa, środkowa oraz najdalsza odległość w polu widzenia kamery, natomiast h to wysokość BSP nad ziemią; RC, RM oraz RF to odległości między dolną, środkową a górną częścią pola widzenia kamery (a). Rzut pola widzenia kamery na płaszczyznę mapy. Krawędź WC znajduje się bliżej kamery (b) (Źródło [8]
Fig. 5. Camera field of view; DC, DM and DF are the closest, middle and farthest distance in the field of view of the camera, while h is the UAV height above the ground; RC, RM, and RF are the distances between the lower, middle, and upper parts of the camera’s field of view (a). Projection of the camera’s field of view onto the map plane. The edge of the toilet is closer to the camera (b) (Source [8])
MAP wyrażona kwaternionem MAPq. Jest on reprezentowany przez cztery elementy wskazane w (5), gdzie q0, q1, q2, q3 są liczbami rzeczywistymi, natomiast i, j i k są wzajemnie ortogonalnymi wektorami jednostkowymi osi układu MAP.
q = q0 + iq1 + jq2 + kq3 (5)
Każdy pojedynczy obrót wokół pewnego wektora opisany jest przez kwaternion jednostkowy, natomiast podwójny obrót – przez pomnożenie kwaternionów jednostkowych. Kwaternion sprzężony q * reprezentuje obrót przeciwny do danego co jest reprezentowane przez zmianę znaku części wektorowej kwaternionu: q* = q0 – iq1 – jq2 – kq3. Aby wyznaczyć kwaternion NEDp’ obrotu kamery zamocowanej na BSP, względem układu NED należy pomnożyć: kwaternion orientacji BSPq kamery w układzie BSP, wektor NEDP camera stanowiący oś obrotu układu BSP względem NED oraz kwaternion sprzężony BSPq* orientacji kamery.
z którego współrzędne wektora NEDx p, NEDyp, NEDz p wskazują kierunek oraz zwrot osi optycznej kamery w układzie NED. Rzutowane są one na płaszczyznę mapy 2D w postaci współrzędnych MAPx m oraz MAPym, przy uwzględnieniu wysokości h: h z x x p NED p NED m MAP = (9) h z y y p NED p NED m MAP = (10)
Wartości współrzędnych MAPx m oraz MAPy m, stanowiące punkt przecięcia się osi optycznej kamery z płaszczyzną mapy 2D, odejmowane są od współrzędnych wyznaczonego przez komponent GPC centroida L. Pozwala to na uwzględnienie orientacji kamery podczas wyznaczania rzeczywistego położenia BSP.
Na rysunku 6 porównano trajektorie wyznaczonej lokalizacji za pomocą komponentu GPC, bez uwzględnienia orientacji kamery, oraz z jej uwzględnieniem w stosunku do rzeczywistej trajektorii wyznaczonej przez moduł GNSS. Dla przeprowadzonej symulacji wykazano znaczącą poprawę dokładności pozycjonowania. Dalsze prace będą polegały na
wyznaczeniu maksymalnych wychyleń BSP przy zachowaniu zadowalających wyników.
6. Wnioski
Poprzednie prace [1, 9] dotyczyły opisu metody nawigacji wizyjnej przy założeniu, że oś optyczna kamery jest zawsze prostopadła do płaszczyzny terenu. Sytuacja taka dotyczy układu wykorzystującego gimbal (stabilizator elektromechaniczny). Stabilizuje on orientację kamery ale znacząco zwiększa stopień skomplikowania konfiguracji sprzętowej. W pracy skupiono się na geometrycznym wyznaczeniu lokalizacji BSP z uwzględnieniem zmian orientacji kamery BSP względem układu NED, a tym samym względem układu odniesienia mapy. Pokazano, że podczas odchylenia osi optycznej kamery od osi prostopadłej do płaszczyzny ziemi, lokalizacja wyznaczona przez algorytm GPC zawiera błąd, który może zostać skompensowany przez uwzględnienie zmiennej orientacji kamery. W tym celu wykorzystano kwaternion orientacji kamery pochodzący z modelu zaimplementowanego w programie MATLAB Simulink. Uwzględnienie orientacji kamery znacząco poprawiło dokładność wyznaczania lokalizacji (rys. 6). Przyszłe prace będą skupiały się na wykorzystaniu danych z żyroskopu autopilota do stabilizacji obrazu. Pozwoli to na przeprowadzenie testów na rzeczywistej platformie nieposiadającej stabilizatora. Planowane są również prace związane z wykorzystaniem kamer zdarzeniowych do wykrywania punktów charakterystycznych wymaganych jako dane w module MPC. Pozwoli to osiągnąć nie tylko wystarczającą do samonawigacji dokładność wyznaczania pozycji geograficznej, ale i odpowiednią częstotliwość generowania wyniku w celu zapewnienia całkowitej redundancji modułu GNSS.
1. Pogorzelski T., Zielińska T., Vision Based Navigation Securing the UAV Mission Reliability, [In:] Automation 2022: New Solutions and Technologies for Automation, Robotics and Measurement Techniques, AISC, Vol. 1427, 2022, 251–263, DOI: 10.1007/978-3-031-03502-9_26.
2. Mughal M.H., Khokhar M.J., Shahzad M., Assisting UAV Localization via Deep Contextual Image Matching,
“IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing”, Vol. 14, 2021, 2445–2457, DOI: 10.1109/JSTARS.2021.3054832.
3. Mao J., Zhang L., He X., Qu H., Hu X., Precise Visual-Inertial Localization for UAV with the Aid of A 2D Georeferenced Map, arXiv, 2021, DOI: 10.48550/arXiv.2107.05851.
4. Nassar A., Amer K., ElHakim R., ElHelw M., A Deep CNN-Based Framework For Enhanced Aerial Imagery Registration with Applications to UAV Geolocalization, [In:] IEEE/ CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), 2018, DOI: 10.1109/CVPRW.2018.00201.
5. Ivashechkin M., Barath D., Matas J., USACv20: robust essential, fundamental and homography matrix estimation, arXiv, 2021, DOI: 10.48550/arXiv.2104.05044.
6. Welcer M., Szczepański C., Krawczyk M., The Impact of Sensor Errors on Flight Stability, „Aerospace”, Vol. 9, No. 3, 2022, DOI: 10.3390/aerospace9030169.
7. Kowalik R., Łusiak T., Novak A., A Mathematical Model for Controlling a Quadrotor UAV, „Transactions on Aerospace Research”, Vol. 2021, No. 3, 2021, 58–70, DOI: 10.2478/tar-2021-0017.
8. Burke C., Rashman M., Wich S., Symons A., Theron C., Longmore S., Optimising observing strategies for monitoring animals using drone-mounted thermal infrared cameras, „International Journal of Remote Sensing”, Vol. 40, No. 2, 2019, 439–467, DOI: 10.1080/01431161.2018.1558372.
9. Pogorzelski T., Majek K., Onboard to Satellite Image Matching for Relocalization of the UAVs, [In:] Proceedings of the 3rd Polish Conference on Artificial Intelligence, 2022, 25–27.
10. Babinec A., Apeltauer J., On accuracy of position estimation from aerial imagery captured by low-flying UAVs, „International Journal of Transportation Science and Technology”, Vol. 5, No. 3, 2016, 152–166, DOI: 10.1016/j.ijtst.2017.02.002.
11. Fellner A., Konieczka R., Rotorcraft in the performance based navigation international civil aviation organization implementation, “Transactions on Aerospace Research”, Vol. 2019, No. 1, 2019, 53–64, DOI: 10.2478/TAR-2019-0005.
12. Rose D., Rotation Quaternions, and How to Use Them, 2015. [On-line] https://danceswithcode.net/engineeringnotes/quaternions/quaternions.html.
13. Craig J.J., Introduction to Robotics, Pearson Education Limited, 2014.
14. Slippy map tilenames, [On-line] https://wiki.openstreetmap. org/wiki/Slippy_map_tilenames.
15. Google, Google Maps, Alphabet, [On-line] www.google.pl/ maps/.
16. Coast S., Open Street Map, OpenStreetMap Foundation, [On-line] www.openstreetmap.org.
17. FlightGear, [On-line], https://www.flightgear.org/.
Abstract: This publication proposes a visual localization method using images from a simulated camera and a georeferenced map. The UAV model and flight simulation were made in the MATLAB Simulink package, which sent UAV orientation data to the described program. The visualization of the camera image was performed in real time using the FlightGear software, the image of which was also captured by the NW program. This method is performed by two processes in two modules: Global Positioning Component and Motion Positioning Component. The first one compares the image from the simulated camera with the orthophotomap. The second determines the position based on the assessment of the displacement of characteristic points in the image in relation to the last known location. The result of the operation of both modules is illustrated in the graphic window of the NW application, which allows for a visual comparison of the obtained results. With the global method of location, additional camera orientation correction is required to determine the position in 2D space. For this purpose, data on the current camera orientation expressed in quaternions were used. This allowed for the introduction of a position correction, which significantly improved the accuracy of the result obtained in the GPC module despite significant UAV tilts during the simulated flight.
Keywords
ORCID: 0000-0002-8299-0727
ORCID: 0000-0002-8299-0727
Pomiary Automatyka Robotyka, ISSN 1427-9126, R. 26, Nr 4/2022, 61–67, DOI: 10.14313/PAR_246/61
W artykule przedstawiono projekt i realizację bezzałogowego pojazdu podwodnego o napędzie hybrydowym. Pojazd może być sterowany zdalnie w pozycji nawodnej, jak również posiada możliwość przemieszczenia podwodnego do wskazanego rejonu w celu przeprowadzenia rozpoznania oraz ataku poprzez detonację przenoszonego ładunku lub autodestrukcję. W artykule przedstawiono projekt i wykonanie konstrukcji mechanicznej, warstwy sprzętowej, programowej oraz wnioski wynikające ze wstępnych badań w basenie laboratoryjnym i w środowisku morskim.
Wprowadzenie
Bezzałogowe pojazdy podwodne stanowią ważny element ochrony i monitorowania podwodnej infrastruktury technicznej. Pojazdy takie mogą być również wykorzystane do inspekcji kadłubów jednostek pływających, obszarów przeznaczonych pod budowę morskich farm wiatrowych, wspierania specjalistycznych prac podwodnych oraz do prowadzenia i wspierania morskich akcji ratunkowych.
Aktualnie znanych jest wiele pojazdów o konstrukcji torpedopodobnej, a także kształtami przypominających żywe organizmy morskie [2–4]. W zależności od konstrukcji kadłuba, stosowane są napędy z jednym lub kilkoma pędnikami. Wśród pędników wyróżnia się konstrukcje przetwarzające ruch obrotowy lub oscylacyjny na siłę naporu [5].
Główne trendy rozwojowe bezzałogowych technologii morskich, takich jak bezzałogowe pojazdy nawodne i podwodne, przedstawiono w artykule [1]. Wśród trudności w projektowaniu pojazdów podwodnych należy wymienić ograniczenia środowiska wodnego w propagacji fal elektromagnetycznych, co eliminuje większość znanych z pojazdów lądowych lub statków powietrznych systemów pozycjonowania [6] lub komunikacji [7]. Z powodu trudności w autonomizacji pojazdów podwodnych szeroko stosowane są pojazdy zdalnie sterowane ROV (ang. Remotely Operated Vehicle). Pojazdy autonomiczne AUV (ang. Autonomous Underwater Vehicle) wykorzystują do nawigacji
i kontroli położenia przestrzennego systemy hydroakustyczne [8], logi [9], sonary [10], czujniki głębokości, systemy wizyjne [11] oraz czujniki inercyjne.
Prezentowany w artykule pojazd jest wyposażony w napęd hybrydowy, który łączy w sobie zalety pędników falowych i obrotowych. Pędniki obrotowe stanowią napęd główny pojazdu, natomiast napęd falowy wykonany jest z elastycznego tworzywa sztucznego w kształcie płetwy, co umożliwia dodatkowo regulację i utrzymanie głębokości zanurzenia. Pojazd został opracowany w ramach konkursu Ministra Obrony Narodowej, w którym szczególną uwagę zwrócono na wytrzymałość konstrukcji [20], zapewnienie wysokiej autonomiczności energetycznej oraz parametry eksploatacyjne. Istotnym parametrem jest również możliwość modyfikacji pojazdu podnoszącej jego autonomiczność i utylitarność.
Kolejne podrozdziały artykułu zawierają projekt pojazdu wraz ze schematem części sprzętowej i programowej, wyniki realizacji modelu fizycznego oraz zdjęcia z testów w basenie i w środowisku morskim.
2. Projekt pojazdu
Kadłub pojazdu składa się z korpusu oraz dwóch elementów zamykająco-uszczelniających. Główny element konstrukcyjny wykonany jest rury aluminiowej o średnicy 200 mm, długości 1000 mm oraz grubości ścianki równej 5 mm. Stosunek całkowitej długości do średnicy pojazdu wynosi 6:1. Takie rozwiązanie zapewnia minimalizację oporu hydrodynamicznego [12], sztywność konstrukcji, wodoszczelność, jak i odporność na uszkodzenia mechaniczne podzespołów elektronicznych umieszczonych wewnątrz. Metalowa konstrukcja chroni przed szkodliwymi czynnikami zewnętrznymi i wypromieniowuje ciepło podzespołów elektronicznych. Korpus pojazdu został zamknięty obustronnie denkami (Rys. 1).
Połączenie elementów realizowane jest poprzez dopasowanie kanałów uszczelnień metodą skrawania precyzyjnego elementów
wciskowych. Uszczelnienie stanowią podwójne zespoły oparte na o-ringach. Denko przednie (Rys. 1) stanowi bazę montażową dla zespołu płetw (nr 2 na Rys. 2), czujników oraz pozostałych elementów elektronicznych (nr 2 na Rys. 1). Układ napędowy płetw przedstawiony jest na Rys. 1. W celu zapewnienia łatwego i szybkiego serwisu, większość podzespołów zainsta-
Rys. 1. Model denka przedniego: 1 – przeniesienie napędu płetw przednich, 2 – otwory na czujnik ciśnienia, odpowietrznik i włącznik główny, 3 – kanały uszczelnień, 4 – serwomechanizmy Dynamixel AX 18A
Fig. 1. Model of the front cap: 1 – transmission of the side fin drive, 2 – holes for the pressure sensor, air vent and main power switch, 3 – sealing channels, 4 – Dynamixel AX 18A servos
Rys. 3 Kadłub przed malowaniem oraz wyposażenie wewnętrzne pojazdu Fig. 3. The hull before painting and the interior parts of the vehicle
Rys. 2. Model CAD bezzałogowego pojazdu podwodnego: 1 – pędniki główne, 2 – pędniki boczne, 3 – korpus główny, 4 – osłona denka przedniego, 5 – kamera, 6 – antena Wi-Fi, 7 – kiosk z modułem GPS Fig. 2. Design of the unmanned underwater vehicle: 1 – main propulsors, 2 – side propellers, 3 – the hull, 4 – front bottom cover, 5 – camera, 6 – Wi-Fi antenna, 7 – dome with GPS antenna
lowano w przedniej części pojazdu i zintegrowano z denkiem przednim. Wysunięcie korpusu pojazdu zapewnia łatwy dostęp do elementów wykonawczych i sterujących, zapewniając jednocześnie pełną funkcjonalność pojazdu w czasie dalszych modernizacji.
W tylnej części pojazdu zamontowano zespół napędu głównego wyposażony w dwa pędniki obrotowe (nr 1 na Rys. 2). Tylna oraz przednia część kadłuba zostały wyprofilowane w celu minimalizacji oporu hydrodynamicznego. Przednia część pojazdu dodatkowo osłania mechanizmy przeniesienia napędu płetw, czujnik głębokości, włącznik pojazdu oraz elektryczne złącza diagnostyczne.
Zanurzenie pojazdu realizowane jest zmianą kąta natarcia płetw poprzez skierowanie generowanego przez płetwy wektora naporu, aby zmienić w ten sposób wypadkową siłę naporu generowaną przez układ napędowy. Zmiana kursu pojazdu realizowana jest przez zamianę naporu generowanego przez pędniki główne (tylne).
W celu zapewnienia zakładanego, 12-godzinnego ciągłego czasu pracy, zastosowano zespół trzech niezależnych od siebie akumulatorów o łącznej pojemności 48 Ah. Bazując na platfor-
mie komputerowej Raspberry Pi model 4B opracowano układ wykonawczo-integrujący oparty na systemie operacyjnym Linux. Aplikacja sterująca ma następujące funkcje: komunikacja w standardzie Wi-Fi ze stacją brzegową (operatorem) w celu transmisji rejestrowanych danych, np. obraz z kamery, parametry od czujników; ciągła rejestracja obrazu z kamery do pamięci układu wykonawczego; sterowanie trajektorią pojazdu zgodnie z instrukcjami wysyłanymi w czasie rzeczywistym; −powrót pojazdu do zadanego punktu w przypadku niepowodzenia misji; −odczyt oraz rejestracja parametrów czujników, takich jak: IMU, kompas elektroniczny, czujnik głębokości, czujnik zalania, czujnik temperatury, czujnik ciśnienia. Dokładne parametry w/w czujników i sensorów zamieszczono w Tabeli 2, schemat połączeń zaprezentowano na Rys. 4.
W Tabeli 1 przedstawiono główne parametry eksploatacyjne otrzymane podczas testów i pomiarów. Zasięg transmisji nawodnej zależny jest od mocy naziemnej stacji Wi-Fi. Zastosowana w pojeździe antena ma możliwość ręcznej zmiany położenia z pionowego na poziomy, a także może być zamocowana na
Tab. 1. Parametrami technicznymi pojazdu
Tab. 1. Technical parameters
Nazwa REBA
Wymiary1500 × 200 × 220 mm
Masa35 kg
Prędkość maksymalna2,5 m/s
Tryby pracyzdalny, półautonomiczny
Ciągły czas pracy na jednym ładowaniu12 h Maksymalny zasięg transmisji nawodnej120 m
Zanurzeniedo 15 m
Masa przenoszenia ładunkudo 15 kg
Komputer sterujący Raspberry PI 4B
ZasilanieGENS ACE Akumulator LiPo Tattu 16 000 mAh 22,2 V 30C
Napęd tyłThrusters T200 (2 szt.)
Napęd przódDynamixel AX-18 A (2 szt.)
Tab. 2. Zastosowane sensory i ich parametry
Tab. 2. Used sensors and their parameters
PodzespółNazwaParametry
Czujnik orientacjiVectorNAV VN100T 3-osiowy, zakres żyroskopu ±2000°/s, częstotliwość 800 Hz, napięcie 5 V, moc 220 mW
Moduł GPSNEO-M9N 92-kanałowy odbiornik GNSS, dokładność 1,5 m, max. częstotliwość aktualizacji: 25 Hz (4 jednoczesne GNSS), dokładność prędkości: 0,05 m/s
Czujnik ciśnienia BlueRobotics BAR30 I2Cnapięcie 3,3 V, zanurzenie do 300 m
Czujnik temperaturySHT31zakres pomiarowy: od –40 °C do 125 °C, dokładność: ± 0,3 °C
Czujnik zalaniaBlueRobotics Leak Sensorzasilanie 5 V, pobór prądu 20 mA
KameraKamera IMX477 12,3MPx HQ sensor: IMX477, rozdzielczość: 4056 px × 3040 px, 12,3 MPx wymiary piksela: 1,55 μm × 1,55 μm, przysłona: F 1,4 Obiektyw6mm CS-Mount format: 1/2,3”, ogniskowa: 6 mm, przysłona: F 1,4, kąt widzenia: 65° montaż: CS-Mount, tylna ogniskowa: 12,5 mm
Moduł sterującyBasic ESCnapięcie pędnika 7–26 V, pobór prądu pędnika do 30 A, napięcie PWM 5 V Łączność
Tp-Link TL-CPE210 procesor: Procesor Qualcomm Atheros 560 MHz, MIPS 74Kc, pamięć: 64 MB DDR2 RAM, 8 MB Flash, moc transmisji: 27 dBm/500 mW
Moduł oświetleniaMatryca LED RGB 5 × 5 I2Cnapięcie 5 V
pływaku i połączona z pojazdem elastycznym przewodem. Takie rozwiązanie stosowane było m.in. w pojeździe przedstawionym w artykule [13]. Zasadniczym trybem pracy pojazdu jest autonomiczna realizacja misji zaplanowanej przez operatora poprzez wyznaczenie i wskazanie koordynatów przebytej trasy na mapie. Do planowania misji i kontroli pojazdu służy stacja operatora z wdrożoną dedykowaną aplikacją. W położeniu nawodnym operator może w pełnym stopniu kontrolować pojazd z poziomu systemu operacyjnego poprzez połączenie Wi-Fi.
Masa przenoszonego ładunku została wyznaczona na podstawie dodatkowej masy dodanej do wnętrza pojazdu w celu zapewnienia zakładanej (lekko dodatniej) pływalności, zależnej od parametrów środowiskowych (gęstości wody).
Część programistyczna została zaimplementowana, poprzez wykorzystanie środowiska programistycznego Python oraz dostępnych bibliotek [17–20]. Platforma sprzętowa umożliwia integrację przez oprogramowanie sterowania pojazdu z czuj-
nikami oraz systemem wizyjnym. Funkcje komputera nadrzędnego pełni jednopłytowy minikomputer Raspberry PI 4B bazujący na układzie Broadcom BCM 2711 z 64-bitowym procesorem quad-core 64 ARM-8 Cortex-A72 o taktowaniu 1,5 GHz. Do realizacji zagadnień dotyczących sekcji programowej wykorzystano język programowania Python, umożliwiający zarówno programowanie obiektowe, strukturalne jak i funkcyjne. Wielowątkowość umożliwia zaimplementowanie dwóch głównych trybów pracy pojazdu. Pierwszy z nich umożliwia sterowanie pojazdem w pozycji nawodnej za pomocą kontrolera: program odczytuje dane z urządzenia sterującego, a następnie za pomocą specjalnej depeszy wysyła impuls sterujący do pędników, których charakterystyka w funkcji prędkości obrotowej i napięcia zasilania została przedstawiona na Rys. 5. Pojazd może pracować w dwóch podstawowych trybach, zdalnym oraz półautonomicznym. W trybie zdalnym operator posiada pełną kontrolę nad sterowanym pojazdem za pomocą dedykowanego kontrolera, ponadto może dostosować prędkość do aktualnych warunków atmosferycznych czy rodzaju misji.
Rys. 5 Charakterystyki pędników T200 w funkcji prędkości obrotowej i napięcia zasilania [16] Fig. 5. T200 Thruster Performance [16]
Rys. 7. Podgląd obrazu wizyjnego podczas realizacji zadań nawodnych Fig. 7. Preview of the image during the execution of tasks on the water surface
Podgląd obrazu z kamery realizowany jest w czasie rzeczywistym. Operator odbiera na bieżąco depesze sensoryczne, informujące o temperaturze, ciśnieniu, współrzędnych geograficznych, położeniu przestrzennym, składowych prędkości oraz zużyciu energetycznym.
Wielowątkowość umożliwiła integrację systemów wykonawczych i sterujących, co pozwoliło na wdrożenie trybu pół-autonomicznego, odpowiedzialnego za realizację misji podwodnej. Operator wyznaczając punkty przejścia, programuje trasę, głębokość oraz prędkość pojazdu, następnie definiuje interwał dokładności – czyli czas, w jakim pojazd będzie się wynurzał –w celu odczytania danych położenia i skorygowania toru przejścia. W tym trybie programowane jest również działanie kamery, która może rejestrować obraz w trybie ciągłym lub w sposób zdefiniowany, np. tylko przy wynurzeniu lub na danej głębokości. Po osiągnięciu zadanego punktu realizowany jest dalszy cel misji, np. rozpoznanie poprzez rejestrację wideo czy samodestrukcję.
Układ wykonawczy oraz sensory zasilane są niezależnie jednym z trzech zamontowanych na pojeździe akumulatorów. Pojemność bazowa wynosi 16 Ah, akumulator jest odseparowany od zasilania układów sterujących (Rys. 4). W przypadku awarii układu sterowania takie rozwiązanie pozwala na utrzymanie wymiany informacji pojazdu ze stacją bazową, ponadto pojazd ma możliwość zbierania danych sensorycznych oraz ciągłej rejestracji obrazu z kamery, nawet do 35 godzin (uzależnione od pojemności przestrzeni dyskowej komputera wykonawczego). Pozostałe dwa akumulatory bezpośrednio zasilają pędniki oraz serwomechanizmy płetw.
System wizyjny realizowany jest za pomocą kamery ArduCam OV5647 z sensorem OV5647 umieszczonej wewnątrz szczelnie zamkniętego kiosku. Kamera wyposażona jest w system motorycznego ustawiania powiększenia i ostrości, co poprawia jakość pracy podczas przemieszczania się pojazdu. Urządzenie
wyposażone jest w matrycę o rozdzielczości 5 Mpx oraz wspiera tryb 1080 px/30 fps. Dodatkowo moduł kamery został wyposażony w obiektyw LS-2718 CS mount o parametrach: ogniskowej 4 mm oraz kącie widzenia równym 93°. Ponadto przesłona 1,4 z formatem 1/2,5” pozwala na nagrywanie całego obszaru roboczego znajdującego się przed pojazdem. Zastosowanie wymienionej przesłony generuje obraz dobrej jakości, zarówno w pełnym słońcu, jak i o zmroku [14]. Taki zestaw łączy się z platformą sprzętową za pomocą dedykowanej taśmy FFC/ FPC. Za realizację podglądu w czasie rzeczywistym (Rys. 7) odpowiada serwer sieciowy RPI-Cam-Web. Interfejs użytkownika umożliwia kontrolę ustawienia kamery za pomocą skryptu przeglądarkowego. Interfejs wykorzystywany jest do podglądu obrazu w czasie rzeczywistym oraz współpracuje z dystrybucją systemów Linux, dzięki czemu jest możliwość elastycznego dopasowania możliwości jego programowania. W zależności od panujących warunków, pory dnia, operator ma możliwość definiowania jasności, kontrastu oraz nasycenia obrazu.
Na Rys. 8 przedstawiono zdjęcia modelu fizycznego pojazdu wykonane w basenie laboratoryjnym, kolejno od lewej burty (a), od dziobu (b) oraz od rufy (c). Konstrukcja przedniej kopuły zapewnia opływowy kształt pojazdu i jednocześnie zabezpiecza mechanizm płetw. Kopuła, kiosk oraz stelaż tylnego napędu zostały wykonane z polilaktydu z wykorzystaniem metody druku 3D o zwiększonych parametrach wytrzymałościowych z przeznaczeniem dla środowiska morskiego. Zespolenie kiosku oraz anteny zostało zrealizowane metodą precyzyjnego dopasowania i wykończenia oraz za pomocą warstwy neutralnego silikonu i kleju termicznie aktywowanego. Oświetlenie i kamera systemu wizyjnego zostały zespolone z kioskiem wyłącznie klejem aktywowanym termicznie.
Testy w środowisku morskim pozwoliły na weryfikację szczelności kadłuba, zakładanej (lekko dodatniej) pływalności oraz stabilności położenia pojazdu. Ponadto umożliwiły sprawdzenie pojazdu w rzeczywistych, niekorzystnych warunkach przy falowaniu do stanu morza 5 stopni skali Beauforta (Rys. 9b). Przeprowadzone testy pozwoliły zweryfikować długotrwałość autonomiczności energetycznej pojazdu oraz podstawowe parametry eksploatacyjne, w tym prędkość przemieszczania
Rys. 6. Planowanie misji podwodnej Fig. 6. Planning of an underwater missionb) c)
Rys. 8. Zdjęcia modelu fizycznego pojazdu w basenie, widok od: a) lewej burty, b) części czołowej, c) rufy Fig. 8. Images of the physical model of the vehicle in the pool, the view from: a) the left stern, b) the frontal part, c) the stern
się dla zadanych parametrów sterujących zespołu napędowego. Prędkość przemieszczania z maksymalną prędkością wynosi 2,5 m/s, przy zakładanych parametrach żywotność pracy pojazdu na jednym ładowaniu wynoszącym 12 godzin. Dzięki regulowanej mocy oraz zastosowaniu szerokiego rozstawu pędników otrzymano manewrowość pojazdu, którego promień skrętu jest mniejszy niż jeden metr, zapewnia to możliwość szybkiej i precyzyjnej zmiany położenia. Łączność bezprzewodowa w położeniu nawodnym pozwala na sterowanie pojazdem w czasie rzeczywistym, rejestrację obrazu wizyjnego oraz zbieranie danych sensorycznych na dystansie do 120 m. Realizacja misji autonomicznej pozwala na zanurzenie pojazdu do 15 m. W celu niwelacji błędu położenia pojazd powinien wynurzyć się w interwale 100 m w celu rekalkulacji pozycji względem GPS.
a)
b)
Rys. 9 Testy w środowisku morskim w zróżnicowanych warunkach pogodowych, a) stan morza 1-2 w skali Beauforta b) stan morza 4-5 w skali Beauforta Fig. 9. Tests in the marine environment under various weather conditions, a) sea state 1-2 on the Beaufort scale b) sea state 4-5 on the Beaufort scale
Opracowana konstrukcja modułowa umożliwia implementację i testy różnych algorytmów sterowania. Dalsze prace będą prowadzone w szczególności nad zwiększeniem autonomii pojazdu oraz wdrożeniem innowacyjnych algorytmów sterowania napędów hybrydowych. Opracowana konstrukcja umożliwia testowanie zarówno różnych napędów biomimetycznych w celu oceny zakładanych parametrów technicznych i eksploatacyjnych, jak również zaawansowanych algorytmów sterowania o zmiennej modulacji i częstotliwości pracy pędników. Ponadto pojazd może służyć do skrytego rozpoznania wskazanego akwenu, infrastruktury portowej oraz przesyłowej okrętów, a nawet portów. Pojazd może zostać zwodowany w sposób skryty, a następnie zrealizować misję polegającą na dopłynięciu do wskazanego rejonu, zarejestrowaniu obrazu i powrocie we wskazane miejsce w celu przekazania danych lub podłożenia ładunków wybuchowych we wskazane miejsce infrastruktury krytycznej.
Konstrukcja ma potencjał rozwoju w zastosowaniu cywilnym – w inspekcji kadłubów jednostek pływających, rurociągów, obszarów przeznaczonych pod budowę farm wiatrowych, wspierania specjalistycznych prac podwodnych oraz morskich akcji ratunkowych.
Dalsze działania badawcze ukierunkowane będą na zwiększenie możliwości operacyjnych pojazdu przez programową implementację algorytmów sztucznej inteligencji, które z wykorzystaniem specjalistycznych sensorów umożliwią zarejestrowanie, a następnie identyfikację i klasyfikację wybranych obiektów podwodnych, m.in. min, wraki okrętów lub instalacji gazociągowych.
Kolejnym, równie istotnym kierunkiem badań, jest implementacja algorytmów unikania przeszkód oraz zapewnienie zakładanego stopnia autonomii. Zmniejszy to zagrożenie utraty pojazdu, spowodowane kolizją z niewykrytymi elementami znajdującymi się w akwenie wodnym.
“NAŠE MORE: znanstveni časopis za more i pomorstvo”, Vol. 67, No. 1, 2020, 14–18, DOI: 10.17818/NM/2020/1.3.
9. Cohen N., Klein I., BeamsNet: A data-driven approach enhancing Doppler velocity log measurements for autonomous underwater vehicle navigation. “Engineering Applications of Artificial Intelligence”, Vol. 114, 2022, DOI: 10.1016/j.engappai.2022.105216.
1. Olejnik A., Tendencje rozwojowe bezzałogowej techniki morskiej. „Polish Hyperbaric Research”, Vol. 55, No. 2, 2016, 7–28, DOI: 10.1515/phr-2016-0008.
2. Panda J.P., Mitra A., Warrior H.V., A review on the hydrodynamic characteristics of autonomous underwater vehicles “Proceedings of the Institution of Mechanical Engineers, Part M: Journal of Engineering for the Maritime Environment”, Vol. 235, No. 1, 2021, 15–29, DOI: 10.1177/1475090220936896.
3. Malec M., Morawski M., Zając J., Fish-like swimming prototype of mobile underwater robot. “Journal of Automation, Mobile Robotics and Intelligent Systems”, Vol. 4, No. 3, 2010, 25–30.
4. Szymak P., Praczyk T., Naus K., Szturomski B., Malec M., Morawski M., Research on biomimetic underwater vehicles for underwater ISR. “Ground/Air Multisensor Interoperability, Integration, and Networking for Persistent ISR VII”, SPIE, Vol. 98310L, 126–139, DOI: 10.1117/12.2225587.
5. Piskur P., Szymak P., Sznajder J., Identification in a laboratory tunnel to control fluid velocity. [In:] Advanced, Contemporary Control, 2020, 1543–1552, Springer, Cham, DOI: 10.1007/978-3-030-50936-1_128.
6. Felski A., Jaskólski K., Zwolak K., Piskur P., Analysis of Satellite Compass Error’s Spectrum. “Sensors”, Vol. 20, No. 15, 2020, DOI: 10.3390/s20154067.
7. Jaskólski K., Marchel Ł., Felski A., Jaskólski M., Specht M., Automatic Identification System (AIS) Dynamic Data Integrity Monitoring and Trajectory Tracking Based on the Simultaneous Localization and Mapping (SLAM) Process Model “Sensors”, Vol. 21, No. 24, 2021, DOI: 10.3390/s21248430.
8. Piskur P., Gąsiorowski M., Digital Signal Processing for Hydroacoustic System in Biomimetic Underwater Vehicle.
10. Jebelli A., Chaoui H., Mahabadi A., Dhillon B., Tracking and mapping system for an underwater vehicle in real position using sonar system. “International Journal of Robotics and Automation”, Vol. 37, No. 1, 2022.
11. Żak B., Hożyń S., A Concept for Application of a Stereo Vision Method in Control System of an Underwater Vehicle [In:] Applied Mechanics and Materials, Vol. 817, 2016, 73–80, DOI: 10.4028/www.scientific.net/AMM.817.73.
12. Divsalar K., Improving the hydrodynamic performance of the SUBOFF bare hull model: a CFD approach. “Acta Mechanica Sinica”, Vol. 36, No. 1, 2020, 44–56, DOI: 10.1007/s10409-019-00913-7.
13. Szymak P., Praczyk T., Pietrukaniec L., Hożyń S., Laboratory stand for research on mini CyberSeal. “Measurement Automation Monitoring”, Vol. 63, No. 7, 2017, 228–233.
14. Powarzyński D., Mobile Wheeled Robot to Support the Task of the Alarm Sub – Unit, “Scientific Journal of Polish Naval Academy”, Vol. 223, No. 4, 2020, 53–66, DOI: 10.2478/sjpna-2020-0015.
15. Kiciński R., Szturomski B., Pressure Wave Caused by Trinitrotoluene (TNT) Underwater Explosion—Short Review “Applied Sciences”, Vol. 10, No. 10, 2020, DOI: 10.3390/app10103433.
16. BlueRobotics, T200 Thruster, https://bluerobotics.com/ store/thrusters/t100-t200-thrusters/t200-thruster-r2-rp/
17. Python, multiprocessing — Process-based parallelism, https://docs.python.org/3/library/multiprocessing.html
18. https://github.com/bluerobotics/ms5837-python
19. https://pypi.org/project/pyax12/
20. https://docs.python.org/3/library/socket.html
The article presents the design and implementation of an unmanned underwater vehicle with hybrid propulsion system. The vehicle can be controlled remotely as well as it has the ability to reach the indicated area in order to carry out reconnaissance and attack by detonating the carried load or self-destructing. The article presents both the hardware and software layers as well as the results of preliminary tests.
Keywords
ORCID: 0000-0002-4554-2546
ORCID: 0000-0002-8823-4316
ORCID: 0000-0001-9031-1504
ORCID: 0000-0003-2131-1660
ORCID: 0000-0002-3513-62454
Tekstroniczne transpondery RFID rozszerzają możliwości projektantów sprzętu AGD. Nowego zastosowania można doszukać się w technice pralniczej, gdzie za pomocą transponderów RFID wszytych w odzież możliwe jest zakodowanie informacji i późniejsze ich wykorzystanie do wyboru najlepszego programu prania dla danego rodzaju tkaniny lub prowadzenia statystyk zużycia materiału. W ramach prac zaprojektowany i zbudowany został model demonstracyjny urządzenia piorącego wykorzystującego do swojego działania transpondery (identyfikatory) RFIDtex. Przygotowano system sterowania dla zbudowanego modelu pralki wyposażonej w urządzenie RWD (Read-Write Device), wspierający podejmowanie decyzji o wyborze danej funkcji na podstawie danych dostarczanych przez identyfikatory RFIDtex zintegrowane z odzieżą. W ramach prac sprawdzono również skuteczność działania urządzenia z wykorzystaniem przygotowanych próbek.
1.
Wprowadzenie
Naturalną cechą człowieka jest poszukiwanie sposobów ułatwienia codziennego życia. Szczególnie poszukujemy rozwiązań dla czynności, które są przez nas regularnie powtarzane, jak pranie ubrań, przygotowywanie posiłków i inne. Już w 1858 r. Hamilton Smith zgłosił pierwszy patent na pralkę wykorzystującą bęben obrotowy, a blisko 20 lat później, w 1874 r., William Blackstone zaprojektował urządzenie piorące jako prezent dla żony [1]. Rozwój napędów elektrycznych w XX w. umożliwił uproszczenie budowy i zintegrowanie całego napędu pralki [2]. Przez lata zasada prania ubrań z wykorzystaniem wody i detergentów nie zmieniała się, ale sama konstrukcja pralki była ciągle unowocześniana. Mimo wielu zmian na przestrzeni całego okresu eksploatacji urządzeń piorących użytkownik nadal decyduje o tym, co umieszcza w bębnie oraz jakie detergenty i parametry prania stosuje do włożonej mieszaniny różnych rodzajów ubrań. Wybór choćby jednego złego elementu z grupy zróżnicowanych ustawień może spowodować nieodwracalne uszkodzenia.
Rozwiązaniem tego problemu może być zastosowanie odpowiednich algorytmów, które przejęłyby etap decyzyjny, odciążając tym samym użytkownika od rutynowych działań. Aby to było możliwe system wbudowany musi zostać poinformowany o zawartości bębna. Ręczne wprowadzanie danych o parametrach ubrań na panelu pralki jest często mało wygodne i uciążliwe. Aby usprawnić ten etap można w odzieży umieścić identyfikatory, na podstawie których będzie można bezprzewodowo uzyskać dokładne informacje o materiale i zaleceniach jego konserwacji. Potencjalnym nośnikiem danych jest transponder tekstroniczny RFIDtex opracowany na Politechnice Rzeszowskiej [3].
Zastosowanie nowoczesnych rozwiązań opartych na technice RFID w sprzęcie AGD może pomóc wypracować zupełnie nowe, odmienne podejście do prania automatycznego. Zaangażowanie użytkownika w cały proces obsługi można ograniczyć do niezbędnego minimum. Temperatura wody, ilość detergentu, liczba poszczególnych powtórzeń etapów czy prędkość obrotowa bębna mogą zostać automatycznie dostosowane do zawartości bębna. Potencjał jest znacznie większy, gdy wykorzystamy rozwiązania z obszaru Internetu Rzeczy. Dzięki temu dla nowych tkanin programy prania zawsze będą aktualne, a samo urządzenie piorące nie będzie wyłącznie skonfigurowane pod kilka lub kilkanaście stałych, mało modyfikowalnych planów pracy. W tej idei można pójść o krok dalej, zbierając informacje zwrotne, na przykład o degradacji materiału, czy generując dokładne statystyki. W przemysłowym, a więc masowym wykorzystaniu, jak w branży hotelarskiej, pozwoli to na optymalizację kosztów za pomocą świadomego wybierania jakości pościeli czy ręczników. Proponowane podejście może przedłużyć żywotność ubrań, zoptymalizować zużycie wody, energii elektrycznej i detergentów czyniąc codzienny proces bardziej ekologicznym.
Niestety, pralki wykorzystujące systemy RFID nie są dostępne na rynku konsumenckim. Aktualne badania dotyczą samego wpływu procesu prania na transpondery tekstylne RFID w standardowych pralkach [4, 5]. W rezultacie nie było możliwe przetestowanie działania eksperymentalnych transponderów RFIDtex w warunkach zbliżonych do rzeczywistych. Stąd zaistniała potrzeba zbudowania modelu pralki automatycznej, umożliwiającego badania laboratoryjne oraz badania skuteczności odczytu danych z transponderów tekstronicznych zintegrowanych z tkaninami. Dopiero w przypadku zapewnienia wysokiej skuteczności identyfikacji i przeprowadzenia kompleksowego odczytu informacji z pamięci transponderów wbudowanych w tkaniny, możliwe jest zaimplementowanie zaawansowanej funkcjonalności.
Opracowany model pozwala na symulację pierwszej fazy prania tkanin, czyli umieszczanie tkanin z naszytymi transponderami w bębnie i sterowanie bębnem w taki sposób, aby możliwe było odczytanie informacji o znajdujących się w nim tekstyliach. Założono, że program sterujący pracą modelu powinien sugerować najlepszy program prania dla tkanin umieszczonych w bębnie. W pracy opisano strukturę mechaniczną, elektryczną i elektroniczną modelu laboratoryjnego oraz wstępne badania skuteczności identyfikacji tkanin za pomocą zintegrowanych transponderów RFIDtex. Odrębnym przedmiotem badań pozostają procedury związane z algorytmami odczytu transponderów, modelem protokołu komunikacyjnego oraz doborem odpowiedniego programu mycia.
Podstawowy system identyfikacji radiowej (RFID) złożony jest z urządzenia odczytująco-zapisującego (RWD) wyposażonego w co najmniej jedną antenę oraz co najmniej jednego transpondera (ID), który zawiera w swojej strukturze obwód anteny, mikroprocesor i pamięć (rys. 1). W zintegrowanej pamięci transpondera zawiera się numer seryjny i inne spreparowane dane o identyfikowanym obiekcie. Dane odczytane za pomocą RWD są najczęściej przekazywane do dalszej analizy. Możliwe jest również zapisywanie danych do pamięci transpondera. Pozwala to na aktualizację zawartości pamięci transpondera na różnych etapach cyklu życia identyfikowanego obiektu. Proces wymiany danych między RWD a ID odbywa się tylko w strefie odpytywania (IZ) systemu RFID [6]. Definicję IZ można rozumieć jako grupę warunków polowych, elektrycznych i komunikacyjnych, które muszą być spełnione aby uzyskać pewne rozpoznanie wielu obiektów oznaczonych transponderami. Jeżeli w IZ znajduje się tylko jeden obiekt z ID, proces rozpoznawania obiektu nazywany jest identyfikacją pojedynczą. Jeżeli w IZ znajduje się wiele obiektów wyposażonych w ID, wymiana danych z nimi wszystkimi odbywa się z wykorzystaniem mechanizmu antykolizyjnego zgodnie z algorytmem określonym przez protokół i nazywa się to identyfikacją wielokrotną [7].
W ostatnich pracach badawczych synteza IZ obejmowała badania eksperymentalne oraz obliczenia analityczne i numeryczne zasięgu systemu RFID [8], ale w rzeczywistych wdrożeniach często stosowana jest metoda prób i błędów [9]. W przypadku, gdy wewnątrz IZ znajduje się wiele obiektów, a ich położenie i orientacja może zmieniać się dynamicznie, obliczenia parametrów systemu RFID są jeszcze bardziej wymagające ze względu na parametry opisujące dynamikę zmian w systemie. Aby usystematyzować działanie systemów RFID, opracowano kilka standardów. Najpopularniejszymi przykładami są ISO 15693 [10], ISO 14443 [11] oraz ISO 18000 [12].
Rys. 1. Uproszczony schemat działania systemu RFID z różnymi rodzajami transponderów Fig. 1. A simplified diagram of an RFID system operation with different types of transponder
Warunki pracy proponowanego systemu RFID podyktowały wybór transponderów zgodnych z normą ISO 18000-63. Umożliwiają one identyfikację wielu obiektów jednocześnie, dzięki zaimplementowanym w normie protokołom antykolizyjnym.
Systemy identyfikacji radiowej RFID UHF pracują zazwyczaj w zakresie 860–960 MHz, a także na częstotliwościach 2,45 GHz i 5 GHz. Wybór wartości częstotliwości pracy zależy od regionu świata. Na kontynencie europejskim systemy RFID działają w zakresie 865–870 MHz zgodnie z protokołem określonym przez normę ISO/IEC 18000-63. Obecnie w tym zakresie częstotliwości funkcjonują cztery rodzaje transponderów: pasywne, półpasywne, półpasywne z systemem zbierania energii oraz tekstroniczne.
Najpopularniejszy transponder pasywny RFID zawiera antenę i chip (rys. 2a). Podłoże może przybierać różne kształty, zazwyczaj są to breloki, karty, etykiety, szklane tuby, krążki, monety. Mogą być wykonane z materiałów takich jak ceramika, plastik, metal, szkło itp. Dostęp do wewnętrznej pamięci transponderów jest możliwy tylko przez RWD z wykorzystaniem interfejsu radiowego [13].
Kolejną grupą o rosnącym znaczeniu na rynku są półpasywne transpondery RFID ze zintegrowanym dodatkowym zasilaniem (np. wymiennym lub niewymiennym akumulatorem litowym) (rys. 2b). Dodatkowa moc baterii jest wykorzystywana do zwiększenia zasięgu odczytu, a tym samym strefy odpytywania [13], ale może być również wykorzy-
stana do zapewnienia dodatkowych funkcji zaimplementowanych w strukturze transpondera (rys. 2c). Dodatkowe funkcje transpondera mogą przybierać różne formy, takie jak pomiary wielkości fizycznych (temperatury, ciśnienia, wilgotności), przechowywanie zebranych informacji w rozszerzonej pamięci lub wymiana danych przez dodatkowe interfejsy radiowe lub kablowe [14].
Niezależnie od pasma częstotliwości, podstawowo transponder RFID składa się z chipa elektronicznego i anteny [13]. Najczęściej takie urządzenie budowane jest jako jednolita konstrukcja, w której chip jest wlutowany [15], wklejony [16] lub w inny sposób [17] podłączony do anteny. W tej konstrukcji antena transpondera wykonana jest z materiałów przewodzących na podłożu sztywnym (np. laminat niskożelazowy, ceramiczny) lub elastycznym (np. papier, PET, Kapton). Zgodnie z nowoczesną koncepcją automatycznych systemów identyfikacji RFID, transpondery są mocowane do obiektów na różne sposoby, na stałe lub czasowo [13]. Powoduje to wytwarzanie transponderów o różnych kształtach. Nie ma uniwersalnej konstrukcji transpondera do oznaczania dowolnego obiektu. W każdym przypadku rozwoju systemu RFID należy wybrać transponder z gotowych konstrukcji lub (co jest korzystniejsze) zaprojektować rozwiązanie dedykowane danemu obiektowi z uwzględnieniem wielu pól fizycznych, chemicznych, elektromagnetycznych, elektrycznych i komunikacyjnych warunków jego pracy w docelowym zastosowaniu systemu RFID.
Najnowsze podejście do projektowania transponderów RFID pokazano na rysunku 2d. W tego typu konstrukcjach chip i antena umieszczone są na fizycznie odseparowanych i izolowanych galwanicznie podstawach. Antena może być haftowana lub wszyta nićmi przewodzącymi, jak również innymi technikami, np. przez wciśnięcie drutu przewodzącego stanowiącego antenę w tkaninie. Transponder RFIDtex [3] może być wytwarzany jako wykrój (np. guzik lub etykieta) i zintegrowany z tkaniną przez przyszycie go do oznakowanego elementu tekstylnego. Dzięki tej koncepcji (rys. 2d) można uniknąć problemów związanych z podłączeniem chipa RFID do elastycznego i postrzępionego podłoża tekstylnego, a tym samym można zwiększyć wytrzymałość układu scalonego [18, 19].
Głównym celem opracowanego laboratoryjnego modelu pralki był demonstracyjny charakter zastosowania transponderów tekstronicznych RFIDtex ISO 18000-63 w przyszłych, nowoczesnych urządzeniach AGD oraz możliwość prowadzenia pomiarów wydajności identyfikacji w środowisku symulującym pranie. Głównym zadaniem skonstruowanego urządzenia było odczytanie informacji z pamięci transponderów wszytych w odzież umieszczoną w bębnie maszyny, które zawierały unikalny numer UID oraz informacje dotyczące ograniczeń zdefiniowanych przez producenta, jak temperatura i typ prania, możliwość wirowania czy rodzaj polecanych detergentów. W oparciu o odczyty danych z wielu transponderów zaprojektowano również system wspomagający podejmowanie decyzji o odpowiednim programie prania oraz wyświetlający informacje o wybranym programie. Dodatkowo system został wyposażony w funkcję programowania transponderów za pomocą urządzenia do odczytu/zapisu oraz możliwość szybkiego odczytu pojedynczego transpondera. Funkcje te są używane przez użytkownika do samodzielnego zapisywania dodatkowych informacji w pamięci transponderów wbudowanych w odzież.
Na rysunku 3 przedstawiono uproszczony schemat blokowy zaprojektowanego i wykonanego urządzenia. Centralnym elementem jest mikrokontroler STM32, który odpowiada za odbieranie, przesyłanie i przetwarzanie danych. Mikrokontroler steruje pracą urządzenia RWD, wyświetlacza oraz jednostki napędowej bębna pralki. Do mikrokontrolera bezpośrednio podłączony jest dotykowy wyświetlacz LCD. Dzięki temu można zarządzać całym urządzeniem, a przetwarzane dane prezentować w przyjaznej dla użytkownika formie. Urządzenie odczytująco-zapisujące UHF FEIG jest podłączone do mikrokontrolera za pomocą konwertera RS-232–UART. Aby odczytać dane z transponderów wszytych w ubrania do urządzenia odczytująco-zapisującego podłączono przez multiplekser trzy anteny zewnętrzne. Mikrokontroler steruje pracą układu napędowego zmieniając położenie ubrań względem nieruchomych anten. Urządzenie zostało również wyposażone w zestaw czujników mierzących prędkość obrotową bębna, umożliwiających precyzyjnie zaplano-
wany obrót, oraz czujnik otwarcia drzwiczek zapobiegający nieplanowanemu uruchomieniu urządzenia.
Aby zapewnić wysoką skuteczność identyfikacji w proponowanym systemie konieczna jest optymalizacja procesu skanowania odzieży. Na dokładność odczytu danych z pamięci transpondera ma wpływ wiele czynników, m.in. odległość transpondera od anteny, zakłócenia zewnętrzne oraz liczba transponderów w strefie odpytywania. Przedstawiona na uproszczonym schemacie blokowym koncepcja procesu skanowania (rys. 4) zakłada odczyt danych z pamięci transpondera podczas obrotu bębna, a szczegółowe opracowanie zostanie poświęcone szczegółom algorytmu i modelu komunikacji.
Rys. 4. Algorytm procesu skanowania w urządzeniu piorącym Fig. 4. Algorithm of the scanning process in the washing machine
Mikrokontroler STM32 steruje opracowanym laboratoryjnym modelem pralki. Mikrokontroler oparty został na 32-bitowym procesorze ARM serii Cortex-M4, ma 512 kB pamięci FLASH i 128 kB pamięci RAM. Płyta ewaluacyjna w wersji Nucelo-64 ma dodatkowe wyprowadzenia i zintegrowany programator oraz debugger [20].
Poszczególne elementy zostały połączone z mikrokontrolerem zgodnie z szczegółowym schematem blokowym, na którym strzałkami zaznaczono kierunki przesyłania informacji (rys. 5). Sposób komunikacji został odpowiednio dobrany dla każdego komponentu. W celu prawidłowego uporządkowania przestrzennego podzespołów w urządzeniu zaprojektowano dwie płyty PCB (rys. 6), pozwalające na odpowiednią organizację okablowania w obudowie modelu pralki.
Płyty przyłączeniowe zostały również zaprojektowane w taki sposób, aby wiele elementów można było łatwo zamontować do obudowy urządzenia. Płyta oznaczona jako PCB1 jest w formie nakładki na płytę ewaluacyjną mikrokontrolera oraz jest elementem łączącym płytę z mikrokontrolerem i PCB2. Zaprojektowane płyty połączone zostały ze sobą złączem Molex Mini-Fit (raster 4,2 mm). Na płycie PCB2 zainstalowano przetwornice DC. Do płyty PCB2 za pomocą dodatkowych złącz podłączone zostały zewnętrzne czujniki, sterownik silnika i urządzeniem odczytu/zapisu FEIG RFID (przez konwerter RS-232) (rys. 7).
W obudowie pralki zintegrowany został ekran z panelem dotykowym. Wyświetlacz służy do sterowania urządzeniem, a także przedstawia informacje, które są istotne dla użyt-
kownika. Dodatkowo umożliwia podgląd wykrytych transponderów oraz raportów o błędach jakie wystąpiły podczas skanowania zawartości bębna.
Do sterowania pracą silnika wykorzystany został zewnętrzny układ mostka H, który na podstawie otrzymanego sygnału PWM na wejściu umożliwia zmianę kierunku oraz prędkości obrotowej bębna. W celu zwiększenia precyzji sterowania wykorzystano układ sprzężenia zwrotnego z czujnika magnetycznego. Poszczególne elementy elektroniczne zasilane były z wbudowanego zasilacza prądu stałego o napięciu 12 V.
Jako urządzenie odpowiedzialne za odczyt i zapis pamięci transponderów zastosowano FEIG ID ISC.MRU102 RWD [68]. Jest to urządzenie pracujące w paśmie UHF. Praca w tym zakresie częstotliwości daje możliwość odczytu w średnich i krótkich zakresach, współpracując jednocześnie z wieloma transponderami znajdującymi się w strefie odpytywania urządzenia RWD. System ten został wyposażony przez producenta w porty komunikacyjne takie jak RS-232 i USB. Dostępna jest wbudowana antena na płycie RWD. System został przystosowany do pracy zarówno z transponderami krótkiego, jak i dalekiego zasięgu. Urządzenie RWD zostało również wyposażone w trzy złącza, umożliwiające podłączenie trzech dodatkowych anten zewnętrznych. Za pracę tych anten odpowiada multiplekser zintegrowany z RWD. Aby opracowane urządzenie działało poprawnie i efektywnie, zapewniając odpowiednią skuteczność identyfikacji, zostało opracowane dedykowane oprogramowanie.
Rys. 3. Uproszczony schemat blokowy urządzenia Fig. 3. Simplified block diagram of the deviceRys. 5. Schemat blokowy opracowanego prototypu urządzenia piorącego Fig. 5. A block diagram of the development of a washing device prototype
Rys. 6. Płyty PCB wykorzystane w prototypie urządzenia piorącego Fig. 6. PCBs used in the washing machine prototype
6. Sterowanie
Obsługa wielu różnorodnych komponentów oraz zintegrowanie z usługami chmurowymi wymagało podzielenia oprogramowania na części. Specyfikacja problemu sterowania urządzenia piorącego, którego elementy elektroniczne mogą ulec zmianie
w przyszłości wpasowuje się w koncepcje maszyny wirtualnej [21]. Możliwość przenaszalności oprogramowania w tego rodzaju systemach wbudowanych otwiera nowe możliwości personalizacji, generując wymierne ekonomiczne skutki.
Oprogramowanie podzielone zostało wg schematu przedstawionego na rysunku 5. Koncepcja wzoruje się na niezwodnych systemach sterowania stosowanych przez sterowniki PLC. Nisko-
poziomowa obsługa elementów takich jak urządzenie RWD, wyświetlacz z panelem dotykowym implementowane obsługiwane są poza systemem sterowania. Właściwe sterowanie urządzeniem, czyli programy prania, obsługa czujników czy interakcja z użytkownikiem opracowana została z wykorzystaniem języków normy ISO 61131-3 na platformie CPDev [22]. Wymiana danych między niskopoziomową obsługa peryferii a programem sterownia maszyną piorącą odbywa się za pomocą wspólnej pamięci i specjalnych bloków natywnych. Implementacja sterowania cyklem prania wpasowuje się w koncepcje grafów sekwencji języka SFC.
Zaletą zastosowania wymienionego podziału bloków oprogramowania jest łatwość aktualizacji bez wpływu na zastosowane peryferia. Jednakowy program prania może zostać zaimplementowany w wielu różnorodnych urządzeniach. Praktyczna realizacja urządzenia piorącego wymaga wzięcia pod uwagę współczesnych wymogów, jak funkcji dodania ubrania w czasie prania. Realizacja takich zmian w programach w języku SFC jest uproszczona. Najważniejszą zaletą jest jednak możliwość przygotowania niezależnych programów prania dla specjalistycznych detergentów czy zestawów ubrań. Zasada działania pralek bębnowych dostępnych aktualnie nie różni się między producentami, zauważalne są wyłącznie ograniczenia maksymalnej masy umieszczonej w bębnie lub prędkości obrotowej bębna.
Urządzenie może zostać z łatwością przystosowane do aktualnych warunków w danym regionie.
Podstawowym badanym aspektem była efektywność systemu identyfikacji umieszczonych transponderów wewnątrz bębna, która miała na celu zobrazowanie precyzji działania opracowanego modelu urządzenia oraz poprawności projektu pod kątem prawidłowego wdrożenia systemu RFID w modelu laboratoryjnym pralki. Podczas testów przyjęto kilka założeń. Do badań wykorzystano tkaniny bawełniane z naszytymi transponderami RFIDtex. Bęben wypełniony był wyłącznie tkaninami wyposażonymi w transpondery. Identyfikacji grup transponderów dokonano podczas ruchu bębna, symulując w ten sposób warunki panujące w bębnie pralki. W opracowanym modelu w bębnie nie było wody. Podczas procesu skanowania bęben był obracany, aby każdy ze zintegrowanych z tkaniną identyfikatorów znajdował się jak najbliżej układu antenowego RWD przez określony czas.
W celu stworzenia bezszumowego środowiska i uniknięcia wpływu zaburzeń elektromagnetycznych na badane urządzenie
Rys. 8. Wyniki efektywność odczytu transponderów RFIDtex w modelu pralki Fig. 8. The results of the efficiency of reading RFIDtex transponders in a washing machine model
badania przeprowadzono w komorze bezechowej. Zastosowanie technologii RFID wymagało odpowiednich rozwiązań technicznych i materiałów, aby zaproponować demonstracyjne środowisko pracy systemu RFID wolne od wpływu metali na proces odczytu numeru seryjnego transponderów RFIDtex, a także uzyskania odpowiedniej strefy odpytywania. Testy urządzeń polegały na wykonaniu skanu polegającego na odczytaniu numerów seryjnych transponderów. Dane były następnie przetwarzane przez mikrokontroler i przechowywane w pamięci systemu.
W ramach testów przeprowadzono proces identyfikacji w zakresie od jednego do trzydziestu transponderów. Przy każdej próbie odczytu, w bębnie opracowanego urządzenia umieszczano z góry określoną liczbę transponderów (od 1 do 30) i podejmowano pięć prób odczytu grupy. Pojedyncza sekwencja odczytu trwała 2 s, z czego połowa czasu była przeznaczona na analizę i zapis uzyskanych wyników. Na podstawie liczby poprawnie odczytanych transponderów w każdej próbie, określono średnią liczbę identyfikacji w pięciu próbach oraz procentową skuteczność identyfikacji grupy transponderów.
Zastosowane w modelu urządzenie RWD firmy FEIG zostało wyposażone w funkcję wielokrotnego odczytu grupy transponderów. Cechę tą wykorzystano w celu zwiększenia wydajności modelu. Opracowane rozwojowe oprogramowanie zapisywało w pamięci systemu mikroprocesorowego wynik ustawionej sekwencji odczytów grupy transponderów, a następnie dynamicznie budowało listę odczytanych transponderów. Dzięki zaimplementowaniu tej funkcjonalności udało się zwiększyć efektywność odczytu grupy transponderów, co udowodniono powtarzając proces identyfikacji w zakresie od dwóch do sześciu odczytów grupy transponderów. Próby te powtórzono również pięć razy. Czas trwania skanów dostosowywany był dynamicznie dzięki możliwościom protokołu ISO18000-63.
Uzyskane wyniki pomiarów (rys. 12) świadczą o poprawności działania zaprojektowanego i wykonanego demonstratora laboratoryjnego. Nawet przy pojedynczym skanie, który obejmował identyfikację grupy obiektów wyposażonych w transpondery, system wykazał wysoką skuteczność odczytu (rzędu 100 %) do 15 obiektów w bębnie. Zwiększenie liczby skanów spowodowało osiągnięcie 100 % skuteczności identyfikacji, nawet jeśli w bębnie znajdowało się do 22 obiektów. Zmie-
rzona skuteczność identyfikacji grup spadła najszybciej przy użyciu tylko jednego skanu, a dla 30 obiektów w bębnie wyniosła tylko 46 %. W przypadku grupy skanowanej sześciokrotnie sprawność nawet przy 30 obiektach w bębnie utrzymała się na poziomie 90 %. To pokazało, że możliwe jest efektywne wykorzystanie systemów RFID i transponderów RFIDtex w technologii pralniczej.
Przedmiotem pracy było zautomatyzowanie działania urządzeń piorących za pomocą identyfikacji bezprzewodowej z wykorzystaniem identyfikatorów RFIDtex. Zaprojektowany i zbudowany został model laboratoryjny pralki wspierającej proponowany system, umożliwiający badanie pracy takich urządzeń. Podczas realizacji modelu przyjęto założenie, że identyfikacja będzie odbywać się gdy bęben nie jest wypełniony wodą. Wynikało to z założenia o dostosowaniu programu prania do zestawu odzieży z możliwością usunięcia elementów powodujących znaczne konflikty z wybranymi parametrami.
Opracowany i zbudowany model został poddany serii testów, które wykazały sprawną identyfikację transponderów wewnątrz bębna. W ramach prac opracowano również oprogramowanie do zarządzania urządzeniami wraz z odpowiednim modelem komunikacji.
Opracowane urządzenie demonstruje innowacyjne podejście do procesu prania tekstyliów sterowane informacjami odczytanymi z transponderów RFIDtex wszytych w tkaniny. Może służyć jako podstawa do budowy w pełni funkcjonalnego prototypu pralki automatycznej, która wykorzystuje informacje zapisane w pamięci transponderów RFID do dostosowywania procesu prania.
Należy podkreślić, że wykorzystanie informacji o parametrach tkanin może pozwolić na zupełnie nowe podejście do sterowania procesem prania. Otwiera również zupełnie nowe pola badawcze, wśród których są aspekty związane ze sterowaniem procesem prania, w tym doborem najlepszego programu prania dla wielu tkanin jednocześnie, sterowaniem procesami automatycznego dozowania detergentu, prędkością obrotów bębna czy zmianami temperatury wody podczas procesu pra-
nia oraz wpływ całego procesu sterowania na zużycie wody, energii elektrycznej i detergentów.
Projekt finansowany w ramach programu Ministra Edukacji i Nauki pod nazwą „Reginalna Inicjatywa Doskonałości” w latach 2019–2023 nr projektu 027/RID/2018/19 kwota finansowania 11 999 900 zł.
1. Maxwell L.M., Save Womens Lives: History of Washing Machines, 1st ed.; Oldewash: Eaton, CO, USA, 2003; ISBN 978-0972971003.
2. Ho T., Chen M.-S., Lin J.-S., Chen P.-H., The design and implementation of the BLDC motor drive for a washing machine. [In:] Proceedings of the 1st IEEE Global Conference on Consumer Electronics, Tokyo, Japan, 2012, 156–157, DOI: 10.1109/GCCE.2012.6379565.
3. Liu T., Lin C., Lo C., Implementation of a novel high-perJankowski-Mihułowicz P., Węglarski M., Chamera M., Pyt P., Textronic UHF RFID Transponder. „Sensors”, Vol. 21, No. 4, 2021, DOI: 10.3390/s21041093.
4. NXP Demonstrates NFC Washing Machine. https://www. nfcw.com/2012/03/05/314143/nxp-demonstrates-nfc-washing-machine.
5. Shen B., Ding X., Wang Y., Ren S., RFID-Embedded Smart Washing Machine Systems in the Big Data Era: Value Creation in Fashion Supply Chain. [In:] Fashion Supply Chain Management in Asia: Concepts, Models, and Cases; Shen B., Gu Q., Yang Y., Eds.; Springer Series in Fashion Business; Springer: Singapore, 2019. DOI: 10.1007/978-981-13-2294-5_7.
6. Ukkonen L., Sydanheimo L., Kivikoski M., Read Range Performance Comparison of Compact Reader Antennas for a Handheld UHF RFID Reader. “IEEE Communications Magazine”, Vol. 45, No. 4, 2007, 24–31, DOI: 10.1109/MCOM.2007.348674.
7. Gotfryd M., Lichoń W., Pawłowicz B., The issue of data exchange in the UHF band RFID system with an Semi-Passive Transponder. “International Journal of Electronics and Telecommunications”, Vol. 62, No. 2, 2016, 141–146. DOI: 10.1515/eletel-2016-0019.
8. Węglarski M., Jankowski-Mihułowicz P., Factors Affecting the Synthesis of Autonomous Sensors with RFID Interface “Sensors”, Vol. 19, No. 20, 2019, DOI: 10.3390/s19204392.
9. Honeywell International Inc. Intermec RFID Tags & Media, Meeting the Scalable RFID Challenge; Honeywell International Inc.: Charlotte, NC, USA, 2013.
10. International Organization for Standardization/International Electrotechnical Commission. Identification Cards—Contactless Integrated Circuit Cards—Vicinity Cards; ISO/IEC: Geneva, Switzerland, 2006.
11. International Organization for Standardization/International Electrotechnical Commission. Identification Cards—Contactless Integrated Circuit Cards—Proximity Cards; ISO/IEC: Geneva, Switzerland, 2016.
12. International Organization for Standardization/International Electrotechnical Commission. Information Technology— Radio Frequency Identification for Item Management—Part 6: Parameters for Air Interface Communications at 860 MHz to 960 MHz General; ISO/IEC: Geneva, Switzerland, 2013.
13. Dobkin D.M., The RF in RFID: UHF RFID in Practice, 2nd ed.; Newnes: Oxford, UK, 2012.
14. Węglarski M., Jankowski-Mihułowicz P., Pitera G., Jurków D., Dorczyński M., LTCC Flow Sensor with RFID Interface. „Sensors”, Vol. 20, No. 1, 2020, DOI: 10.3390/s20010268.
15. Oppert T., Azdasht G., Zakel E., Teutsch T., Laser assisted soldering and Flip-Chip attach for 3-D packaging. [In:] Proceedings of the 31st IEEE/CPMT International Electronics Manufacturing Technology Symposium, Petaling Jaya, Malaysia, 2006, DOI: 10.1109/IEMT.2006.4456437.
16. Simegnaw A.A., Malengier B., Rotich G., Tadesse M.G., Van Langenhove L., Review on the Integration of Microelectronics for E-Textile. “Materials”, Vol. 14, No. 17, 2021, DOI: 10.3390/ma14175113.
17. Wang Y., Gauch M., Ristau D., Overmeyer L., Fine-pitch chip-on-flex packaging of optoelectronic devices using low tem-perature optodic bonding. [In:] Proceedings of the Pan Pacific Microelectronics Symposium, Big Island, HI, USA, 2016, DOI: 10.1109/PanPacific.2016.7428418.
18. Corchia L., Monti G., Tarricone L., Wearable antennas: Nontextile versus fully textile solutions. “IEEE Antennas and Propagation Magazine”, Vol. 61, No. 2, 2019, 71–83, DOI: 10.1109/MAP.2019.2895665.
19. Luo C., Gil I., Fernández-García R., Wearable Textile UHFRFID Sensors: A Systematic Review. “Materials”, Vol. 13, No. 15, 2020, DOI: 10.3390/ma13153292.
20. UM1724 User Manual STM32 Nucleo-64 Boards (MB1136). www.st.com/resource/en/user_manual/um1724-stm32-nucleo64-boards-mb1136-stmicroelectronics.pdf.
21. Sadolewski J., Trybus B., Compiler and virtual machine of a multiplatform control environment. “Bulletin of the Polish Academy of Sciences. Technical Sciences”, Vol. 70, No. 2, 2022, DOI: 10.24425/bpasts.2022.140554.
22. Rzo ca D., Sadolewski J., Stec A., wider Z., Trybus B., Trybus L., Developing a multiplatform control environment, “Journal of Automation Mobile Robotics and Intelligent Systems”, Vol. 13, No. 4, 2019, 73–84, DOI: 10.14313/JAMRIS/4-2019/40.
Textronic RFID transponders extend the possibilities of home appliance design. New application can be found in the laundry technology, where by means of RFID transponders sewn into the garment it is possible to encode information and use it later to select the best washing program for a given type of fabric or to keep statistics of material usage. As part of this work, a demonstration model of a washing device using RFIDtex transponders (identifiers) was designed and built. A control system was prepared for the constructed model of a washing machine equipped with a RWD (Read-Write Device) device, supporting decision-making about the selection of a given function on the basis of data provided by RFIDtex identifiers integrated with the clothing. The effectiveness of the device was also checked using prepared samples.
Keywords
ORCID: 0000-0002-2748-1145
ORCID: 0000-0003-4280-6611
ORCID: 0000-0001-9469-2754
ORCID: 0000-0002-9199-3460
ORCID: 0000-0002-4588-3973
Pomiary Automatyka Robotyka, ISSN 1427-9126, R. 26, Nr 4/2022, 79–84, DOI: 10.14313/PAR_246/79
Streszczenie: Artykuł przedstawia koncepcję budowy architektury niskoenergetycznego sterownika programowalnego opracowanego zgodnie z normą IEC 61131-3. Uniwersalność dotyczy swobody wyboru jednostki centralnej oraz możliwości łatwej wymiany algorytmu sterującego. Do proponowanego rozwiązania wybrana zostaje jedna z omówionych trzech metod opracowywania i dystrybucji oprogramowania. W ramach prac przygotowany został prototypowy sterownik w oparciu o elementy ewaluacyjne, z przeznaczeniem do pracy w środowisku rozproszonym. W artykule przedstawiono również porównanie wydajności energetycznej wybranych układów STM32 z kilku odmiennych serii.