10. fejezet - Univerzális robotvezérlő fejlesztése

Tartalom
10.1. Az univerzális robotvezérlő gondolata
10.2. A Scara robot
10.2.1. A robot irányítása [1]
10.2.2. A változók (9-22. ábra)
10.2.3. Decentrális irányítás
10.2.3.1. Direkt geometria
10.2.3.2. Inverz geometria
10.2.3.3. Kinematika
10.2.4. Centrális irányítás
10.2.4.1. Dinamika
10.3. A rendszer
10.3.1. A PCI kártya, [1]
10.3.2. DC végfok, [2]
10.3.3. IO modulok és futószalag
10.3.4. Tanítópult
10.3.5. Teljesítmény elektronika
10.3.6. A jelek szétosztása
10.3.7. Eredmények

10.1. Az univerzális robotvezérlő gondolata

Az ipar folyamatosan fejlődik. A gyártósorok egyre újabb, jobb, és gyorsabb gépekkel rendelkeznek. A korábbi eszközöket általában leselejtezik, vagy eladják. Az elavult, vagy elromlott gépek nagyrészt csak elektronikailag nem megfelelőek. Javításukat nem végzik el, mert elavultak, vagy nem kapni hozzájuk alkatrészt. A robotok a mechanikai konstrukció terén a technika fejlődéséből adódóan nem sokat változtak. Az elektronika fejlődése, viszont nagy léptekkel haladt az elmúlt évtizedekben. A leselejtezett robotok mechanikailag általában jó állapotban vannak. Egy robotnál a költségeket nagyrészt a mechanika adja. A motorok, pontosan legyártott fém alkatrészek, csapágyazások, csatlakozók, hajtóművek stb. Az elavult, tönkrement vezérlők cseréjével a robotok mechanikája újra felhasználható. Egy-egy vezérlő kifejlesztése mérnökcsoportok hónapokon keresztül tartó költséges munkájába kerül, ennél fogva nem éri meg a régi gépek új vezérlővel való felszerelése, amennyiben típusonként új rendszer kell kifejleszteni.

A robotvezérlés általános folyamata
10.1. ábra - A robotvezérlés általános folyamata


Egy univerzális robotvezérlő (9-19. ábra) létrehozása nagyobb munkát és energia befektetést igényel, mint egy-egy gép specifikus rendszer, viszont hosszútávon egy működő koncepció, sokkal jobb megoldást jelent az egyre több újra cserélt robot problémájára. A robotok többsége csak néhány alapvető dologban tér el egymástól. Ezek a geometria, a változók mérése, a motorok mérete, fajtája. Lehetnek zárt láncúak, nyílt láncúak, vagy akár a kettő kombinációja is. Nyílt láncú robotoknál az egyes szabadságfokok egymást követik, pozíciójuk és orientációjuk egymás függvényei. A zárt láncú robotok esetében az egyes csuklók egymástól függetlenek lehetnek, de mind hatással vannak a TCP pozíciójára, orientációjára. A vezérlőt modulárisan kell felépíteni, hogy az minden robothoz könnyen és gyorsan illeszthető legyen. Az interpolátor PC-n fut, így a robot geometriája, paraméterei megadhatók szoftveresen. A rendszer folytonos pályairányításra képes. Kisebb robotokban régebben kefés DC motorokat használtak. Mára mindenhol a PMSM és a BLDC motorok terjedtek el. A sebesség, pozíció és nyomaték referenciákat fogadó többféle teljesítményű végfokokkal a legtöbb robot minden szabadságfoka meghajtható. A végállás kapcsolók, enkóderek, homing szenzorok és egyéb specifikus perifériákhoz kell egyedi elektronikát tervezni. A rendszer AD, DA, és digit IO modulokkal kiegészítve szinte bármilyen géphez illeszthető. Az EMC2 köré terveztük a rendszert, ami egy univerzális robotvezérlő platform, létradiagram szerkesztővel és PLC funkcióval, így a vezérlő a robot mellett egyszerűbb perifériákat, szerszámtárat, futószalagot is kezelhet. A realtime Linux alatt futó EMC2-höz szükség van a PC mellett egyéb hardver kiegészítésre a jelek fizikai megjelenítése miatt. Erre a feladatra a legmegfelelőbb a PCI express bus és ebből következően egy PCI kártya. (2-2. ábra)

