Számítástechnikai lehetőségek a robotikában

Avatar photo

A robotok architektúrája és felépítése ma már funkciók és képességek széles tárházát teszi elérhetővé. E funkciók és képességek nagyban befolyásolják feldolgozási képességüket és a teljesítményük biztosításához szükséges eszközöket. Biztonsági kerítéssel körülvett, ellenőrzött környezetben dolgozó gyártórobotok esetében viszonylag kevés biztosítékra van szükség, és egyszerű vezérlési stratégiák alkalmazhatók.

A fejlesztőknek mindössze azt kell biztosítaniuk, hogy a kerítés kinyitásakor vagy az alkatrészek nem megfelelő illeszkedése esetén leálljon a robot. Ezzel együtt a biztonsági kihívások zöme egyszerű zárószerkezetekkel elhárítható, nincs szükség képérzékelők és szoftverek bonyolult kombinációjára. A fő feldolgozási követelmények a hatékony és pontos mozgásvezérlés biztosítására irányulnak. Ehhez elsősorban mikrovezérlőkre vagy digitális jelfeldolgozókra van szükség, amelyek szabályozzák a motorok és egyéb működtetőegységek felé irányuló energiaáramlást.

A mikrovezérlő-egységek fejlődése

A hagyományos gyártórobotok viszonylag rugalmatlan kialakítással rendelkeznek. Valamennyi programjukat be kell programozni, majd alapos szimulációnak és tesztelésnek kell alávetni, mielőtt elfoglalhatnák helyüket a gyártásban. A felhasználók azonban rugalmasabb robotokat szeretnének gyártóüzemeikbe, amelyeket gyorsan be lehet vetni különböző feladatok elvégzésére. Emellett képesnek kell lenniük arra, hogy közlekedjenek az üzem területén, vagyis működésük áttevődik a biztonsági kerítésen kívülre. E követelmények teljesítése nagyobb feldolgozási teljesítményt igényel, amelynek révén a robot képes anélkül navigálni, hogy véletlenül tárgyakba ütközne vagy kárt tenne a közelében tartózkodókban.

Tulajdonképpen a robotoknak valós időben fel kell dolgozniuk az érzékelők által küldött adatokat, és a pillanat töredéke alatt kell a körülmények változásaihoz igazodó, intelligens döntéseket hozniuk. Minél jobban kilépnek a biztonsági kerítés árnyékából és minél többet érintkeznek emberekkel, annál nagyobb feldolgozási teljesítményre van szükségük ahhoz, hogy a műhely viszonylag jól ellenőrzött környezetén túl tevékenykedhessenek. A szolgáltató robotoknak és kézbesítő drónoknak képesnek kell lenniük bonyolult helyzetekre intelligensen reagálni.

Az ARM Cortex-M processzorcsaládját például számtalan mikrovezérlő termékben alkalmazzák.

Ezek a fejlettebb forgatókönyvek egyértelműen szofisztikáltabb szoftvereket és ezzel párhuzamosan nagy áteresztő képességű számítási rendszereket igényelnek. A fejlesztők nagyfokú szabadsággal dönthetnek arról, hogyan biztosítják a szükséges feldolgozási teljesítményt, nem csak a beszállítók, hanem az általános architektúra tekintetében is.

Mikrovezérlők használata

Az alapszintű robotokban már hosszú évek óta a mikrovezérlő egység a legkedveltebb számítástechnikai elem. A mikrovezérlő egység lelke a mikroprocesszor. Kezdetben a mikrovezérlő egységekbe integrált mikroprocesszormagokat egyszerű aritmetikai és logikai szintű vezérlésre optimalizálták, a több mint 50 évvel ezelőtti bevezetésük óta eltelt időszakban azonban mind a teljesítmény, mind az adatkezelő képességek tekintetében robbanásszerű fejlődésen mentek keresztül. Manapság már olyan költségszinten kínálnak a natívan 32 bites szavakkal dolgozó, pipeline feldolgozást, Harvard architektúrát és más nagy teljesítményű funkciókat biztosító mikroprocesszormagokat, amely lehetővé teszi még az egyszerűbb rendszerekben történő alkalmazásukat is.

Az ARM Cortex-M3-hoz hasonló tipikus 32 bites mikroprocesszormag párhuzamosan dolgozza fel az utasításokat, vagyis több lépésben hajtja végre a parancsokat. Az M3 pipeline első lépése az utasítás lehívása egy helyi gyorsítótárból. Ha az utasítás nem található a gyorsítótárban, először be kell tölteni a központi memóriából. A pipeline-ba bekerült utasítás byte-jainak dekódolása során meghatározásra kerül, hogy mely funkcionális egységeket kell aktiválni az utasítás végrehajtásához. Az utolsó lépés pedig az utasítás végrehajtása.

