Robotika Alapok
Helfenbein Tamás
[email protected]
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 iedikbő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.
▫ ▫ ▫ ▫
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, NewtonEuler módszer)
• Módszerek
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
▫ 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
[email protected]
Irodalom • Lantos Béla – Robotok irányítása • Scmidt István, Vincze Gyuláné, Veszprémi Károly - Villamos Szervo- és Robothajtások