Az univerzális vezérlő blokkdiagramja
10.2. ábra - Az univerzális vezérlő blokkdiagramja


10.2. A Scara robot

A Scara (Selective Compliant Assembly Robot Arm) robot nyílt láncú 4 szabadságfokú RRTR rendszerű. (9-21. ábra) Kefés DC motorokkal és harmonic drive áttétellel szerelt. A motorok visszacsatolása inkrementális szögjeladóval (enkóder) történik. A végállás kapcsolók sorba kötöttek. A homing szenzorok optokapukból állnak. Az enkóderek index jellel is rendelkeznek. Végberendezésként megfogó, eltolt szerszámközéppontú ceruza illetve maró is felszerelhető.

A Scara robot elrendezése
10.3. ábra - A Scara robot elrendezése


10.2.1. A robot irányítása [1]

A Scara robot geometriája
10.4. ábra - A Scara robot geometriája


10.2.2. A változók (9-22. ábra)

x, y, zTCP Descartes koordinátái

TCP Descartes koordináta rendszer szerinti elfordulása

,az első és második kar hossza

,az első és második kar tömege

a szerszám tömege

az első kar tömegközéppontja és az első szabadságfok közti távolsága

a második kar tömegközéppontja és a második szabadságfok közti távolság

,,,az egyes szabadságfokok pozíciója

a robot Jacobi mátrixa

az első két kar nyomaték mátrixa

Taz első két kar éskinetikus energiája

,az egyes és kettes kar tehetetlensége

10.2.3. Decentrális irányítás

A robot első két szabadságfoka a tömegek és tehetetlenségek miatt hatással van egymásra a robot mozgatása során. A rendszer robosztus mozgásszabályozásában az inverz kinematikai egyenletekre támaszkodunk, és nem vesszük figyelembe a tömegek egymásra hatását. Ezt az irányítási módszert decentrálisnak nevezzük. Egyes gépeknél (pl. TTT elrendezésű CNC maró) a szabadságfokok nincsenek hatással egymásra. Ezekben az esetekben a rendszer tökéletesen hangolható és irányítható dinamikai egyenletek nélkül. A Norvégiában használt Scara esetében a kis tömegek és tehetetlenségek miatt a robot szépen mozgott decentrálisan is, de egy nagyobb gépnél elengedhetetlen a centrális szabályozás. A rendszer képes volt centrális szabályozásra, de annak élesztésére és behangolására nem maradt idő. A decentrális szabályozás során sebesség vagy pozíció referenciát adunk. Az EMC2 inverz kinematikai modulját módosítottuk a mi paramétereink és csuklóelrendezésünk szerint. A robotvezérlő folytonos pályairányításra volt képes. (Pont-pont irányítás esetén a robothajtások számára csak a következő pont (pozíció, szöghelyzet) adott, és nincs előírva a robot végberendezésének pályája a start és célpozíció között. Folytonos pályairányítás esetén a pályát tervező irányítórendszer már folytonos interpolációt végez a közbenső pályapontok meghatározása érdekében.) (3-3. ábra)

10.2.3.1. Direkt geometria

A TCP Descartes koordinátái a következő egyenletekkel fejezhetők ki (10.1),(10.2),(10.3):

(10.1)

(10.2)

(10.3)

10.2.3.2. Inverz geometria

A hatékony számításhoz bevezetjük az ang() függvényt (10.5).

jelenti az a és b közötti szöget az a,b,c háromszögben.

A cosinus szabályt (10.4) alkalmazva, kifejezhető (10.5) szerint.

(10.4)

(10.5)

(10.6)

és kifejezhető háromszögből, mint (10.7),(10.9)

(10.7)

(10.8)

(10.9)

(10.10)

(10.11)

(10.12)

10.2.3.3. Kinematika

A direkt kinematika kifejezhető a (10.1),(10.2) egyenletekből deriválással.

(10.13)

(10.14)

A kapcsolatot a Descartes sebességek és a csukló sebességek közt a egyenlet adja.

(10.15)

ahol

(10.16)

(10.17)

ahol a Jacobi mátrix

(10.18)

A robosztus irányítás blokkvázlata
10.5. ábra - A robosztus irányítás blokkvázlata