Párhuzamos utasítás-végrehajtás (pipelining) és megszakításkezelés

A párhuzamos utasítás-végrehajtás révén elfedhetők az olyan hatások, mint a memória késleltetése. Lehetővé teszi több utasítás átfedő végrehajtását és gyorsítja az órajel-frekvenciát, mivel órajelciklusonként kevesebb logikai lépés elvégzésére van szükség. A gyorsabb processzormagok akár tíz lépésből álló vagy annál is hosszabb pipeline-okat használnak. A hosszú pipeline-ok hátulütője az elágazásoknál jelentkező magas késleltetés. Megtett elágazás esetén időre van szükség ahhoz, hogy a pipeline újra felöltődjön az új elágazás számára szükséges utasításokkal.

A megszakítás vezérlők lehetővé teszik a processzormag számára, hogy más feladatok elvégzése érdekében ideiglenesen felfüggessze a fő program végrehajtását. A megszakításkezelés lényeges eleme azoknak az alkalmazásoknak, amelyeknek valós idejű választ kell adniuk különböző eseményekre. Enélkül a programkódnak tartalmaznia kellene olyan ciklusokat, amelyek folyamatosan információt kérnek külső eseményekről, ami a számítási kapacitás sokkal nagyobb részét foglalná le.

Robotfejlesztők számára tervezett mikroprocesszorok

A legtöbb processzormag által alkalmazott prioritási séma lehetővé teszi a kevésbé fontos perifériaeszközökről érkező megszakításkérelmek figyelmen kívül hagyását, amikor a processzor kritikus fontosságú rutinfeladatot hajt végre, például egyik feladatról a másikra vált, vagy kritikus megszakítás vezérlőről érkező utasítást hajt végre. Ezáltal egy rendkívül rugalmas architektúra hozható létre, amely képes kezelni valós idejű alkalmazások számos különböző típusát.

A robotfejlesztők számára gyártott mikroprocesszorok egyik fontos és speciális válfaja a digitális jelfeldolgozó processzor (DSP). Ez a processzormag szűrőkhöz és gyors Fourier transzformációhoz hasonló jelfeldolgozó algoritmusokhoz optimalizált utasításokat és végrehajtó hardvert tartalmaz. Az ilyen utasítások tartalmaznak egyebek mellett – gyakorlatilag minden DSP algoritmusban megtalálható – gyors szorzási és összeadási műveleteket. Mivel a DSP kód mátrixokhoz és vektorokhoz hasonló adatstruktúrákon működik, az utasítás-végrehajtás viszonylag könnyen párhuzamosítható. Ez vezetett az „egy utasításfolyam, több adatfolyam” (SIMD) típusú végrehajtási egységek alkalmazásához, amelyek ugyanazt a műveletet – például szorzást és összeadást – végzik el egy időben nagy mennyiségű adaton. Ez az egyszerű és költséghatékony megoldás jelentősen növelte a gyorsaságot.

A mikrovezérlő egység jó néhány integrált perifériaeszközt tartalmaz, amelyek a processzormag körül helyezkednek el. Általában egy ipari vagy robotikai felhasználásra szánt mikrovezérlő egység perifériaeszközei a bitcella tömbtől a fejlett időzítőindító egységekig terjednek, amelyek átveszik a mikroprocesszortól az impulzusszélesség-moduláció (PWM) feladatát. A PWM szinte minden motorvezérlésű rendszer alapvető komponense, és mint ilyen, kiemelt szerepet tölt be a robotikai tervezésben. Más System-on-Chip (SoC) eszközök további funkciókkal egészítik ki a mikrovezérlő egységet, ide sorolható például a vezeték nélküli adóvevő, az egyedi titkosítási és hitelesítési logika és a grafikus gyorsító.

Vezérlés és hardver

Az intelligens perifériák használata jól szemlélteti a robotfejlesztés egyik egyre nagyobb jelentőségű elvét: az elosztott vezérlésben és a hardveres gyorsításban rejlő lehetőségek kiaknázását. A mikroprocesszor használható ugyan impulzusszélesség-moduláció vezérlésére, de ez nem feltétlenül eredményez hatékony erőforrás-elosztást. A probléma abban áll, hogy a szoftvernek előre beprogramozott időközönként többször is váltania kell az áramellátást a motor táplálását vezérlő félhídban lévő tranzisztorok között. Valós idejű óráról vagy számlálóról érkező megszakításkérelmekkel a szoftver könnyen szabályozhatja az áramellátást, majd konfigurálhatja az időzítőt a következő ciklushoz. Ez azonban nagyon megnöveli a megszakítások gyakoriságát egy amúgy rendkívül egyszerű műveletsor végrehajtása során.

