Jesteśmy zalewani wizualizacjami 3D. Niesamowite obrazy jakie już teraz można stworzyć przy użyciu Unreal Engine czy Unity pozwalają odtworzyć otaczający świat w wirtualnej wersji w niespotykanej dotąd szczegółowości.

Robotyk jednak (wbrew powszechnie panującej opinii) nie gra całymi dniami na komputerze. Więc dlaczego mielibyśmy zajmować się odtwarzaniem rzeczywistości?

Kolejne akapity będą swoistą syntezą najważniejszych informacji i odpowiadać będą na ukrytą w tytule serię pytań. Miejmy nadzieję, że istotność tworzenia symulacji sprawi, że następnym razem siadając do jednego z wymienionych środowisk, poczujecie się jak Neo udający się na spotkanie z Deus Ex Machina do miasta maszyn. To ważna misja!

Tak jak w programowaniu przydatna jest symulacja, tak w przybliżaniu teorii niezastąpiona jest Wikipedia. W tej sytuacji podpowiada nam ona, iż słowo to pochodzi z łaciny, simulatio „udawanie”, od similis „podobny”, co oznacza obrazowanie właściwości danego obiektu lub zjawiska przy pomocy jego modelu. Dokładnie tym zajmują się programy symulacyjne dostarczane przez producentów robotów. Umożliwiają one za pośrednictwem naszych komputerów modelowanie oraz programowanie manipulatorów, jak również realizacje symulacji ich pracy w trybach online (gdy jesteśmy podłączeni do robota) i offline (czyli bez dostępu do rzeczywistego robota).

Jest to o tyle ważne, że symulację możemy już zacząć w fazie zapoznawania się z projektem. Możliwość dowolnego tworzenia kolejnych wersji wirtualnego świata pozwala na optymalizacje jego wstępnych założeń. Umożliwia to zdecydowanie lepsze przewidzenie przyszłych problemów i uniknięcie ich zanim powstaną. Takie dalekowzroczne spojrzenie, zdecydowanie wpisuje się w myślenie o kodzie, który ma być jak najbliższy doskonałości.

Środowiska symulacyjne. Czysty kod – podręcznik robotyka

Programowanie w trybie online, czyli ręczne uczenie trajektorii robota, jest bardzo mozolne. Jest to szczególnie uciążliwe w sytuacji, gdy jego ścieżka posiada wiele trudno dostępnych punktów, np. pomiędzy innymi częściami maszyn. Co więcej, wymaga to dostępności robota, a więc często przerwy w produkcji, co wiąże się z dużą stratą finansową. Stawia to programistów przed wyzwaniem, często wymagającym zdolności porównywalnych do mocy super-bohaterów. Bowiem gdy trzeba dodać kolejny typ w określonym okienku czasu, liczy się precyzja, opanowanie i spryt.

Niestety super-bohaterowie to jedynie wytwory wyobraźni producentów takich jak Marvel i DC Comics, a nam na ratunek ruszają środowiska symulacyjne. Pozwalają one wykorzystać backupy rzeczywistego robota, dzięki czemu możliwe staje się stworzenie systemu, który z powodzeniem można uruchomiać oraz modyfikować na komputerze w trybie offline.

Zatem wiemy już, że programy do symulacji czołowych producentów takich jak FANUC, ABB, Kawasaki, Kuka, Yaskawa, Mitsubishi, EPSON, COMAU i Stäubli zapewniają nam przede wszystkim czas i możliwość prześledzenia wprowadzonych zmian, co z kolei pozwala zminimalizować ewentualność popełnienia kosztownych błędów.

Oczywiście nie chodzi tylko o spokój ducha i bezpieczeństwo naszych narzędzi, programy do symulacji umożliwiają nam wiele więcej. Zaczynając od wspomnianego już modelowania, czyli tworzenia stacji w wirtualnej celi, poprzez programowanie trajektorii robotów czy też innych komponentów, na optymalizacji procesu kończąc. Programy symulacyjne uwzględniają wszystkie elementy niezbędne w tworzeniu stanowisk zrobotyzowanych i często zawierają wbudowane wirtualne panele, identyczne jak na rzeczywistym robocie.

