Robotika Alapok Helfenbein Tamás htamas@chemium.hu
Tartalom Bevezető Robotok felépítése Alkalmazási területek Szabadságfok Robotok típusai Robotok modelljei Robotok kinematikai modellje Robotok dinamikai modellje Robotok irányítása Csuklók szabályozása Szabályozás típusai Erőirányítási módszerek Pályatervezés Útvonaltervezés és navigáció Robot szoftverarchitektúrák és -platformok Szimulációs platformok
Bevezető Robot Robota Szláv eredetű szó Jelentése: szolgamunka, munka Irányított mechanizmus Képes feladatok végrehajtására Irányítás Emberi irányítás Autonóm robot
Bevezető Alkalmazási területek Ipari környezetben festés, rakodás, hegesztés Mezőgazdaság betakarítást végző autonóm robotok Bányászat - bányászrobotok Szállítás mobilrobotok Veszélyes környezet kockázatcsökkentés Felfedezés és felkutatás - kutatórobotok Egészségügy, ápolás, személyi kiszolgálás műtőrobotok Hadászat - drónok Szórakozás - robotfoci Életminőség javítás - exoszkeleton
Miből áll a robot? Irányított mechanizmus Előírható pályán mozog Előírható pálya mentén vagy annak pontjaiban meghatározott feladatokat lát el Elvi felépítés Szegmensek Csuklók kapcsolják össze ezeket (joint) Végberendezés (end effector) Csuklók típusai Rotációs Transzlációs
Miből áll a robot? /2 Mechanikai szerkezet Váz, összekapcsoló mechanika Tengelyek, szíjak, meghajtó motorok, stb. Érzékelők Belső és külső Belső: saját helyzet, állapot és annak változásának mérése Külső: környezet paraméterének mérése: tapintás, látás, stb. Aktivitás szerint Aktív: ultrahang, lézerscanner Passzív: kamera, enkóder Beavatkozók Pozícióváltozáshoz Elektromos, hidraulikus, pneumatikus motor Környezet megváltoztatása Végberendezés: Megfogó szerkezet, festékszóró, stb..
Szabadságfok Szabadságfok minden olyan irány, melyben a robot mozogni képes (DoF, Degree of Freedom) Merev, szabadon mozgó robot: 6 DoF = 3 pozíció + 3 orientáció (a) 6 DoF Stanford kar (b) 3 DoF mobil robot
Szabadságfok /2 Szabadságfokok lehetnek redundánsak Effektív szabadságfok: leírható vele az állapot Irányítható szabadságfok Az irányítható szabadságfok lehet kisebb, mint az effektív szabadságfok Holonomikus robot: a két érték megegyezik
Robotok típusai Helyváltoztatás Fix: helyváltoztatásra nem képes Mobil: helyváltoztatásra képes Elágazás Elágazás nélküli Pl. egyszerű robotkar Elágazással rendelkező Lánc zártsága Nyílt láncú Zárt láncú Merevség
Robotok modelljei Kinematikai modell Geometria A robot geometriai helyzetét, állapotát írja le Pozíció és orientáció Differenciális mozgás Sebességek, statikus erők Dinamikai modell Összefüggések: Tömeg és inercia paraméterek Erők és nyomatékok Mozgás
Robotkar kinematikája Nyílt láncú robotok esetén a szegmensek és csuklók számozhatók Kar (arm): 0,1,2,3 Csukló (wrist): 4, 5, 6 Kézfej (hand): végberendezés
Pozíció és orientáció Merev esetben Geometriai kényszerek adódnak Tekintsük minden helyzetet egy-egy keretnek (Descartes-féle derékszögű koordinátarendszernek) Geometriai transzformációkkal jellemezhető az i- edikből (i+1)-edik
Pozíció és orientáció /2 Pozíció Descartes-féle koordináták Orientáció megadása Euler-szögek forgatás: z, y, z RPY szögek Csavarás (roll), billentés (pitch), forgatás (yaw) forgatás: z, y, x Kvaterniók adott tengely körüli elforgatás: egyértelmű (0.. π) Forgatás 2α szöggel u tengely körül sinα + cosα u
Pozíció és orientáció /3 Transzformáció a szomszédos szegmensek közt Homogén koordináták Denavit-Hartenberg alak Csukló tengely iránya z irány E mentén Eltolás: d Forgatás: Végberendezés helyzete Transzformációk sorozata Transzformációs gráf
Kinematikai feladatok Direkt geometriai feladat Adott: csuklók állapota, robot kinematikai modellje Keresett: végberendezés helyzete (pozíció és orientáció) Megoldás Transzformációk alkalmazása
Kinematikai feladatok /2 Inverz geometriai feladat: a pályatervezés alapja Adott: végberendezés pozíciója és a robot kinematikai modellje Keresett: csuklókoordináták, azaz a csuklók pozíció alapjelei Megoldás Dekompozíció: speciális esetben Független egyenletek keresése Problémák Redundáns szabadságfokok Végtelen megoldás Reprezentáció miatt nincs jó megoldás bizonyos pozíciókban (kvaterniók jobbak)
Differenciális mozgás leírása Csuklókoordináták és világkoordináták lokális linearizálása Ez csuklókoordináta (munkapont) függő A dinamikai modellhez is elengedhetetlen Leírja a kapcsolatot a Csuklókoordináták hatására Világkoordinátában történő elváltozás
Differenciális mozgás leírása Jacobi mátrix A Jacobi mátrixszal leírható egy adott csuklópozícióban az adott csuklókoordináta változásának hatása a végberendezés helyzetére Munkapont függő! Számítható felhasználásával a TCP (tool center point): Sebességek, gyorsulások Külső erők hatása
Differenciális feladatok Direkt (differenciális) feladat A csuklókoordináták változásának, csuklósebességek, csuklógyorsulások hatására Elmozdulás, szögelfordulás számítása Sebesség, szögsebesség számítása Gyorsulás, szöggyorsulás számítása Megjegyzés: munkapont függő!
Differenciális feladatok /2 Inverz (differenciális) feladat A TCP világkoordinátákban mért elmozdulás, sebesség, gyorsulás segítségével Csuklókoordináták változásának számítása Csuklósebességek számítása Csuklógyorsulások számítása Megjegyzés: munkapont függő!
Külső erők hatása Számítás a Jacobi mátrix segítségével lehetséges Bemenet: munkapontban a Jacobi mátrix, külső erők eredője Erőmérés Kimenet: terhelés a csuklókon
Dinamikai modell Mozgó robot teljes leírása (nemlineáris rendszer) Csuklókra ható összes erő figyelembevétele Csukló meghajtó nyomaték Tehetetlenségi nyomaték Centrifugális erő Coriolis erő Gravitációs erő Meghajtás tehetetlensége, súrlódás Egyéb erők: rugók, stb. Módszerek Newton-Euler (Newton axiómák és perdület-tétel) Euler-Lagrange (kinetikus és potenciális energia) Appel egyenletek (gyorsulás-energia) Renaud módszer (fiktív test helyettesítés, momentumok, Newton- Euler módszer)
Dinamikai modell /2 Elemei Gyorsító nyomaték Rendszer inerciamátrix (H) i=j esetén motor gyorsító nyomatéka i<>j esetén a többi csukló gyorsításának hatása Centrifugális és Coriolis erők (h) j=k<i centrifugális erő j=k Coriolis erő Gravitációs erő (G) Külső erők
Robotok irányítása Mozgás irányítása Betanítás Pontok Folytonos pálya Fontos: pálya követése Pont-pont irányítás Fontos: pálya megtervezése, pálya követése Hogyan jutunk el A helyzetből B helyzetbe? Mit tudunk irányítani/vezérelni?
Robotok irányítása /2 Mit tudunk vezérelni? Motor, motorvezérlő adottságaitól is függ A motor képességeinek megfelelő vezérlési/szabályozási struktúra keresése Szabályozás Hogyan tudjuk eljuttatni A helyzetből B helyzetbe? Meg kell tervezni a pályát -> Pályatervezés
Csuklók szabályozása Tipikus szervóhajtás egy csuklón Elektromotor tengely hajtását végzi Szabályozási szintek Nyomaték szabályozás Sebesség szabályozás (fordulatszám) Pozíció szabályozás (szögelfordulás/helyzet) Lehetséges alapjelek Előírt nyomaték Előírt csuklósebesség Előírt csuklókoordináta
Csuklók szabályozása /2
Irányítási módszerek Végberendezés vagy csuklók? Irányítás előírt pálya mentén csuklókoordinátákban Csuklók paraméterei alapján ( nyomaték, sebesség, pozíció) nem elégítik ki az igényeket Irányítás végberendezés pozíciója alapján, világkoordinátákban Mérés Alapjel azonban azonos Ezért inverz feladatot kell megoldani
Irányítási módszerek /2 Minél magasabb szintű feladatokat lehet a motorvezérlők Decentralizáltság foka a motorvezérlő egységekben Pozíció szabályozás Fordulatszám szabályozás Nyomaték szabályozás Centralizált szabályozó A modellek további részeit futtatja Erő irányítás Adaptív irányítási módszerek
Decentralizált pozíciószabályozás A központi vezérlő pozíció alapjeleket küld Pozíció szabályozás a szervomotorokban Követelmények Jó követési tulajdonságok Külső erők kompenzálása (zavarjel)
Decentralizált pozíciószabályozás /2 Betanítás Pontok felvétele Interpoláció ún. pályatervezéssel Csuklókoordináták szerint Világkoordináták szerint
Decentralizált fordulatszám szabályozás Pozíció szabályozást a központi vezérlő végzi Világ vagy csuklókoordináták szerinti Fordulatszám alapjelet küld RMC: Resolved Motion Control Direkt geometriai feladat Munkapontfüggő Jacobi mátrix! Számolás világkoordinátákban Maximális áram korlátra figyelni kell
Decentralizált nyomaték szabályozás Hajtások nyomatékszabályozást végeznek Központi vezérlő közvetlen nyomaték alapjeleket adhat Típusok Csuklónként PID szabályozás Előre számolt nyomatékok módszere (CTC)
Decentralizált nyomaték szabályozás /2 Csuklónként PID szabályozás Nem veszi figyelembe a kölcsönhatásokat A szabályozó más munkapontban másképp viselkedhet
Decentralizált nyomaték szabályozás /3 Előreszámított nyomatékok módszere CTC: Computed Torque Control Dinamikai modellt használja, hibával kiegészítve Cél a teljes dinamikai hiba minimalizálása Alapjel képzése csuklókoordinátákban Pozíció Sebesség Gyorsulás
Decentralizált nyomaték szabályozás /4 (Előre)számított nyomatékok RMAC: resolved motion acceleration control Világkoordinátákban mért hibajelekkel dolgozik Gravitáció kompenzálás Csak a gravitációs komponensek kellenek a CTC-be
Erőirányítási módszerek Alapelvek Kontaktus erő hatására ellenerő keletkezik Továbbterjed a csuklókra Engedékenységi centrum számítása: kontaktus síkja, pozícióeltéréshez Osztályozás hibajel alapján Merevség irányítás Csillapítás irányítás Impedancia irányítás Implicit irányítások: merevség és impedancia Erőirányítás Hibrid pozíció és erőirányítás Operációs tér módszer
Erőirányítási módszerek /2 Merevség irányítás pozíció eltérés a hibajel Csillapítás irányítás sebesség eltérés a hibajel Impedancia irányítás sebesség és pozíció eltérés a hibajel Implicit irányítások: merevség és impedancia Nincs direkt erőmérés Pozíció szabályozással dolgozunk
Erőirányítási módszerek /3 Erőirányítás Hibrid pozíció és erő szabályozás erőkifejtés, előírt erő korlátok, nyomaték korlátok Erőkifejtés specifikált irányokban, tárgy síkjának számítása Általában Külön pozíció és erő szabályozási körök Egy irányban egy típusú szabályozás Pozíció vagy (S) Erő és nyomaték (I-S)
Erőirányítási módszerek /4 Hibrid pozíció és erő szabályozás
Erőirányítási módszerek /5 Operációs tér módszer Az operációs térben képzett jelek Operációs térbe transzformálás
Adaptív irányítás Pontatlan ismeretek Robot paraméterei Megemelt tömeg Típusok Modellreferenciás adaptív irányítás (MRAC) Referenciamodell szerinti szabály adaptáció Önhangoló adaptív irányítás Irányítási törvények online adaptációja
Pályatervezés A mozgás megtervezése Pont-pont munkavégzéshez Időben optimális odajutás Energia minimalizálás Legrövidebb út Kötött pályán mozgásnál Idő optimalizálása
Pályatervezés /2 Technikák: Interpolációs technikák Sebességek előírása adott pontban (sebességprofil) Nehézségek Megvalósítható-e a pálya? Pozíció elérhető? Pontok, köztes pozíciók nem ütköznek végállásba? Sebességek elérhetők? Sebességek simasága? Motorok túlterhelése? Ütközés? Biztonsági tartalékok?
Pályatervezés /3 Bemenet: cél koordináta (világ vagy csukló) Kimenet: Mit írhat elő a pályaterv? Interpolált pontok halmaza Ezekben vett Sebesség Gyorsulás Szögsebesség Szöggyorsulás
Pályatervezés /4 Egyváltozós eset Megállítással Sebesség zérus a végpontban Megállítás nélkül Nemfolytonos gyorsulás Folytonos gyorsulás: simább futás
Pályatervezés /5 Többváltozós eset Pályatervezés csuklókoordinátákban Sarokpontok Csuklókoordinátákban adottak vagy Világkoordinátákban átszámoljuk őket (inverz geometriai feladat) Interpoláció kritériumok szerint Maximális sebesség, gyorsulás figyelembevétele Lehetőleg folytonos gyorsulás Csuklókoordinátákban közel lineáris mozgás Világkoordinátákban nem feltétlen egyenes mozgás Mindig adott T időn belül hajtható végre az adott mozgás
Pályatervezés /6 Pályatervezés világkoordinátákban Sarokpontok világkoordinátákban adottak Alkalmazás kritikus esetekben Egyenes mozgás megvalósítható Sebesség, gyorsulás, szögsebesség, szöggyorsulás mennyiségek számítandók Nehezítő körülmények mindkét esetre Mozgó célpont (pl. futószalag, stb.) Változik a cél/sarokpont helyzete
Útvonaltervezés és navigáció Mobilrobotok esetén elengedhetetlen Ipari robotok esetében általában a pálya adott, a feladat határozza meg Azonban több esetben a pályatervezés bemenő sarokpontjait is meg kell határozni
Útvonaltervezés és navigáció /2 Osztályozás Szabad tér Foglalt tér Biztonsági tér Ismert és lehetséges akadályok is szűkíthetik a szabad teret Magasabb szintű réteg szükséges Módszerek Celladekompozíciós módszerek Szkeletonizációs módszerek Potenciáltér alapú módszerek
Robot szoftverarchitektúrák Sok a hardverfüggő architektúra Eltérő absztrakciós szintek Driver/OS Driverek (szenzor, aktuátor, kommunikáció, stb.) Hardver absztrakció (HAL) Operációs rendszer Platform Adatfeldolgozó Szenzorfúzió (pl. ütközés) Paraméterbecslő (pl. helyzet, kinematika) Algoritmus Pályatervező Mozgástervező Eseménykezelő (pl. ütközéselkerülés) Magas szint Feladatkezelő és ütemező Feladatértelmező és feldolgozó Felhasználói interfész
Robot szoftverarchitektúrák /2 Átviteli rendszer Topológia Elágazásos Hurkos Technológia Jelek, jelszintek Csatlakozási módok Átviteli módok Adatszerkezetek Jelentések Hibafelismerés Szinkronizáció Szemantika Ábrázolás és jelentés
Robot szoftverplatformok Példák ROS Player, YARP, Orocos, CARMEN, Orca, MOOS, Microsoft Robotics Studio.
Robot szoftverplatformok Microsoft Robotics Studio (MRS) Windows alapú,.net, REST (Representational State Transfer ) Távoli vezérlés megoldható LAN, WiFi, BT Elemei CCR - Concurrency and Coordination Runtime DSS - Decentralized Software Services VPL - Visual Programming Language VSE - Visual Simulation Environment
Robot szoftverplatformok MOOS (Mission Oriented Operating Suite) Cross-platform, C++ PubSub (Publish-Subscribe model) Elemei Core: kommunikáció és vezérlés Essential: processz kontroll, loggolás, stb Graphical: vizuális kezelés Matlab NavigationAndControl
Robot szoftverplatformok Ocra Open-source, komponens alapú Cross-platform, de alapvetőeen Linuxos PubSub alapok CARMEN (Carnegie Mellon Robot Navigation Toolkit) Mobilrobotokhoz Open-source Szenzorkezelés, lokalizáció, üzenetkezelés, logolás, IPC kommunikáció, processzkezelés C és Java támogatás
Robot szoftverplatformok YARP (Yet Another Robot Platform) C++ alapú Nyelv portabilitás: SWIG ( Java, Perl, Python, C#) Algoritmus és kommunikáció szeparálása: Observer tervezési minta Különböző hálózati protokollok (TCP, UDP) Driver, kommunikációs interfészek
Robot szoftverplatformok ORCOS (Open Robot Control Software) Orcos Toolchain Valósidőben konfigurálható komponensek Multiplatform, más rendszerekhez kapcsolható (pl. ROS) Szkriptelés Kinematics and Dynamics Library (KDL) itasc (instantaneous Task Specification using Constraints) Irányítás formalizálása Bayesian Filtering Library
Robot szoftverplatformok Player Cross-platform szerver robotvezérléshez, roboton fut Szenzorok, aktuátorok interfészei Nyelvek kliens oldalon: C++, Tcl, Java, Python ActivMedia Pioneer 2 Szimulátorok: Stage: 2D, mobilrobotokhoz Gazebo: önálló projekt lett
Robot szoftverplatformok ROS (Robot Operating System) Nem operációs rendszer Szoftver eszközök a robotfejlesztéshez Kommunikáció PubSub Távoli eljáráshívás Visszajátszás Elosztott paraméterkezelés Robot Üzenetek Leírás, geometria (URDF) Könyvtárak vezérléshez, pozícióbecsléshez, diagnosztikához, logoláshoz Vizualizáció (rviz)
Szimulációs környezetek Hasznosak az algoritmusok vizsgálatához, gyors prototípus fejlesztéshez Fizikai motorokat használnak ODE (Open Dynamics Engine) Gazebo, LpzRobots, Marilou, Webots PhysX Microsoft Robotics Studio Valós 3D vizualizáció 3D modellezővel tervezhető környezet Szkriptelési lehetőségek eltérőek C, C++, Perl, Python, Java, URBI, MATLAB
Szimulációs környezetek Gazebo
Szimulációs környezetek Stage
Szimulációs környezetek MS Robotics Studio
Szimulációs környezetek Webots (cyberbotics) Linux, Win, Mac
Köszönöm a figyelmet! Helfenbein Tamás htamas@chemium.hu
Irodalom Lantos Béla Robotok irányítása Scmidt István, Vincze Gyuláné, Veszprémi Károly - Villamos Szervo- és Robothajtások