Az időzítő és kapcsolási logikát ötvöző PWM vezérlőnek köszönhetően elkerülhető, hogy minden kapcsolási művelet megszakítsa a mikroprocesszormag fő feladatát. A szoftvernek mindössze időnként frissítenie kell az időzítőket, hogy beállítsa a PWM kívánt munkaciklusát. Mivel viszonylag kis mennyiségű kiegészítő logikáról van szó, amely jelentős ideig képes a processzortól függetlenül működni, jelentősen javul a szoftver hatékonysága. Az architektúráknak és a hardveres tehermentesítő mechanizmusoknak is van egy közös vonásuk, amely egyre fontosabbá válik majd a robotfejlesztésben. A hardveres perifériaeszközök valós időben kezelik a gyakori eseményeket, míg a szoftver szabályozza a perifériaeszközök működését.

A hardveres perifériaeszközök tekintetében a fejlesztők lehetőségeinek korlátot szab az integráltáramkör-beszállítók által kínált funkciók köre, bár a hardveres állapotgépeken alapuló szekvencia feldolgozók alkalmazása növeli rugalmasságukat. Ezek a szekvencia feldolgozók képesek például a processzormag közreműködése nélkül olvasni az analóg-digitális átalakítók értékeit, közvetlen memória-hozzáférés (DMA) segítségével adatértékeket továbbítani a központi memóriába, valamint időzítőket beállítani és újrakonfigurálni. A lehetőségek azonban továbbra is korlátozottak.

Felhasználó által programozható kapuáramkörök (FPGA) robotikai alkalmazása

A felhasználó által programozható kapuáramkörök (FPGA) lehetőséget biztosítanak olyan egyedi hardveres perifériaeszközök megalkotására, amelyek optimalizálhatók konkrét robotvezérlési és gépi tanulási funkciókra.

A legtöbb FPGA architektúra alapja egy programozható keresőtábla, amely bármely logikai funkció végrehajtására konfigurálható, és igazságtáblaként funkcionál. Az összeköttetés hálózatban lévő programozható kapcsolók a keresőtáblákat összetett kombinációs logikai áramkörökké fűzik össze. Jellemzően minden keresőtáblához egy vagy több regiszter és további támogató logika tartozik, ilyenek például az átviteli lánc bemenetei és kimenetei, hogy lehetővé váljon az aritmetikai összeadók hatékony alkalmazása. Ezeknek a funkcióknak az összessége logikai blokkot alkot, amelyet az FPGA többszörösen replikál.

A teljesen egyedi logikához képest hátránya, hogy sokkal alacsonyabb fokú a szilícium cellák hatékonysága. Az egyedi, szabványos cellás kivitelhez viszonyítva 10–20-szor akkora szilícium terület szükséges egy logikai áramkör elhelyezéséhez az FPGA összeköttetés hálózaton.

A legtöbb FPGA azonban még a rendszer futása közben is lehetővé teszi a logikai tömb átprogramozását. Ezáltal lehetővé válik az erőforrások megosztása, mert a gyorsítók dinamikusan töltődnek be az összeköttetés hálózatba, vagyis csak akkor, amikor szükség van rájuk. Ez a megközelítés nagyobb rugalmasságot biztosít a végső kialakításhoz is, lehetővé téve új hardverek és további funkciók támogatását.

Az FPGA rugalmasságát a keresőtábla (Look-Up Table, LUT) adja.
Az FPGA keresőtábláit a kívánt funkcionalitás biztosítása érdekében útválasztó mátrixszal kötik össze.

Az 1980-as évekbeli megjelenésük óta az FPGA-k több olyan funkcióval gazdagodtak, amelyek javítják általános kapusűrűségüket. A memóriablokkok lehetővé teszik a programozható logikához közeli bufferek és gyorsítótárak létrehozását. Ezek sorához csatlakoztak nemrégiben a digitális jelfeldolgozó processzorok. Számos esetben a digitális jelfeldolgozó processzorok 8 bites vagy 16 bites egységekből álló építőelemek révén kerülnek alkalmazásra, amelyek kombinációja lehetővé teszi a nagy pontosságú adattípusok támogatását.

A digitális jelfeldolgozó egységek rendkívül alkalmassá teszik az FPGA-kat a nagy adathalmazokat előállító érzékelők, például kamerák, radarok és egyéb típusú képérzékelők által továbbított adatok feldolgozására. Tipikus megoldást jelent például digitális jelfeldolgozó egységek és logikai gyorsítók együttes alkalmazásával kezelni egyebek mellett képtorzításra vagy világítás kompenzációra szolgáló algoritmusokat, amelyek következetesebb adatokat biztosítanak gépi tanuláshoz és hasonló funkciókhoz. Ezeket a funkciókat összehangolhatják a programozható összeköttetés hálózatba integrált egyedi mikroprocesszormagok, amelyek mikroméretű szekvencia feldolgozóként szolgálnak a különböző feldolgozási primitívek számára.