10.2.4. Centrális irányítás

A centrális szabályozás során figyelembe vesszük a robot dinamikai egyenleteit, a tömegeket és tehetetlenségeket. Fontos a szabályozás során az egyes csuklók és tömegek egymásra hatása. Ebben az esetben nyomatékkal kell beavatkozni, ehhez pedig áram szabályozásra van szükség. A nyomaték referenciákat a számított nyomatékok módszere adja.

10.2.4.1. Dinamika

A robot dinamikájának leírása fontos a szabályozó tervezéséhez. Az egyenletek segítségével kapjuk meg a nyomaték referenciákat, melyekhez hangolni kell a rendszert.

Q3 lineáris , mozgást végez és a független a többi szabadságfoktól, Q4 pedig elhanyagolható a szabályozó tervezésének szempontjából. A dinamika egy síkbeli manipulátorra egyszerűsíthető két csuklóval és a (10.19) egyenlettel írható le.

(10.19)

ahol a nyomaték mátrix, amely a rendszer konfigurációtól függő változó, és nemlieáris Coriolis és centrifugális erőt leíró kifejezés.

Tehetetlenségi mátrix:

(10.20)

(10.21)

ahol T a kinetikus energia.

T az első szabadságfok, a második szabadságfok, és a szállított tömeg kinetikus energiájának összege. T a (10.22) egyenlettel írható le.

(10.22)

ahol:

(10.23)

(10.24)

(10.25)

(10.23),(10.24), és (10.25) egyenleteket behelyettesítve a (10.21) egyenletbe, a következőt kapjuk.

(10.26)

(10.26) egyenletet egyenlet szerint deriválva az M matrix elemei kifejezhetők a következő egyenletekkel.

(10.27)

(10.28)

(10.29)

Nemlineáris összefüggések:

(10.30)

A rendszer hardveresen képes volt a centrális irányításra. A projekt ezen részét sajnos idő hiányában nem tudtuk befejezni.

A centrális irányítás blokkvázlata
10.6. ábra - A centrális irányítás blokkvázlata


10.3. A rendszer

A vezérlőt egy Lian Li gépházba szereltük. Itt kapott helyet a rendszer összes eleme kivéve a PLC funkció egységeit.

A legfelső szint az Enchanched Maschine Controller 2 ( továbbiakban EMC2), amely egy opensource robotvezérlő program Linuxra fejlesztve. A program nyílt forráskódjából adódóan folyamatosan fejlesztés alatt áll. Az EMC2 (3-5. ábra), (3-6. ábra), (3-7. ábra), (3-8. ábra) rendelkezik gép konfigurációkkal, de mi magunk is megírhatjuk bármely gép kinematikáját és belefordíthatjuk. A konfigurálás során egyszerűen megadhatjuk grafikus felületen, vagy .ini és .hal fájlokban a kimeneteket, bemeneteket, változókat, a gép paramétereit, maximális gyorsulás, sebesség értékeket, a TCP-re és a tengelyekre egyaránt, valamint a tengelyek homingolásának sorrendjét, limitjeit, 0 helyzetét.

Az EMC logója
10.7. ábra - Az EMC logója


Az EMC2 3D felülete
10.8. ábra - Az EMC2 3D felülete


A PC-be egy micro ATX alaplapot, egy 2 GHz-es processzort, 4 Gb memóriát tettünk. Az operációs rendszer és a robotvezérlő egy pendriveon fut. Az EMC2-nek nincs nagy gépigénye, viszont a számítások valósidejű futása nagyon fontos, hogy a PC megfelelő pillanatban tudjon referenciát adni, ezért a konfiguráció összeállítása során arra törekedtünk, hogy a gép realtime latency tesztje minél jobb legyen.

A vezérlő moduláris felépítése mellett RT-middleware (Robotics Technology Middleware) kompatibilis. Az RT-middleware egy „közös” robotirányítási platform, aminek segítségével különböző robotok könnyen hálózatba köthetők a közös munka érdekében. Az MTA Sztaki-ban megírták az EMC2 RT-Middleware kiegészítő komponensét.

Az EMC2 általános felülete
10.9. ábra - Az EMC2 általános felülete


Az EMC2 „Touchy” felülete
10.10. ábra - Az EMC2 „Touchy” felülete


