Razvoj strojne in programske infrastrukture za module rekonfigurabilne robotske celice Jakob Purg1, Timotej Gaspar2 lFakulteta za elektrotehniko, Tržaška 25, 1000 Ljubljana, 2Institut "Jožef Stefan", Jamova cesta 39, 1000 Ljubljana E-pošta: jakobpurg@gmail.com Developement of hardware and software infrastructure for reconfigurable robot cell modules Frequent product launches and changes in demand require rapid adaptations in industrial manufacturing. Small and medium sized enterprises (SMEs) are feeling the arising pressure the most as they tend to fine tune their production in a "just-in-time" manner. To tackle these problems there is an increase of research in the field ofrecon-figurable robotic cells. Those robot workcells can have different peripheral equipment. In this paper we present peripheral modules that can be quickly plugged or unplugged to the cell with the custom made "plug-and-produce" (P&P) connector. The connector allows the pass-through of pressured air, electrical power and communication via Ethernet. This allows the modules to receive all the necessary for their operation and at the same time they are connected to the cell's software network. To ease the access to the functionalities of these modules, we built a web Server that runs on a micro-computer on board of the module. The web server was built using NodeJS and JavaScript programming language so that it can be easily transferred to different modules and set working with as little modifications as possible. 1 Uvod Globalni trg je zelo kompetitiven in pritiski po zagotavljanju dovoljsne proizvodnje ter zagotavljanje kakovosti so za proizvodno usmerjena podjetja visoki. Te pritiske se bolj občutijo majhna oz. srednje velika podjetja z maloserijskimi proizvodnjami. Prav v tovrstnih podjetjih pa je avtomatizacija redka saj je vlozek sredstev vanjo večinokrat previsok. Visoki stroski pa ne izhajajo le iz visokih cen strojev ampak tudi iz porabljenega časa za postavitev avtomatizirane proizvodne linije [1]. Da bi priblizali avtomatizacijo in robotiko tudi takim podjetjim je v porastu trend razvoja prilagodljivih oz. rekonfigu-rabilnih robotskih celic. To so celice, ki jih je mogoče relativno hitro postaviti, je njihovo obliko enostavno prilagoditi in so v principu modularne. Primere implementacije modularnih celic lahko vidimo tudi kot trend h kateremu se giblje razvoj rekonfigu-rabilnih celic [2, 3,4]. Dober primer take implementacije predstavi Chen v svojem delu, ki se osredotoca na iskanje optimalnih konfiguracij modulov celice za izvajanje specifične naloge [5]. Robotska celica, ki je predmet tega dela, je bila razvita s sledenjem smernicam za rekonfigurabilne robotske celice v sklopu projekta "ReconCell" [6, 7]. Celica je zgrajena iz ogrodja, ki omogoca hitro postavitev ter re-konfiguracijo. Ima dva robota UR-10m, oba opremljena s sistemom izmenjevalcev orodja. Celica je seveda tudi modularna, kar omogocajo posebni konektorji, ki so bili razviti v sklopu projekta. Informacijski sistem celice je bil zgrajen na podlagi sistema "Robot Operating System - ROS". Gre za odpr-tokodno delovno okolje (ang. framework), ki ponuja velik nabor knjižnic in orodij za hiter razvoj robotske programske opreme [8]. V tem delu bomo predstavili opremo ter orodja, ki smo jih razvili za podporo uporabe modulov celice. Cilj je bil module opremiti z mikroracunalnikom, ki omogoca povezovanje posameznih modulov v ROS omrezje ter njihovo krmiljenje. Hkrati pa smo zeleli, daje na mikroracunalnikom postavljen streznik, ki omogoca upravljanje z nekaterimi funkcionalnostimi modula preko spletnega brskalnika. Razvito strojno opremo bomo opisali v poglavju 2, programsko opremo pa v poglavju 3. 2 Moduli v rekonfigurabilni celici Da bi povecali stopnjo rekonfigurabilnosti robotske celice, smo dolocene komponente celice razvili kot module. Namen je bil omogociti hitro spremembo namembnosti celice s tem, da se lahko module v celico poljubno priklopi ali od nje odklopi. Zahteva po hitrih priklopih in odklopih pa je privedla do razvoja dodatne strojne kot tudi programske opreme. Tekom projekta je bil razvit poseben konektor za priklop modulov v celico ter programska oprema za podporo hitrih priklopov in odklopov modulov. 2.1 Konektorji za hiter priklop modulov Moduli morajo biti zasnovani na taksen nacin, da dopuscajo hiter priklop in odklop. Hkrati pa mora ta priklop zagotavljati togo in ponovljivo sklopitev s celico, saj v nasprotnem primeru robot ne more natancno uporabljati modulov. Dodatna lastnost, ki jo mora konektor zagotavljati je, da modul dobi vse potrebne priklope za obratovanje, ERK'2018, Portorož, 170-173 170 Slika 1: "Priklopi in Proizvajaj" konektor. t. j. napajanje, komprimiran zrak ter komunikacijski kanal. Tem zahtevam zadošča konektor, ki smo ga tekom projekta razvili in sicer t. i. "Priklopi in Proizvajaj" (ang. Plug and produce - P&P) konektor. Ženski del konek-torja je togo priCvrščen na ogrodje celice, moški pa na perifernih modulih. Konektor omogoca poleg toge sklopi-tve tudi pretok komprimiranega zraka, omrezno napetost ter Ethernet povezavo. Tako lahko zagotovimo, da periferni moduli dobijo vse potrebno za delovanje ob sklopu na konektor. Konektor je okrogle oblike in ima na sredini zaklepni mehanizem, ki hkrati sluzši kot ventil za dovod zraka v module. Na spodnjem delu ima prikljucke za elektricne signale, kar pomeni ethernet povezavo ter omrezšno napetost. Ethernet povezava se sklene z RJ45 konektor-jem, omrezšna napetost pa preko namenskih prikljucškov. Ob straneh ima centrirne luknje (zenski del) oz. zatice (moški del), za natancno orientacijo ter togo sklopitev (slika 1). Ventil na sredini je zgrajen tako, da je zaprt, torej zraka ne prepusšcša, ob odsotnosti modula. Konek-torjev zaklepni mehanizem se odklene s pomocjo pnevmatike, ki je dovedena na vrhu zenskega konektorja. To pomeni, da je potrebna le takrat, ko zelimo modul od celice odklopiti, kadar pa zelimo modul v celico priklopiti, pa je dovolj, da dva konektorja sklenemo skupaj s potiskom. 2.2 Obstoječi moduli Razvito robotsko celico smo do sedaj preizkusili na treh razlicšnih proizvodnih procesih v laboratorjiskih pogojih, kar pomeni, da se nismo osredotocšali na hitre cikle ampak na izvedljivost. Prvi proces je bil sestavljanje dveh razlicšnih avtomobilskih lucši, drugi se je osredotocšal na sestavljanje pogonskega sklopa motoriziranega pohisštva, tretji pa je predvideval sestavljanje elektromagnetne sklopke. Da bi lahko vse te proizvodne procese izvedli v eni celici, je bilo razvitih nekaj različnih modulov. S tem smo dosegli zeleno fleksibilnost celice in zadostili zahtevi po hitri rekonfiguraciji. Za naštete primere smo razvili sledece module: • pilagodljiv vpenjalni modul za avtomobilske luci, • vpenjalni modul za pogonski sklop motoriziranega pohištva (slika 2), • modul s prešo za sestavljanje elektromagnetne sklopke, • modul z naborom robotskih orodij, kijih lahko robota po potrebi uporabita, • modul s katerega robota pobirata kose za sestavljanje. Trenutno so vsi razviti moduli na kolesih in jih je za premikanje potrebno potiskati. Namen je, da se v bodoce razvije tudi avtonomne module, ki bi se lahko v celico priklopili in odklopili sami. Hkrati, pa je zelja tudi robote v celico dodati kot modul, saj bi na ta nacin lahko dosegli vecjo fleksibilnost pri sprotni rekonfiguraciji celice. 3 Programska oprema Kot ze prej omenjeno, je informacijska infrastruktura robotske celice zgrajena na podlagi sistema ROS (slika 3). Vsi programski gradniki med seboj komunicirajo tako, kot predvidevajo konvencije v ROS-u. To nam omogoca relativno enostaven razvoj novih gradnikov oz. funkcionalnosti celice. Da smo lahko module vkljucili v ROS, jih je bilo potrebno opremiti z neke vrste racšunalnikom, na katerem lahko tecejo ROS programi. V našem primeru je bil to mikroracunalnik Raspberry Pi 3 model B, kije zelo popularen v ROS-ovi mednarodni skupnosti, ima zadostno število vhodno/izhodnih vrat ter je primerno majhen. 171 Slika 2: Vpenjalni modul za pogonski sklop motoriziranega pohištva. 3.2 Strežnik StreZnik je bil razvit v programskem jeziku JavaScript, poganja pa ga Node.js [10]. Za dostop do nekaterih ROS funkcionalnost, znotraj programskega okolja JavaScript, smo uporabili knjiznico rosnode. Tako samo lahko razvili streznik, ki tece na modulu in streze HTML stran komurkoli, ki se nanj poveze. Dostopnost do strani je omogočena le, ce je odjemalec v omrezju celice. Streznik najprej iz datoteke, ki vsebuje celoten zaga-njalni paket - roslaunch, prebere imena ter tipe storitev, ki so na voljo na posameznem modulu, se prijavi na storitve, ki so pod istim imenom ze v ROS omrezju, ter prebere trenutna stanja in tipe posameznih funkcij oz. funkcionalnosti. To informacijo nato preko JSON-a (ang. JavaScript Object Notation) pošlje do odjemalca (ang. Client). Odjemalec samodejno zgenerira primeren tip ter stanje funkcije oz. funkcionalnosti na graficnem vmesniku v HTML datoteki, glede na prejete podatke. To stori s pomoco knjiznice jQuerry. Funkcije na strezniku krmilimo preko JSON POST formata, kjer je za delovanje potrebna tudi primerena prošnja (ang. Request) na streznik (glej sliko 5). Do teh funkcij lahko nato s poznavanjem URL-ja ter prošnje dostopamo tudi preko drugih storitev, v kolikor smo v istem ROS omrezju. 3.1 ROS infrastruktura Centralni del sistema ROS sestavlja t. i. ROS jedro (ang. roscore). To je program, ki mora teci na enem od gradnikov celice, do katerega imajo vsi ostali gradniki dostop. Jedro nosi informacije o vseh ostalih programih oz. vozliščih (ang. node) ter o podatkih, ki jih ta vozlišca od sebe dajajo oz. prejemajo. To je narejeno po sistemu "prijavi" in "objavi" (ang. subscribe and publish). Ti podatki so nato v omrezju dostopni vsak na svoji temi (ang. topic). Spisek vseh objavljenih tem je v jedru, tako da vozlišca ne potrebujejo informacije o tem kdo podatke obljavlja, ampak le informacijo na kateri temi podatke najti. Krmiljenje modulov smo zastavili tako, da na mikro-racunalniku tece program, ki ob ukazu spremeni stanje digitalnih izhodov. Posluzili smo se ROS mehanizma storitev (ang. service). Ta mehanizem omogoca, da vozlišce v sistemu objavi katere storitve lahko izvede in na kakšen nacin se jih prozi. Storitev, ki smo jo razvili omogoca spreminjanje stanja digitalnih izhodov mikroracšunalnika. Ti so nato povezani na elektromagnetne pnevmatske ventile. Slednji lahko nato odpirajo ter zapirajo vpenjala ali pa sprostijo zavore prilagodljivih vpenjal [9]. Razvoj vozlišca na modulovem mikroracunalniku sicer omogoca dostop do funkcionalnosti modula znotraj ROS omrezja. Tezava tega pristopa je, da mora racunalnik, iz katerega zelimo dostopati do teh funkcionalnosti, imeti nalozene knjiznice in programe, ki omogocajo komunikacijo s sistemom ROS. Da bi povecali dostopnost do teh funkcionalnosti, smo razvili streznik, ki uporabnikom, s poznavanjem IP naslova modula, preko internetnega brskalnika ponuja nekatere od teh funkcionalnosti. Slika 3: Komunikacijska shema robotske celice. 3.3 Spletni vmesnik Stranje tako uporabniški vmesnik za modul. Primer vmesnika, ki je bil razvit za vpenjalni modul je viden na sliki 4. Prednost takšnega pristopa je, da uporabnik ne potrebuje ROS orodij za dostop do nekaterih funkcionalnosti celice. Dostop do funkcionalnosti vpenjalnega modula preko vmesnika med proizvodnim procesom seveda ni potreba, saj takrat celica deluje popolnoma samostojno oz. avtonomno. Taki vmesniki so predvsem uporabni med nacrtovanjem ter programiranjem proizvodnega procesa. 4 Zaključek in nadalnje delo V pricujocem clanku smo predstavili podporno strojno in programsko opremo za module v rekonfigurabilni robotski celici. Pokazali smo, kako lahko s posebnimi "Priklopi in proizvajaj" konektorji dosezemo hitro izmenjavo 172 Slika 4: Uporabniški vmesnik za uporabljanje vpenjalnega modula. Zagon programa z orodjem roslaunch Ime storitve j j Tip storitve r ; — - "i API Strežnik Stanje t., * (Izvršitev prošnje) k- ai ROS Services storitve odjemalca | l funkcije Odjemalec Prošnja t Stanje uporabnika | j funkcije Spletni vmesnik Slika 5: Diagram poteka izmenjave informacije. [3] Z. M. Bi, S. Y. T. Lang, M. Verner, and P. Orban, "Development of reconfigurable machines," The International Journal of Advanced Manufacturing Technology, vol. 39, pp. 1227-1251, Dec. 2008. [4] M. Fulea, S. Popescu, E. Brad, B. Mocan, and M. Murar, "A literature survey on reconfigurable industrial robotic work cells," Applied Mechanics and Materials, vol. 762, p. 233, 2015. [5] I.-M. Chen, "Rapid response manufacturing through a rapidly reconfigurable robotic workcell," Robotics and Computer-Integrated Manufacturing, vol. 17, no. 3, pp. 199-213, 2001. [6] T. Gaspar, B. Ridge, R. Bevec, M. Bem, I. Kovac, A. Ude, and v. Gosar, "Rapid hardware and software reconfiguration in a robotic workcell," in 18th International Conference on Advanced Robotics (ICAR), pp. 229-236, IEEE. [7] "ReconCell." http://www.reconcell.eu/. Accessed: 2018-07-10. [8] "ROS - The Robot Operating System." http:// www.ros.org/. Accessed: 2018-07-10. [9] M. Bem, M. Denisa, T. Gaspar, J. Jereb, R. Bevec, I. Kovac, and A. Ude, "Reconfigurable fixture evaluation for use in automotive light assembly," in 2017 18th International Conference on Advanced Robotics (ICAR), pp. 61-67, July 2017. [10] "NodeJS - JavaScript Node library." https:// nodejs.org/en/. Accessed: 2018-07-11. modulov celice in s tem tudi hitro spremembo njene namembnosti. Da bi zagotovili enostavnost uporabe modulov smo razvili HTTP strežnik, ki uporabnikom v spletni brskalnik streže uporabniški vmesnik. S tem smo pripomogli k dodatnemu lajšanju postopka programiranja doticšne robotske celice. Nadalnje delo vključuje vlaganje v razvoj avtonomnih modulov, ki bi se lahko v celico, preko P&P konektorjev sami prikljucili. Taki moduli bi lahko v industrijskih okoljih dodatno pripomogli k povecanju avtonomije rekonfi-guracije robotske celice. Literatura [1] T. Dietz, U. Schneider, M. Barho, S. Oberer-Treitz, M. Drust, R. Hollmann, and M. Hagele, "Programming system for efficient use of industrial robots for deburring in SME environments," in 7th German Conference on Robotics; Proceedings of ROBOTIK 2012, pp. 1-6, VDE. [2] R. M. Setchi and N. Lagos, "Reconfigurability and reconfigurable manufacturing systems: state-of-the-art review," in IEEE International Conference on Industrial Informatics (INDIN), pp. 529-535, 2004. 173