Prześledźmy zatem idealny scenariusz wykorzystywania takich programów…

Etap pierwszy – modelowanie

Środowiska symulacyjne. Czysty kod – podręcznik robotyka

Wyobraźcie sobie sytuację, w której dostarczony do waszej celi robot okazuje się jednak nie spełniać wszystkich koniecznych warunków jak zasięg czy udźwig. Powiecie, że można było to przewidzieć bo wystarczyło lepiej sprawdzić katalog producenta. Owszem, tego typu problemy często można wyeliminować, bez sięgania po symulacje, jednak czy jesteśmy w stanie przewidzieć wszystko? Co z konfiguracjami osobliwymi robota? (Jeśli nie znacie tego pojęcia koniecznie czytajcie nasze artykuły! Wyjaśnimy!).

Zjawiska te są dużo trudniejsze do przewidzenia dla konstruktorów, którzy z programów do symulacji korzystać nie muszą. Bardzo wielu problemów z łatwością można by uniknąć tworząc przyszłą stację w środowisku symulacyjnym. Po stworzeniu nowej celi, należy umieścić w niej model robota, CAD-y komponentów, ewentualnie stworzyć własne geometrie (np. sześciany symbolizujące pudełka). Gdy zaprogramujemy zgrubną trajektorię ruchu, już pierwsze testy wykażą nam problem na osiach robota przy osiąganiu zadanych pozycji. Takie podejście pozwala na wiele szybkich zmian, np. typu robota, pozycji i wysokości podestu, na którym się znajduje, mocowania chwytaka itd.

Ponadto, narzędzia dostarczane przez producentów robotów pozwalają nam również na:
– weryfikację zajętości przestrzeni roboczej,
– testowanie zasięgu robota,
– wykrywanie kolizji,
– testy przydatności robota do realizacji zadania,
– wstępne oszacowanie czasu cyklu,
– tworzenie własnych mechanizmów,
– testowanie właściwości projektowanych konstrukcji (prototypów) i inne.

Etap drugi – programowanie

Skoro mamy już ogólne pojęcie jak wiele daje nam symulacja w pierwszym etapie tworzenia nowej celi zrobotyzowanej, przyjrzyjmy się w jakim stopniu pomoże nam w programowaniu naszego robota. Przede wszystkim, umożliwia prace równoległą do prac związanych z fizyczną budową stacji, co niewątpliwie wpływa na tempo realizacji projektu. Sztandarowymi przykładami powyższego usprawnienia jest możliwość przygotowania konfiguracji wyjść/wejść, którą możemy zacząć tuż po zaprojektowaniu schematu elektrycznego oraz dodanie obciążeń osi (payload), bez montażu chwytaka.

Ponadto, uzyskany w ten sposób czas umożliwia:
– skonfigurowanie komunikacji, stworzenie programów sterujących,
– ręczne tworzenie ścieżek poruszania się robota,
– generowanie trajektorii robota na podstawie danych CAD,
– wykrywanie kolizji,
– konfiguracje systemów bezpieczeństwa (np. DCS firmy FANUC, FSU firmy Yaskawa, SafeMove firmy ABB, Safe Operation – firmy Kuka, CUBIC-S firmy Kawasaki),
– ułatwia konfigurowanie dodatkowych osi (pozycjonerów),
– testowanie algorytmów zachowania robota w różnych sytuacjach,
– pozwala na określenie czasu cyklu itd.

Warto zaznaczyć, że trajektorie w środowiskach symulacyjnych należy tworzyć w wirtualnych bazach, pomoże nam to lepiej odwzorować rzeczywistą trajektorię w razie jakichkolwiek przesunięć obiektów na rzeczywistej stacji. Im dokładniej przemyślimy położenie takich układów odniesienia, a potem przeuczymy je na wirtualnym i prawdziwym robocie, tym ścieżki ruchu będą się dokładniej pokrywać. Jeśli wszystko dobrze opracujemy, przygotowane w zaoszczędzonym czasie dane, po wgraniu do kontrolera rzeczywistego, ostatecznie wymagać będą jedynie sprawdzenia i wprowadzenia ewentualnych korekt.

