Wprowadzenie
ASTOR jest partnerem technologicznym w transformacji fabryk, który odpowiedzialnie prowadzi do przemysłu przyszłości. Są liderem propagowania idei "Przemysłu 4.0" w Polsce dysponując takimi produktami jak: oprogramowanie przemysłowe, sterowniki, roboty przemysłowe i mobilne, napędy i urządzenia do zarządzania komunikacją przemysłową. Reprezentują w Polsce globalne marki, m.in. Emerson, Kawasaki Robotics, AVEVA, Epson, MiR, CyberX, Satel, Horner. Astor oferuje pomoc w doborze sprawdzonych rozwiązań dla poszczególnych branż, pomagają również sprawnie przejść przez proces zmian i osiągnąć cele biznesowe. Od wielu lat współpracują także z czołowymi polskimi uczelniami technicznymi i szkołami średnimi.
Projekt z którym zwrócili się do nas, realizowany był właśnie z myślą o edukacji przyszłych inżynierów i lepszym transferze wiedzy. Firma Astor chciała, aby uczniowie i studenci mogli od samego początku mieć dostęp do profesjonalnego sprzętu bez ogromnych nakładów finansowych, niestety nie mogli znaleźć odpowiedniego rozwiązania na rynku. Pan Marek Niewiadomski zaprojektował więc konstrukcję specjalnego robota.
ASTORINO to innowacyjny robot edukacyjny o sześciu osiach, wykonany przy użyciu technologii druku 3D. Użytkownik otrzymuje projekty 3D wszystkich podzespołów, co umożliwia samodzielne drukowanie części w przypadku uszkodzeń. Programowanie robota odbywa się w języku AS-language, analogicznie do przemysłowych robotów Kawasaki Robotics. Posiada zewnętrzny osprzęt, który można dołączyć za pomocą mechanizmu pick & place, co jest identyczne jak w przemysłowych maszynach. Wszystko to sprawia, że robot doskonale odzwierciedla środowisko przemysłowe, co czyni go idealnym narzędziem do nauki technik robotyki oraz przygotowywania się do egzaminów zawodowych. Prezentację robota oraz kurs jego obsługi można znaleźć na kanale YouTube firmy ASTOR.
Wyzwanie
Firma Astor zleciła nam stworzenia interpretera języka AS, czyli oryginalnego języka sterowania robotami Kawasaki Robotics, przekształcającego go na kod w języku C.
Program napisany w języku AS jest wgrywany do mikrokontrolera robota, na przykład za pomocą karty SD. Mikrokontroler musi przetłumaczyć ten program na język C, a następnie skompilować go z odpowiednimi bibliotekami, aby stworzyć gotowy do wykonania program. Powstały program jest uruchamiany i steruje ruchami robota. To podejście wymagało stworzenia interpretera, który minimalizuje użycie pamięci RAM i w jak największym stopniu korzysta z pamięci FLASH.
Rozwiązanie
Najważniejszym elementem tego procesu było stworzenie współpracującej ze sobą pary generatorów - leksera i parsera, które uruchamiają szkielety funkcji z języka AS. Lekser - Flex analizuje wprowadzony kod w języku AS, sprawdzając każdy znak i tworzy z nich tokeny, czyli symbole leksykalne, które następnie trafiają do parsera. Parser Bison na ich podstawie łączy je w odpowiednie reguły (można je porównać do reguł gramatycznych, pewnych zdań) i uruchamia dedykowane akcje przypisane do tych reguł. W ten sposób niezrozumiały dla robota język AS przekształcany jest na już konkretne polecenia, które trafiają do mikrokontrolera i sterują robotem. Bez tych wszystkich mechanizmów nie byłoby to możliwe.
Mikrokontroler znacząco wpłynął na złożoność projektu. Jego niewielka ilość pamięć RAM zmusiła nas do korzystania z pamięci stałej i FLASH. Ze względu na wydajność takie działania jak definiowanie zmiennych musiały odbywać się w pamięci RAM, dlatego wymagało to od nas operowania na wskaźnikach zmiennych, gdziekolwiek było to możliwe, aby zminimalizować tworzenie kopii zmiennych. Pomimo tego rozwiązania w wielu przypadkach musieliśmy decydować się również na manualne korzystanie z pamięci statycznej np. poprzez zapisywanie funkcji programu w pamięci FLASH.
Wprowadziliśmy własny system zarządzania pamięcią, tak zwany garbage collector, który potrafi zwalniać pamięć również w przypadkach nagłego zakończenia pracy programu.
Aby korzystanie z Astorino było jeszcze łatwiejsze i bardziej przyjazne dla osób dopiero uczących się, załączyliśmy do interpretera również system raportowania błędów we wprowadzonym kodzie AS. Linie kodu zawierające błędy składniowe i gramatyczne są identyfikowane i wypisywane.
Rezultat
Rozwiązanie zostało przekazane klientowi. Firma Astor wprowadziła już do sprzedaży roboty Astorino korzystające z naszego oprogramowania. Projekt jednak jest w ciągłym rozwoju, cały czas staramy się razem z Astor usprawniać działanie interpretera i ułatwiać jego obsługę. Osoby korzystające ze wcześniejszych wersji oprogramowania Astorino otrzymują możliwość jego aktualizacji. Pierwsze uczelnie i szkoły korzystają już z robota edukacyjnego i bardzo chwalą sobie proces zarządzania nim oraz ogólne działanie.
Zespół ImpiCode w ramach współpracy w znacznym stopniu przyczynił się do rozwoju innowacyjnego rozwiązania jakim jest robot edukacyjny Astorino. Programiści ImpiCode pomogli nam w opracowaniu oprogramowania umożliwiającego programowanie naszego robota edukacyjnego w języku AS. W wyniku wykonanych prac przyszli inżynierowie mogą w prosty sposób uczyć się obsługi profesjonalnych robotów przemysłowych.
Technologie
Przy użyciu Leksera Flex i generatora paserów GNU Bison stworzyliśmy tłumacz języka AS na język C.
Inne nasze realizacje
Zaufali nam:
Polski Związek Motorowy
Adamed
Polska Agencja Prasowa
Astor
IFX Payments
TEB Edukacja
Fundacja Moc Pomocy
Elemental Holding
French Touch
Polski Komitet Normalizacyjny
TU
Bergakademie Freiberg
Bank Nowy BFG
Narodowe Centrum Promieniowania Synchrotronowego SOLARIS
Astorino Kawasaki Robotics
DTK&W Zespół Ogłoszeniowy
Opegieka
Crazy shop
PartyBox
WUOZ w Krakowie
Uniwersytet Medyczny w Łodzi
Grupa Mo
Jeleniogórska Organizacja Turystyczna
eFitness
Instytut Badań Literackich PAN
Danhoss
Fundacja Sztuki, Przygody i Przyjemności ARTS
Opennet.pl
Centrum Medyczne Intermed
Centrum Rozwoju Edukacji Edicon
Winner Europe
Po amputacji
MamMoc.pl
EtnoStoria
Widzisz Wszystko
EMKA Project
NowaLed ILL
Eco Light LED
LoxiMide
Fundacja AVLab.pl
RCC Nova
Vector Controls
Virtual SMS
Parus Holdings
Biuro Partner
Optime.AI
M2M Team