Programowanie robota nie musi być trudne!

Czas czytania: 4 min.

Robotyczny software - co i jak?

Roboty, tak jak wszystkie urządzenia elektroniczne posiadające procesor, muszą zostać wyposażone w odpowiednie oprogramowanie, aby poprawnie spełniać swoje funkcje. Niniejszy artykuł dotyczy popularnych metod i języków programowania używanych w robotyce.

Programowalne roboty wokół nas

 

Roboty są obecne wokół nas od kilkudziesięciu lat. Współcześnie są one jeszcze bardziej rozwinięte technologicznie, a także łatwiej dostępne niż wcześniej, kiedy istniały tylko jako bardzo kosztowne maszyny o dużych wymiarach przeznaczone do takich celów jak kinematografia, przemysł i prace badawczo-rozwojowe. Większość zrobotyzowanych maszyn jest używana w fabrykach na zautomatyzowanych liniach montażowych lub jako maszyny pomocnicze, które pomagają człowiekowi w wykonywaniu ciężkich prac fizycznych, np. w górnictwie, leśnictwie, rolnictwie oraz wielu innych dziedzinach o dużej złożoności procesowej. Istnieją także roboty, które są przeznaczone do sprzątania budynków mieszkalnych, jak i powierzchni biurowych. Pod względem zakresu funkcjonalności, takie roboty mogą wykonywać odkurzanie i mycie podłóg po uprzednio zaprogramowanej trasie, tj. mapie powierzchni, w celu ominięcia przeszkód. 

Obecne możliwości oprogramowania, umożliwiają tworzenie robotów wykonujących czynności o silnie zróżnicowanym stopniu trudności. Programowanie robotyki jest w stanie produkować roboty, które wykonują stosunkowo proste codzienne zadania. Zaprogramowanie własnego robota wiąże się z określonymi wyzwaniami, ponieważ w pełni działający robot do użytku domowego lub biurowego, pod względem konstrukcji mechanicznej wymaga sześciu stopni swobody, aby działać w trójwymiarowej przestrzeni rzeczywistego świata, w którym żyjemy. Dotyczy to także zastosowania docelowego robota, jego osprzętu oraz kodu programu, który poprzez mikrokontroler będzie sterował poszczególnymi czynnościami, jakie robot będzie fizycznie wykonywał.

Istota zrozumienia programowania robota

Wchodząc w rozważania dotyczące wstępu do programowania robotów, należy mieć na uwadze, że robot sam w sobie nie jest maszyną inteligentną. Jego możliwości wykonawcze są ograniczone jego wyposażeniem w osprzęt o określonej funkcjonalności, a także kodem programu, za sprawą którego robot może wykonywać odpowiedni zakres czynności, tak jak jest to przedstawione w projekcie. 

Co ciekawe, robot nie zawsze musi oznaczać urządzenie fizyczne. Roboty mogą także istnieć wirtualnie, jako specjalistyczne oprogramowanie przeznaczone np. do prowadzenia handlu walutami. Natomiast wracając do robotów w postaci fizycznej, istnieją roboty autonomiczne, roboty autonomiczne częściowo, a także pozbawione autonomii. Programowanie każdego z tych robotów różni się względem siebie. Przykładowo, roboty zainstalowane na liniach montażowych w fabrykach samochodów, tylko określony zakres czynności wykonują w sposób automatyczny, tj. bez ingerencji człowieka podczas ich działania. 

Docelowy projekt robota pod względem jego stopnia autonomii, złożoności osprzętu i warstwy oprogramowania, zależy przede wszystkim od tego, jaki zakres czynności ma ten robot wykonywać, zgodnie z założeniami projektowymi. W przypadku robota autonomicznego, prawdopodobnie będzie konieczne zaimplementowanie zdolności uczenia maszynowego lub metod sztucznej inteligencji.

Jakich języków programowania używa się w robotyce?

W wielu przypadkach, dobór właściwego języka programowania dla naszego robota będzie zależny od jego zastosowania docelowego, choć nie musi to być ograniczeniem. Typowo do programowania robotów korzysta się z języków C++, Python i Java. Są to języki popularne szczególnie wśród początkujących adeptów robotyki, a także hobbystów. Natomiast podchodząc do robotyki profesjonalnie, zalecane jest poznawanie innych języków programowania, które oferują jeszcze bardziej rozszerzony zakres możliwości. 