A GPU-kban, a VPU-kban és a multiprocesszálásban rejlő lehetőségek kiaknázása

Egy másik alternatíva – valószínűleg inkább képfeldolgozási feladatok számára – a grafikus feldolgozó egységek (GPU-k) vagy vizuális feldolgozó egységek (VPU-k) alkalmazása. Ezek az egységek magas szinten párhuzamosított, képfeldolgozásra optimalizált digitális jelfeldolgozó processzorokat tartalmaznak. Olyan robotok esetében, amelyeknek különösen magas szinten kell érzékelniük a környezetüket, érdemes ezeket az egységeket több processzorral kombinálni – esetenként ugyanazon a chipen, heterogén, többmagos SoC eszközként.

Emellett hasznos lehet kiaknázni az általános megbízhatóságot és biztonságosságot javító multiprocesszálásban rejlő lehetőségeket is. Minden számítógép-alapú fejlesztés gyenge pontja, hogy olyan memóriatechnológiákra támaszkodik, amelyek érzékenyek az ionizáló sugárzásra. Amikor pedig ionizáló sugárzás éri a szilícium integrált áramköri hordozót, szabad elektronok egész sora képződik, amelyek megváltoztatják a tranzisztor logikai állapotát. Kombinációs áramköri tranzisztorokban ez a hatás általában átmeneti, és csak ritkán jelentkezik.

A memóriák és a regiszterek azonban sérülékenyebbek e változással szemben, mivel a tárolt adatok elszivárgásának megakadályozása érdekében újrahasznosítják tartalmukat. A hibaellenőrző és javító (ECC) kódok segítenek megfékezni a problémát. A memóriasűrűség növekedésével párhuzamosan nő az egyszeri esemény okozta zavar valószínűsége, ami egyre nagyobb problémát jelent, mivel az integrált áramköri komponensek száma a Moore-törvény szerint gyors ütemben növekszik majd. Ráadásul az ECC-kódok nem észlelik az összes hibát, ami ahhoz vezethet, hogy a program helytelen adatok alapján dolgozik, ami végső soron vezérlési hibát okoz. Az emberekkel érintkezésben álló robotok esetében erre nem kerülhet sor.

Redundancia technikák és különböző kialakítású processzorok

A redundanciához hasonló technikák kiküszöbölik ezt a problémát azáltal, hogy az egyes processzorok ellenőrzik egymás munkáját.

A processzorok lehetnek azonos típusúak, és futtathatják ugyanazt a kódot. Az ellenőrző logika összehasonlítja a kimeneteiket, és szavazás útján meghatározza, hogy melyik műveletet engedélyezze, vagy a processzorok megegyezéséig újrafuttatja a műveleteket.

Három processzor többségi szavazáson alapuló használata drágább ugyan, de kevésbé akasztja meg a munkafolyamatot, mivel a műveletek újrafuttatása nemkívánatos késedelmeket okozhat. Moduláris redundancia kapuszinten is alkalmazható.

A rendundáns elrendezésben nem szükséges azonos processzorokat használni. Egyes architektúrákban az ellenőrző processzor szerepét egy gyengébb teljesítményű processzor tölti be. Ahelyett, hogy ugyanazt a szoftvert futtatná, egyszerűen konzisztencia-ellenőrzéseket végez, sikertelen ellenőrzés esetén pedig kikényszeríti az újbóli végrehajtást, illetve szélsőségesebb esetekben a teljes visszaállítást.

A szisztematikus tervezési hibák előfordulási esélyének minimalizálása érdekében érdemes duplikált processzorokat tervezni és különböző módon alkalmazni. Ezt a technikát már használják az autóipari biztonsági rendszerek számára kifejlesztett egyes többmagos SoC eszközöknél.

Architekturális lehetőségek robotfejlesztők számára

Manapság már a robotfejlesztők architekturális lehetőségek széles skálájából választhatnak, amelyek az egyszerű szerkezetektől a rendkívül rugalmas, a problémákra és akadályokra intelligensen reagáló, zökkenőmentesen működő gépekig terjedően segítik őket a tervezésben.

Total
0
Shares
Előző bejegyzés

Következő generációs képzés: Hogyan forradalmasítja az AR és a VR a biztonságot?

Következő bejegyzés

Az áram vizsgálata: az elektromos tesztelési eljárások közelebbről

Kapcsolódó bejegyzések