Suorakerrostuksella tarkoitetaan yhtä metallien 3D-tulostusprosesseista, joka on myös lähes poikkeuksetta robotisoitu prosessi. Suorakerrostuksesta kirjoitettiin yleisellä tasolla aiemmassa blogikirjoituksessa, joka löytyy täältä: https://blogi.savonia.fi/3dtulostus/2018/11/29/suorakerrostus-ja-3d-tulostus-roboteilla/
Prosessin automatisointia varten tarvitaan väliin ohjelmointia, jotta käsittelylaitteet saadaan tekemään haluttu työ. Robottien tapauksessa puhutaan tyypillisesti etäohjelmoinnista (offline-programming, OLP). Käytössä olevasta robottiasemasta on yleensä myös käytössä aseman virtuaalimalli, jonka voi syöttää johonkin lukuisista etäohjelmointiohjelmista, kuten RoboDK, Delfoi Robotics, Octopuz, ABB Robotstudio, ja niin edelleen.
Tässä kirjoituksessa käsitellään lähinnä RoboDK nimeä kantavaa OLP:ia, sekä Yaskawa-robottien ohjelmointia. RoboDK on teollisuusrobottien etäohjelmointiin ja simulointiin luotu, hyvin yksinkertaisella käyttöliittymällä varustettu ohjelmisto. Sen saa Windowsin lisäksi myös Macille, Ubuntuun, sekä Android-laitteisiin.
RoboDK:n online-kirjasto kattaa yleisimmät robottibrändit, kuten ABB, Yaskawa, KUKA, Fanuc, ynnä muut. Tyypillisten teollisuusrobottien lisäksi kirjastosta löytyy myös Universal Robots -brändin yhteistyörobotit. Robottimallien lisäksi jokaiselle robotille löytyy vastaavat postprosessorit, joita voi tarpeen mukaan myös muokata itse Python-ohjelmointikielellä.
Savonian laserhitsausasema on varustettu kahdella Yaskawa-robotilla, 1-akselisella gantrylla, sekä 1-akselisella pyörityspöydällä. Nykyisellään robotin työkaluvarustukseen kuuluvat kaksi laserhitsauspäätä, laserleikkauspää, sekä kaarihitsausvarustus, jota voi hyödyntää sekä erillisenä, että laserpäähän liitettynä laser-kaari -hybridihitsauksessa. Robotit ovat MH80, sekä UP350-D -malleja, käsittelykyvyt mainitussa järjestyksessä 80 kg, sekä 500 kg. Radan kanssa hitsausrobotilla (MH80) on ulottuvuutta (pyörityspöydällä) jopa 2,6 x 6,5 metriä.
Laserhitsausaseman kalustoa on tarkoitus hyödyntää meneillään olevassa 3D-tulostuksen investointi- ja kehityshankkeessa, jossa yhtenä tavoitteena on suuren metalli (ja muovi) -kappaleen 3D-tulostaminen. Suurella tässä tarkoitetaan vähintään metrin korkuista suorakerrostettua kappaletta.
PEMA toimitti aseman mukana myös etäohjelmoitavan 3D-mallin ja ohjelmiston (Visual Componentsin alustalle rakennettu “WeldControl 300”), joita voi hyvin hyödyntää hitsaus- ja leikkaussovelluksissa. Ohjelmisto toimii hyvin kaarihitsaussovelluksissa, mutta siitä puuttuu suorakerrostuksessa vaadittuja ominaisuuksia. WeldControl:in hyödyntäminen on kuitenkin tarpeellista, jotta RoboDK:lla luodulla ohjelmalla saadaan robotti myös liikkumaan.
Kuten monet muutkin 3D-tulostuksen 3D-mallit, myös suorakerrostusprosessia varten laadittu tiedosto täytyy siivuttaa (slice). Siivutuksella määritellään, millainen yksittäisestä kerroksesta syntyy. Metallien 3D-tulostuksen kohdalla siivutusohjelmiston valinta on hieman haasteellisempi kuin muoveilla, sillä suorakerrostusprosessin suuri lämmöntuonti (jopa >1 kJ/mm) ja metallien erilaiset fysikaaliset ominaisuudet aiheuttavat omia haasteita mm. kerroskorkeuksia määriteltäessä.
Slic3r -niminen ohjelmisto on ilmainen, sekä suhteellisen pätevä ja yksinkertainen softa, josta saatu G-koodi -tiedosto kelpaa sellaisenaan RoboDK:lle.
Itse RoboDK:n käyttö on melko helppoa, varsinkin jos on yhtään käyttänyt OLP-ohjelmistoja aiemmin. Ohjelmiston avaruuteen tuodaan online-kirjastosta robotti (tai tuodaan oma .step / .iges / .stl -formaatissa oleva 3D-malli) ja luodaan referenssipiste, johon robotti paikoitetaan. Tämän jälkeen siivutettu tiedosto tuodaan samaan avaruuteen robotin kanssa ja asemoidaan sekin omaan referenssipisteeseensä. Yksinkertaisimmillaan näiden vaiheiden jälkeen ohjelmointi on vain robotin konfiguraation ja työkalupisteen hienosäätöä. Ohjelmiston käyttöliittymä on todella käyttäjäystävällinen ja ohjelmiston kotisivuilla on hyvin tietoa tarjolla foorumien ja opetusvideoiden muodossa. Kurkkaa linkin takaa nopeasti omaksuttavia vinkkejä, sekä hyvin alkuun saattava tutorial-video: https://robodk.com/help
Mutta kuten yleensä, asiat eivät aina mene kuten toivoa soisi. Allekirjoittaneen kohdalla ainakin muutama pieni seikka aiheutti hieman ylimääräistä työtä, ennen kuin ohjelman sai edes ladattua robotin muistiin. RoboDK:n online-kirjastosta ei suoraan löytynyt Savonian asemassa olevaa Motoman MH80-mallia, vaan tässä jouduttiin käyttämään ainoata vastaavaa, mutta pienemmän kapasiteetin omaavaa MH50-mallia.
Toinen seikka Motoman/Yaskawa -robottien kohdalla on pulssisuhteiden määrittely. Savonian PEMA-solussa Motomanit vaativat ohjelmalta koordinaatit pulsseina, joten ne täytyy määritellä manuaalisesti ohjelmistossa, että robotti suostuu vastaanottamaan valmiin ohjelman. Pulssisuhteet ovat aina robottikohtaisia, joten ne tulee selvittää robotin toimittajalta. Käytännössä homma toimii siten, että robotilla on jokaiselle nivelelle tietty määrä pulsseja per aste ja jakamalla vastaava pulssimäärä kyseisen nivelen asteilla (°) saadaan haluttu pulssisuhde. Tämä pulssitieto voidaan RoboDK:ssa syöttää robotin parametreille. Jos tieto syötetään väärin, tai oikeat luvut eivät ole tiedossa, sen tulee huomaamaan myöhemmin hyvin varmasti.
Tässä vaiheessa on siis löydetty soveltuva robottimalli, käännetty sen asteet pulsseiksi ja luotu ohjelma. Kaikki näyttää jopa simulaatiossa toimivalta, joten on aika ladata ohjelma robotille ja testata sitä käytännössä.
Ohjelma kyllä siirtyi robotille ilman virheilmoituksia ja rivit näyttivät pendantilla siltä kuin pitikin, mutta ensimmäistä liikekäskyä pyydettäessä alkaa valitus ulkoisista akseleista. Tässä ohjelmassa ulkoiset akselit eivät ole käytössä, mutta kun robotti roikkuu gantryn akselista, joudutaan sekin huomioimaan ohjelmassa ns. base koordinatteina. Tähän RoboDK:n mukana tullut postprosessori ei vakiokuntoisena kuitenkaan taivu, vaikka ulkoiset akselit saakin lisättyä projektiin. Postprosessorista puuttuu ne rivit, jolla tämän solun vaatimat koordinaatit tulisivat syötetyksi ohjelmaan. RoboDK:n mukana tulevat postat ovat kuitenkin salaamattomia, joten niitä voi vapaasti muokata itse, tai luoda halutessaan tyhjästä täysin oman postprosessorin. Koodit ovat kuitenkin selkeästi kirjoitettu ja hyvin kommentoitu, joten mitä suotta tekemään hyvää työtä alusta asti.
Tässä tapauksessa työhön oli tosin olemassa myös toinen tapa: jo aiemmin kirjoituksessa mainittu WeldControl. Savonian asemalle räätälöity etäohjelmointiohjelmisto toimii kahteen suuntaan, sillä saadaan luotua robottiohjelma, lähetettyä sen robotille ja sille voi myös noutaa esim. kalibrointiohjelman robotilta. Tässä projektissa WeldControl toimi hyvin ”mid prosessorina” RoboDK:n ja robotin välillä. Kun RoboDK ei suostunut ilman pythonin puukottamista kirjoittamaan Base koordinaatti –rivejä robottiohjelmaan, jätettiin se WeldControlin huoleksi. RoboDK:lla muuten valmis ohjelma lähetettiin WeldControlin kautta robotille. Näin robotin sai todellisuudessa liikkumaan ja toistamaan alun perin RoboDK:lla luotua ohjelmaa. Toki olisi yksinkertaisinta vain hyödyntää WeldControlin postprosessoria, mutta PEMA:n ohjelmiston mukana toimittamat postat ovat kryptattuja. Myöhemmässä vaiheessa on toki järkevintä luoda RoboDK:n avoimeen postaan itse skripti, joka lisää ohjelmaan nämä puutteet, mutta siitä lisää myöhemmin.
Ennen ohjelman lähettämistä WeldControlista robotille oli kuitenkin hyvä simuloida sille ladattu ohjelma, jotta varmistuttiin kaiken menneen RoboDK:n päässä suunnitelman mukaisesti. Näin ei kuitenkaan käynyt, vaan ensimmäisellä kerralla pulssisuhteet oli syötetty aavistuksen väärin, joten lopputulos olisi ollut robotilla silmät kiinni ajettuna aika kohtalokas.
Näiden lisäksi lisätyötä voi aiheuttaa myös TCP:n (tool center point) eli työkalupisteen säätö. Työkalupiste tulisi asemoida simulointimallissa siihen pisteeseen, jossa piste myös todellisessa asemassa sijaitsee, esim. hitsauspolttimen langan päässä. TCP:n asemointia helpottaa huomattavasti, jos simulointimalliin lisää varsinaista työkalupäätä vastaavan 3D-mallin ja asemoi sen, kuten se on myös todellisuudessa. TCP tulee siis asettaa sekä oikeaan kohtaan, että oikeaan asentoon suorakulmaisessa koordinaatistossa.
Tähän saakka saatujen kokemusten perusteella voisi olettaa, että ohjelmistolla on potentiaalia toimia osana suorakerrostusprosessia. Käytännön työstä vaaditaan kuitenkin reilusti enemmän käyttökokemusta, jotta asiasta voidaan luoda vakuuttavia johtopäätöksiä.
Haasteena toistaiseksi on muun muassa riippuvuus ulkopuolisista ohjelmista, kuten Slic3r ja WeldControl. Slic3r ei myöskään ole se paras mahdollinen ohjelmisto, sillä se on laadittu lähinnä muovien 3D-tulostusta varten. Myös itse suorakerrostus prosessina on vielä sen verran vähemmän tunnettu, että sitä varten ei varsinaisesti ole omaa ohjelmistoa, vaan kaikki ovat omanlaisiaan virityksiä tai prosessia soveltavia ratkaisuja. Monet suorakerrostuspalveluja tai laitteistoja tarjoavat yritykset ovatkin luoneet tätä varten kokonaan oman ohjelmistonsa työstöratojen laadintaan.
Joni Andersin
Projekti-insinööri
Savonia-ammattikorkeakoulu