Tu z pomocą przychodzi MATLAB – zaawansowane środowisko o potężnych możliwościach obliczeniowych i symulacyjnych, z którego korzystają inżynierowie niemal każdej branży, w tym robotyki. Proces programowania robota wiąże się z analizą dużej ilości danych za pomocą rozbudowanego aparatu matematycznego i z tego względu MATLAB jest jednym z najlepszych wyborów na środowisko do tworzenia oprogramowania dla robotów w ujęciu profesjonalnym. Natomiast rozpoczynając przygodę z robotyką, warto w pierwszej kolejności zapoznać się z programowaniem w językach C/C++, Python i Java. Tworząc nasz pierwszy projekt robotyczny, sprawdźmy czy jego warstwa programowa będzie działała prawidłowo pod kątem funkcji niezwiązanych bezpośrednio z wykonywaniem czynności fizycznych, jakie obejmuje projekt naszego robota.

Od podstawowego prototypu do zaawansowanego projektu

Inteligentne rozpoznawanie obrazów oraz przetwarzanie głosu ludzkiego z uwzględnieniem słów i cech charakterystycznych dla poszczególnych języków, to główne problemów, z którymi zmagają się konstruktorzy robotów humanoidalnych, które mają za zadanie naśladować zachowania ,,prawdziwych” ludzi. Aby wejść w ten świat, warto rozpocząć od algorytmu wykorzystującego kamerę do rozpoznawania twarzy osób wchodzących do pomieszczenia. Algorytm ten, obejmuje montaż czujnika ruchu i połączenie go z kamerą. Czujnik ruchu należy zaprogramować tak, aby mógł spowodować aktywację kamery. 

Zdjęcie sfotografowanej osoby chcącej wejść do pomieszczenia, będzie stanowiło element zawarty w zbiorze danych wejściowych dla programu robota. Zeskanowany obraz twarzy, będzie wtedy porównywany do rzeczywistego obrazu osoby widocznej przez kamerę. Program będzie następnie dokonywał porównania tego obrazu z obrazem uprzednio zapisanym w pamięci. Jeśli obraz z kamery będzie identyczny z obrazem wzorcowym, drzwi mogą zostać odblokowane. Natomiast w przypadku nieudanego dopasowania, algorytm może podjąć ponowną próbę skanowania obrazu lub inne, odpowiednio zdefiniowane kroki. 

Jeśli już opanowaliśmy technologię rozpoznawania twarzy, wówczas naszego robota oraz jego oprogramowanie możemy rozszerzyć o dodatkowe funkcjonalności, takie jak np. odbieranie ubrań od zaproszonych gości. Na tym etapie, konieczne będzie dobudowanie dodatkowego ramienia z chwytakiem i czujnikami oraz obliczenie przez program odległości, na jaką ramię robota powinno zostać wychylone, aby odebrać okrycie wierzchnie i zawiesić je na wieszaku, co będzie wymagało wprowadzenia odpowiednich instrukcji warunkowych, które będą realizowane w zależności od odległości docelowych podczas cyklu pobrania ubrania oraz jego zawieszenia, a także ponownego odwieszenia i wręczenia właścicielowi.

Programowanie robotów - co warto umieć?

Robotyka jest jedną z najszybciej rozwijających się dziedzin współczesnej nauki i techniki. Nadążanie za najnowszymi osiągnięciami w dziedzinie robotów wymaga ciągłego zdobywania wiedzy często wykraczającej poza zakres znajomości współcześnie stosowanych języków programowania. Jeśli chcemy zrozumieć i opanować programowanie robota, konieczne jest wzięcie pod uwagę wymagań sprzętowych i programowych oraz możliwości robota. Na szczęście wiele platform umożliwia programowanie robotyki dla początkujących. Odbywa się to poprzez wyeliminowanie wielu trudności związanych ze znajomością działania sprzętu, co umożliwia np. platforma Arduino. Można to również zrobić poprzez programowania na poziomie kodu maszynowego. Zasadniczo, rozpoczynając przygodę z robotyką, warto poznać języki C/C++, Java i Python, a także środowisko MATLAB, które jest motorem napędowym do zaawansowanych obliczeń inżynierskich i symulacji, również systemów robotycznych.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.3 / 5. Liczba głosów: 10

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Maciej Figiel

Maciej Figiel

Wszechstronny, chętnie podejmuje się wyzwań, bo uważa, że jest to najszybsza droga ku rozwojowi. Ceni sobie kontakt z naturą i aktywny wypoczynek. Pasjonat motoryzacji i nowych technologii.

Zobacz więcej:

Rafał Bartoszak

Intel, czyli lider, który nie nadąża

Intel, gigant technologiczny, zmaga się z poważnymi wyzwaniami. Autor przygląda się obecnej sytuacji firmy, analizując zarówno bieżące problemy, jak i historyczne sukcesy, zastanawiając się, czy to kryzys czy szansa na nowy początek dla Intela.

Masz pytanie techniczne?
Napisz komentarz lub zapytaj na zaprzyjaźnionym forum o elektronice.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce prywatności i Warunkom użytkowania.