10.3.1. A PCI kártya, [1]

Az EMC2-höz fejlesztett PCI kártyát mutatja a 9-29. ábra és 9-30. ábra. A kártya a PCI buszon keresztül megkapja az összes referenciát és továbbadja a megfelelő moduloknak. A PCI busz és a kártyán lévő FPGA között a kommunikációt egy PLX (PCI express kompatibilis IC) végzi el. Ez egy 32 bites párhuzamos kommunikáció. Az FPGA (field-programmable gate array, a felhasználás helyén programozható logikai kapumátrix) olyan félvezető eszköz, amelyik "logikai blokk"-oknak nevezett programozható logikai (programmable logic) komponenseket és programozható összeköttetéseket tartalmaz. Az első kártya adhatott analóg referenciát, STEP/DIR rendszerű referenciát (jobbra, balra lépés és lépés irányjelet egyaránt), és SPI kommunikációt. Az analóg és az SPI kommunikációs referenciák lehetnek sebesség, pozíció és nyomaték jelek egyaránt. A kártya egyszerre 6 tengelyt tud kezelni. Az EMC2 két PIC kártyát támogat és 9 tengelyt, így akár egy 9 szabadságfokú gépet is megmozgathatunk interpoláltan. Centrális mozgás szabályozás esetén a pozíció referencia jeleket át kell számolni nyomaték értékekre. Az FPGA forráskódjába (a kapu nagy száma miatt) felépíthetünk akár egy Texas DSP-t is, hogy az elvégezze a számított nyomatékok módszerének egyenleteit. Ennek tesztelésére és hangolására már nem maradt idő. A kártyán van továbbá 8x4=32 szabadon konfigurálható láb IO modulok számára, valamint 24 gép specifikus jeleknek. A 32 IO lábra 4 modul köthető modulonként 8 jellel. Ide kötöttem a bemeneti modult, a kimeneti modult, és a tanítópult jeleit. A 24 gép számára fenntartott pinre kerültek a végállás, homing szenzorok jelei és az E-stop. Minden jelet optoleválasztottunk. A PCI kártyán ötféle táp és kétféle föld található, a 208 lábú FPGA, a 176 lábú PLX IC és az egyéb periféria áramkörök mellett.

A PCI kártya
10.11. ábra - A PCI kártya


A PCI kártya nyomtatott áramköri terve
10.12. ábra - A PCI kártya nyomtatott áramköri terve


10.3.2. DC végfok, [2]

A DC szervo teljesítmény elektronikát mutatja a 9-32. ábra és 9-33. ábra. DIN sínre szerelhető dobozba tervezte. A modul 80 voltos busz feszültségig, 300 watt teljesítményig használható kefés DC motorokhoz. A végfokban teljes H hídba (9-31. ábra) kötött FET-ek vannak áraméréssel kiegészítve. Az áramot a sönt ellenálláson eső feszültségből határozzuk meg, így a végfok áramszabályozásra is képet. Az alsó oldalon találhatók a digitális jelek csatlakozói. Ezek az enkóder csatlakozó, a referencia és az USB port. A végfokhoz tartozik egy PC oldali hangoló program, amelyen a beállásokat, referenciát, követési hibát, áramjelet és egyéb információkat láthatunk a PID szabályozó tagjainak súlya mellett. A modul felső oldalán találhatóak a teljesítmény elektronika csatlakozói. Ezek a DC busz, a digitális táp, és a motor kivezetése. A végfokon minden digitális referencia és egyéb jel optoleválasztott.

Teljes H-híd vázlata áraméréssel
10.13. ábra - Teljes H-híd vázlata áraméréssel


A DC végfok 3D terve
10.14. ábra - A DC végfok 3D terve


A DC végfok
10.15. ábra - A DC végfok


10.3.3. IO modulok és futószalag

A rendszerhez terveztünk optoleválasztott bementi és relés kimeneti modult. Ezeket is DIN sínre szerelhető rendszerben raktuk össze. A relé modulon keresztül vezettem az E-stop jelet, így szoftveres probléma esetén az EMC2 is leállíthatja a rendszer teljesítmény elektronikáját. A vezérlő PLC funkciói, az EMC2 létradiagram szerkesztője és a ki-be menetek is kihasználtak. A munkám során kötöttem a modulokhoz egy 3 fázisú futószalagot. Ehhez szereltem három fénysorompót és egy kiegészítő elektronikát, amivel a futószalag enable és irány jeleket kap az EMC2-től, illetve digitális jeleket ad a tárgyak elhaladásáról. A vezérlő moduláris felépítésének köszönhetően így két gép dolgozhat közös irányítás alatt.

