Robota przy robotach

przez Pat

Niespodziewanie wydarzyła się rzecz magiczna – po latach webdevelopmentu, problemów związanych z tworzeniem stron internetowych, ciągle zmieniających się frameworków, przypadków bezpieczeństwa, braku kompatybilności bibliotek – trafiłem do zupełnie nowego środowiska. Zupełnie przypadkiem stałem się częścią projektu połączenia programowania i materii, dostałem fascynujące zlecenie zaprogramowania dwóch robotów przemysłowych.

Połączenie komputerów i robotów to oczywiście cała lawina problemów z obu światów, bo poza tym, że twój kod może nie działać, to jeszcze maszyna może się zbuntować. Dwa roboty Kawasaki, jeden język programowania Kawasaki AS, jedno środowisko K-IDE i jeden program do symulacji pracy robota K-Roset. Co może pójść nie tak? Wszystko!

W normalnym wypadku, operując popularnym językiem programowania, natrafiając na problem wystarczy wygooglać rozwiązanie, ewentualnie dopytać pana ChataGPT czy słyszał o takim problemie. Parę chwil później mamy stado linków do StackOverflow, ewentualnie zgrabną odpowiedź od naszego wirtualnego kolegi. Z językiem dla robotów jest nieco inaczej, linków z rozwiązaniem brak, a ChatGPT najczęściej wyświetla coś w stylu RTFM („read the fucking manual”). Manual oczywiście jest, nawet przetłumaczony, jednak nie wszystko jest w nim oczywiste i zrozumiałe. Największe problemy to właśnie połączenie dwóch światów – programy wykonujące się linijka po linijce to jedno, a ruch robota to drugie. Problemy robotyki to również pozycje osobliwe (singularity), gdzie specyficzne położenie ramion robota wpływa na jego matematykę ruchu i np. obróci się nie w tę stronę. Dodatkowym problemem są na przykład wymiary, np: ładunku, który przenosi, trzeba się upewnić, czy ruch jest bezpieczny dla samego robota. Sam robot krzywdy sobie nie zrobi, ale możemy wejść w ruch kolizyjny między ramieniem a chwytakiem. Mieliśmy również całe stado problemów z materią około projektową, dwa roboty współpracują z podajnikiem, bębnem, transporterem, obrotnicą, to dość sporo punktów do ogarnięcia.

Programowanie tych dwóch robotów dało sporo satysfakcji, po latach tworzenie stron internetowych nie wzbudza emocji. Testowanie rozwiązań serwerowych ogranicza się do odświeżania przeglądarki, przy robotach nie jest tak łatwo – każda procedura wymaga testu, najpierw na niższych prędkościach, a to trwa. Efekt? Automatyzacja procesu produkcyjnego na pełnej prędkości robi wrażenie.