Spójrzmy prawdzie w oczy, roboty są fajne. Pewnego dnia będą też podbijać świat i miejmy nadzieję, że w tym czasie zlitują się nad swoimi biednymi, miękkimi, mięsistymi twórcami, czyli programistami robotyki i pomogą nam zbudować kosmiczną utopię. Żartuję oczywiście, ale tylko w pewnym sensie.
Mając ambicję wywierania niewielkiego wpływu na tę kwestię, w ubiegłym roku odbyłem kurs z zakresu autonomicznej teorii sterowania robotami, której kulminacją było zbudowanie opartego na Pythonie automatycznego symulatora, który pozwolił mi ćwiczyć teorię sterowania na prostym, mobilnym, programowalnym robocie.
W tym artykule pokażę, jak wykorzystać platformę robotów Pythona do opracowania oprogramowania sterującego, opisać schemat sterowania opracowany dla symulowanego robota, zilustrować jego interakcję z otoczeniem i ukazać jego możliwości oraz przedyskutować niektóre z nich.
Aby przeczytać artykuł ze zrozumieniem, warto mieć podstawową wiedzę na 2 tematy.
Matematyka – użyjemy pewnych funkcji trygonometrycznych i wektorów
Python – ponieważ Python jest jednym z najpopularniejszych podstawowych języków programowania robotów – wykorzystamy podstawowe biblioteki i funkcje Pythona.

Wyzwanie czyli programowanie robotów: postrzeganie a rzeczywistość i niestabilność kontroli
Podstawowym wyzwaniem dla robotyki jest to, że nigdy nie można poznać prawdziwego stanu środowiska. Oprogramowanie sterujące robotem może jedynie odgadnąć stan rzeczywistego świata na podstawie pomiarów zwracanych przez jego czujniki. Może jedynie próbować zmienić stan realnego świata poprzez generowanie sygnałów sterujących.
Oprogramowanie sterujące robotem może jedynie odgadnąć stan rzeczywistego świata na podstawie pomiarów zwracanych przez jego czujniki.
Tak więc jednym z pierwszych kroków w projektowaniu sterowania jest wymyślenie abstrakcji świata realnego, znanego jako model, z którym interpretujemy nasze odczyty czujników i podejmujemy decyzje. Dopóki rzeczywisty świat zachowuje się zgodnie z założeniami modelu, możemy poczynić dobre domysły i sprawować kontrolę. Gdy tylko rzeczywisty świat odbiega od tych założeń, nie będziemy już na to przygotowani, a kontrola zostanie utracona. Często po utracie kontroli, nie można jej odzyskać.
Jest to jeden z głównych powodów, dla których programowanie robotyki jest tak trudne. Często oglądamy filmy o najnowszym robocie badawczym w laboratorium, który wykonuje fantastyczne zręczne manewry, i mamy ochotę zapytać: „Dlaczego nie jest to używane w prawdziwym świecie?” Cóż, następnym razem, gdy zobaczysz taki film, spójrz, jak bardzo kontrolowane jest środowisko laboratoryjne. W większości przypadków roboty te są w stanie wykonywać te imponujące zadania, o ile warunki środowiskowe pozostają w wąskim zakresie jego modelu wewnętrznego. Zatem kluczem do rozwoju robotyki jest rozwój bardziej złożonych, elastycznych i niezawodnych modeli – i wspomniany postęp podlega poszerzaniu ograniczeń oraz rozwijanie dostępnych zasobów obliczeniowych.
Kluczem do rozwoju robotyki jest rozwój bardziej złożonych, elastycznych i solidnych modeli.
Filozofowie i psycholodzy zauważyliby, że żywe stworzenia również cierpią z powodu zależności od ich własnego wewnętrznego postrzegania tego, co mówią im ich zmysły. Wiele postępów w robotyce wynika z obserwacji żywych istot i obserwowania, jak reagują na niespodziewane bodźce. Pomyśl o tym. Jaki jest twój wewnętrzny model świata? Różni się od mrówki i ryby? Jednakże, podobnie jak mrówka i ryba, najprawdopodobniej upraszcza niektóre realia świata. Kiedy twoje założenia dotyczące świata nie są poprawne, może narazić Cię to na utratę kontroli nad niektórymi rzeczami. Czasami nazywamy to „niebezpieczeństwem”. Tak samo jak nasz mały robot walczy o przetrwanie w nieznanym wszechświecie, tak samo my wszyscy.

Przy programowaniu robota musimy zwrócić uwagę na kilka ważnych czynników.
Korzystając z czujników, robot musi próbować oszacować stan środowiska, jak również swój stan. Szacunki te nigdy nie będą doskonałe, ale muszą być dość dobre, ponieważ robot będzie opierał wszystkie swoje decyzje na tych szacunkach. Korzystając z samych czujników zbliżeniowych i samoprzylepnych kółek, musi spróbować odgadnąć zwykle przynajmniej te podstawowe opcje:
Kierunek przeszkód
Odległość od przeszkód
Pozycja robota
Pierwsze dwie właściwości są określane przez odczyty czujnika zbliżeniowego i są dość proste.
Ze względu na sposób działania czujników podczerwieni (mierzenie odbić w podczerwieni) zwracane liczby są nieliniową transformacją rzeczywistej wykrytej odległości. Zatem funkcja Pythona do określenia wskazanej odległości musi przekształcić te odczyty w metry.

[Głosów:0    Średnia:0/5]

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here