10.3.4. Tanítópult

A robot tanítópultját egy 800x600 pixel felbontású VGA érintő képernyő köré terveztem. Az LCD kijelző mellett el kellett, hogy férjen a PC üzemi kapcsolója, egy E-stop kapcsoló, egy kétirányú kapcsoló a Z koordináta tengely szerinti joggoláshoz, valamint egy joystick a többi irány számára. A joystick tengelye mozog X-Y irányba, elfordul a saját tengelye körül (negyedik szabadságfok), valamint rendelkezik egy nyomógombbal a végberendezés ki-be kapcsolására. A tanítópultból digitális jelek jönnek. Z irányba, és az elforduláshoz 2-2, a végberendezéshez 1, X-Y irányokhoz, pedig 4-4 a robot lassú és gyors mozgatásához a vízszintes síkon. A komparátorok referencia feszültségét trimmerekkel állítottam be, hogy a tanítópult könnyen hangolható és ergonomikus legyen. Az elő és hátlapok kivágása után egy keretet hajlítottam a tanpult köré, ami végül egy állványon kapott helyet a gép mellett. (ld. 9-34. ábra és 9-35. ábra)

A tanítópult
10.16. ábra - A tanítópult


A tanítópult működés közben
10.17. ábra - A tanítópult működés közben


10.3.5. Teljesítmény elektronika

A rendszerben (9-37. ábra) alapvetően két külön táp van. A PC tápja és a teljesítmény táp. A teljesítmény táp nincs feszültség alatt, ha a PC-t nem kapcsoltuk be. A megfelelő feszültségértékeket toroid transzformátorokkal és teljes Graetz hidakkal állítottam elő. A transzformátorok előtt és után volt primer illetve szekunder oldali biztosíték. A teljesítmény tápok közül van 2x80 volt DC a két nagyobb motor, 2x60 volt DC a két kisebb motor számára, és 16 volt az enkóderek, homing szenzorok tápellátása, jelek szétosztása és a DC végfokok digitális tápellátása miatt. Az összes DC táp pufferelt. A nagy pufferek különösen fontosak voltak a motorok tápellátása esetében, hogy az 50 Hz-es frekvencia sehol ne jelenjen meg a szabályozás során zavarként. Az E-stop kapcsolók megszakítják a végfokok teljesítmény tápját, de a digitálist nem. A robotvezérlő (9-36. ábra) és a teljesítmény elektronika összeállításánál fontos volt az egyes blokkok megfelelő távolsága, szigeteltsége az elektromágneses zavarok miatt.

A vezérlő
10.18. ábra - A vezérlő


A rendszer blokkvázlata
10.19. ábra - A rendszer blokkvázlata


10.3.6. A jelek szétosztása

A robot összes jele és perifériája egy 51 eres kábelen érkezett be a vezérlőbe. Ezeket a jeleket ki kellet mérni, biztosítani a megfelelő tápellátásokat, leválasztásokat, szűréseket és szétosztani a megfelelő modulok között. Ide tartozott a négy enkóder A, B csatornája illetve Index jele, a négy homing szenzor és a sorba kötött végállás kapcsolók. (9-38. ábra)

A jeleket elosztó nyomtatott áramkör
10.20. ábra - A jeleket elosztó nyomtatott áramkör


10.3.7. Eredmények

A megfeszített munka végeztével hazautazásunk előtt ismét munkába álhatott a Scara. A centrális mozgás hangolására sajnos nem maradt időnk, de a robot a kis tömegei miatt decentrálisan nagyon szépen mozgott. Martunk, rajzoltunk G-kód alapján, interpoláltunk egyenes mentén, pont körül, beállítottuk a joggolást, mértünk beállásokat. (9-39. ábra), (9-40. ábra)

Rajzolás G-kód alapján
10.21. ábra - Rajzolás G-kód alapján


A marás eredménye
10.22. ábra - A marás eredménye