Środowiska symulacyjne. Czysty kod – podręcznik robotyka

Pytacie o rzeczywisty przykład przytoczonych możliwości? Jednym z nich jest oprogramowanie producenta FANUC – RoboGuide, które dysponuje pakietami ułatwiającymi programowanie wybranych procesów technologicznych, takich jak gratowanie – ChamferingPRO, malowanie – PaintPRO, paletyzacja/depaletyzacja – PalletPRO i spawanie – WeldPRO.

Ten ostatni ułatwia projektowanie stanowisk spawania obiektów, poprzez możliwość automatycznego generowania ścieżek robota na podstawie informacji z modelu CAD 3D. Oczywiście to nie wszystko, omawiany pakiet już w fazie planowania ścieżki pozwala również na dostosowywanie wszystkich istotnych parametrów trajektorii takich jak: ilość wygenerowanych punktów, typ ruchu, prędkość, kąt fajki spawalniczej, rodzaj i częstotliwość zakosowania. Bez wchodzenia w szczegóły, możliwość wykorzystania tak wygenerowanej ścieżki, zamiast ręcznego wprowadzania kolejnych punktów trajektorii to kolejne zaoszczędzone godziny pracy.

Etap trzeci – optymalizacja

Ostatnim etapem scharakteryzowanym w naszym podziale tworzenia nowej stacji zrobotyzowanej jest zwiększanie jej efektywności i również tutaj wykorzystanie symulacji niesie ze sobą wiele korzyści. Wystarczy przecież prześledzenie ścieżek robota, które pozwoli na eliminacje niepotrzebnych ruchów i zatrzymań. Znacząco wpłynie to na zoptymalizowanie czasu cyklu operacji i w konsekwencji zwiększy produktywność stacji. Symulacje pozwalają również na wyszczególnienie ewentualnych zmian w samej logice kodu oraz wstępne ich przetestowanie (Pamiętajcie! Zawsze testujemy jeszcze na rzeczywistych stacjach!).

Ponadto, przy zobrazowanej celi i z zaprogramowanymi ruchami manipulatora, istnieje możliwość podejmowania prób wprowadzenia usprawnień konstrukcji mechanicznej i elektrycznej stacji, które ponownie przełożą się na jej efektywność.

Zmierzając do końca niczym EIP Pendolino na relacji Katowice – Warszawa sprawdźmy komu to potrzebne. Do najliczniejszych odbiorców środowisk symulacyjnych zaliczyć z pewnością możemy firmy zajmujące się szeroko pojętą robotyzacją. Głównym czynnikiem generującym taki stan rzeczy jest fakt, że narzędzia te dają programistom wiele możliwości, które w syntetycznym skrócie opisaliśmy powyżej. Nie jest to jednak koniec potencjału tych środowisk, pozwalają one również na szkolenia pracowników, minimalizacje kosztów i ryzyka wystąpienia drogich błędów oraz prezentacje ofert dla klientów. Rrównież z wykorzystaniem zyskującej na popularności technologii VR – np.

Znacznie mniej licznymi, ale wciąż bardzo istotnymi odbiorcami środowisk symulacyjnych, są również uczelnie wyższe, których głównym celem jest kształcenie nowych robotyków.

W ten sposób zapoznaliśmy Was z najważniejszymi aspektami symulacji i uważamy, że zostaliście zachęceni do zgłębiania tematu i używania omawianych środowisk w Waszych kolejnych projektach. Jednocześnie zapewniamy Was, że informacje zawarte w tak krótkim materiale stanowić mogą jedynie wierzchołek wielkiej góry, który na potrzeby tego artykułu nazwaliśmy z łaciny Simulatio. Przypominamy również, że artykuł ten to nie koniec naszej serii i już serdecznie zapraszamy do przeczytania kolejnych części!

Czytaj poprzedni wpis TUTAJ

Autor: Sylwia Kaleńska

robotycy.com partner Robo Challenge logo