Intelligens robot rendszerek Dr. Szemes Péter Tamás Villamosmérnöki és Mechatronikai Tanszék Műszaki Kar Debreceni Egyetem Liszenc: CC-BY-NC-3.0 ( Nevezd meg Ne add el! ) 2012.05.09. v. 1.0
1. Mi az hogy intelligens robot rendszer? 1. Autonóm cselekvő 2. Hogyan épül fel egy intelligens alkalmazás? 1. Szenzorok 2. Robot operációs rendszerek 3. Robotok (Mobil robotok) 3. Milyen alkalmazási területek vannak? 1. Kutatási eredmények 2. Ipari alkalmazások 3. Otthoni alkalmazások
Mesterséges intelligencia célja, a mentális funkciók modellezése számítógépes programokkal. (Feltétel: a mentális funkciók megérthetőek matematikai modellek segítségével.) Kognitív intelligencia: fókuszáljunk a valós világgal való kölcsönhatásra. Rodney Brooks, MIT AI Lab, 1986 Minimális számítás (model) a szenzor és az aktuátor között Intelligens viselkedés: nagy számú elemi modellek laza, aszinkron és párhuzamos kapcsolata.
Egy adott környezetben mozgó, testtel, szenzorokkal és aktuátorokkal felszerelt. A világról rendelkezik valamiféle belső reprezentációval, amit a szenzorain keresztül módósít és az aktuátoraival hat a világra. Biológiai cselekvők (rovarok, élőlények) Robot cselekvők (autonóm robotok) Számítástudományi cselekvők (programok)
A világ érzékelése: (szenzorok) Látás, hallás, tapintás, (szaglás) Tanulás, Memória és Tervezés Tanulás: saját tapasztalat felhasználása a viselkedés fejlesztésére Memória: érzékszervek, rövid távú memória, hosszú távú memória Tervezés: Cselekvések struktúrált sorozata. Sense-Think-Act: Érzékelés-döntés-cselekvés Egyszerű viselkedések egyszerű reakciók a világ változásaira
A viselkedések párhuzamosan érik el a szenzor adatokat. A viselkedési szintek párhuzamosan hatnak az aktuátorokra. Kiválasztás szükséges! Szenzorok Célok: tárgyak begyűjtése: Megfogás, cipelés Akadálykerülés: Akadály észlelés és kikerülési stratégia Biztonságos mozgás (mozgás utasítások) Aktuátorok A fizikai világ
Adott világban jól meghatározott célt valósít meg. A célt megvalósító viselkedése előre meghatározott. A független döntéshez megfelelő világmodellel és döntési képeséggel rendelkezik Megfelelő szenzorok Redundancia, felbontás Megfelelő aktuátorok, hogy a világra érzékelhető befolyást tudjon adni. Szabdságfok, energia
1. Szenzorok 1. Látás, hallás, tapintás 2. Térben (folyamatban) történt változások érzékelése 2. Robot operációs rendszerek 1. Harver közeli funkciók 2. Kommunikáció (elsősorban gép-gép) 3. Döntési mechanizmusok 3. Mobil robotok 1. Felépítés
1. Látás 1. Kamera a látható vagy az infravörös tartományban 2. Lézer távolság mérők:1d, 2D vagy 3D 2. Hallás 1. Mikrofon a hallható tartományban (20 20 khz) 2. Irányított vagy nem irányított 3. Tapintás 1. Egy kontaktus: 1. kapcsoló vagy nyomás (erő-)mérő 2. Több kontaktus
Látás lézer távolság mérők LIDAR: Fény érzékelés és mérés http://en.wikipedia.org/wiki/lidar Adott szögtartományban (180-360) távolságot mérnek. Nagyon pontos, de drága eszközök. www.sick.com
A kamera kommunikációját tekintve: Analóg, IP, USB A kamera felépítését tekintve: Fix kamera - egy előre meghatározott, a felszereléskor beállított terület megfigyelésére alkalmas Mozgatható kamera - a mozgatás történhet emberi irányítással, vagy programozás alapján A telepítés helyszíne szerint: Beltéri kamera - csapadék, hőmérséklet ingadozás, napsütés hatásaitól védett helyre kell felszerelni Kültéri kamera - ellenáll az időjárás viszontagságainak Felvételkészítés szempontjából: Éjjellátó kamera (D/N) - beépített éjszakai megvilágítással rendelkezik (infra) Nem éjjellátó kamera - nem alkalmas éjszakai felvételek készítésére A kamera külső megjelenését tekintve: Box kamera - téglatest alakú Dome kamera - félgömbhöz hasonló megjelenésű Speed dome kamera Gyors mozgásokat lekövetni képes mozgatóval van ellátva. A kamera mozgatását kézzel (vezérlő pultról) vagy automatikusan (pl NVR) lehet megoldani.
Analóg Spped Dome kültéri kamera (ASM-SD2) 480 TV sor, 22x optikai zoom Kültéri analóg box kamera (TC-PRO 8620 IR VF) 620 TV sor, beépített fényérzékelők IR LED, 30m Beltéri IP kamera: MPEG-4 tömörítés, 720 x 576, POE Beltéri IP kamera, megapixel felbontással MJPEG-4, 1280x1024, 8 fps, 640x480 25 fps, sávszélesség igény: 28 Kbps 3 Mbps
FullHD (1920 x 1080, 30 fps) képminőség átvitele. SDI: Serial Digital Interface SMPTE-292M: 1.485 Gbit/sec, 720p és 1080i SMPTE-327M: dual-link HD-SDI: 2,970 Gbps (1080p) SMPTE-424M: 3G-SDI, 2,970 Gbps, 1080p Forrás: http://en.wikipedia.org/wiki/serial_digital_i nterface Grundvig: GCH-K0305B, HD-SDI box kamera, 2 Megapixel
USB kmerák Olcsó (jó ár/érték arány) alternatívák Full HD SDI kameránál akár 10x olcsóbb lehet DE!: USB rövid távú kapcsolatot ad, és nagyobb számítási teljesítmény igénye van. Felhasználás: nagy tömegben, szórakoztató alkalmazások. Könnyen elérhető és felszerelhető.
Miért 3D? Mostanában divatos, marketing! A 2D-s információhoz képest lehetőség van térbeli információs szerzéshez. Alkalmazások (lokális) navigáció Képfeldolgozás (szegmentálás, alak és objektum felismerés)
Forrás: MEAM 620 Robotics https://alliance.seas.upenn.edu/~meam6 20/wiki/index.php?n =Main.Syllabus?actio n=download&upnam e=meam620-12- camera-lec1.pdf
PinHole (Pontobjektív) Kamera model: feltételezzük, hogy minden tárgypontból csak egy fénysugár érkezik a képlemezre. COP: a projekció közepe Fókusztávolság: a COP és a képlemez között.
A digitális kép egy numerikus számsorozat, amely az adott pixel helyén a fény inenzitását mutatja. A pixel intenzitások leképezése: 8, 10, 12 bit; szürkeárnyalatos vagy R,G,B
majdnem fehér majdnem piros fekete
Leképezések: A különböző nagyságú tárgyak (A, B, és C vektorok) képe különböző lehet! A képen látható optikai csalódásokat az agyunk ismeri fel és kompenzálja.
1. Világ koordináta leképezése kamera KR-be 2. Kamera KR leképezése pixel KR-be
A kalibráció célja, hogy meghatározzuk a kamera belső és külső paramétereit. Belső paraméterek: a kamera (és az optika) típusától függ: A kép közepének meghatározása (principal points) Fókusz távolság: a COP és a kép közepének távolsága Külső paraméterek: A kamera KR-nek viszonya a világ KR-hez
1. Minta kép kidolgozása: fehér-fekete négyzetrács 2. Minta kép mozgatása a munkatérben. Felvétel készítése minden pozícióban. 3. A mintáról készült felvételek bevitele a kalibrációs programba. 4. A minta felismertetése a programmal. 5. Konkrét kalibráció számtása.
Mélységi képek Forrás: http://en.wikipedia.org/wiki/binocular_disp arity
Mikrokapcsoló: fizikai kontaktus Kapacitív érintő kapcsoló: egy elektróda szükséges, az emberi test kapacitív tulajdonságát használja. Ellenállás érintő kapcsoló: két elektróda és egy elektromos vezető ( pl. Emberi ujj) szükséges. Két fém közötti ellenállás csökkenést érzékeli.
A robot operációs rendszerek funkciói a következő csoportba sorolhatóak: 1. Szenzorok kezelése és integrációja 2. Aktuátorok kezelése és integrációja 3. A robotok vezérlési architektúra létrehozása 4. Kommunikációs csatornák definiálása (egyirányú, pont-pont, pont-multipont) 5. Környezet definiáló konfigurációs eszköz, amely több csomópont leírását teszi lehetővé. Minden csomópont tartalmazhat szenzort 6. Működés közbeni adatok összegyűjtése, 7. Tesztelés meglévő adatmintákkal
Robot Operációs rendszer Operációs rendszer: pl Windows vagy Linux Periféria meghajtók ( driverek ) Számítógép hardver (perifériák) Szerver Szenzorok Buszrendszerek, Kommunikációs eszközök Fizikai Aktuátorok FIZIKAI VILÁG Hálózat (Internet) Virtuális Szenzorok Robot Operációs rendszer Virtuális Aktuátorok VIRTUÁLIS VILÁG Hálózat (Internet)
A viselkedések különböző szintjei kapcsolódnak a robot oprendszerhez. A robot oprendszer kapcsolódhat virtuális vagy fizikai világhoz is, a viselkedéseknek Robot Operációs rendszer (vezérlés szint...) Komplex viselkedések: Tervezés, szituáció felismerés Összetett viselkedések: Akadály kerülés, tárgy felismerés Alapvető viselkedések (pl. mozgás és észlelés) Robot Operációs rendszer (vezérlés szint...) FIZIKAI VILÁG VIRTUÁLIS VILÁG
Szimulátorok Stage: 2D szimulátor http://playerstage.sourceforge.net/ Gazebo: 3D szimulátor dinamikával Szerverek NI LabView: Robotics Modul ROS: Robot Operating System
Stage:
Gazebo
Gazebo (http://gazebosim.org/) Szenzorok szimulációja Robot modellek: mobil robot, manipulátor Dinamikai szimuláció: Merev test dinamika Több robotos-sel is kompatibilis: ROS és Player
NI LabView Robotics Modul LabVew kiterjesztés autonóm mobil robotok vezérlő szoftverének fejlesztéséhez. LabView grafikus programozó környezet Az összes NI hardver felhasználható, akár desktop, akár valós idejű környezetben Realisztikus virtuális környezet a programok teszteléséhez. http://sine.ni.com/nips/cds/v iew/p/lang/en/nid/209856
Operációs rendszer: olyan program funkciók gyűjteménye, amely egységes felületet szolgál az alkalmazásoknak. Kernel: a hardver közeli funkciók összessége Felhasználói interfész: feladat orientált funkciók összesége Robot operációs rendszer: érzékelő, értékelő, és mozgató funkciók rendezett összesége. Szerver: amely adatot szolgáltat Kliens: amely adatot fogad
Robot Operating System = ROS, http://www.ros.org Cél: az intelligens robot alkalmazások fejlesztéséhez használható szoftver keretrendszer, hasonlóan mint egy operációs rendszer. Több operációs rendszert is támogat: Linux (Ubuntu!), Windows, Mac OS X Forrás: Introduction to ROS, Rodrigo Ventura, 2011, Július
A különböző funkciókat külön operációs rendszer szintű folyamatok látják el az ROSben. Csomópont (NODE) egy folyamat, amely az ROS-hez kapcsolódik. A csomópontok egy központon (roscore) keresztül tudnak egymásról. Az roscore egy speciális tudakozó, amelyen keresztül a csomópontok kapcsolatba lépnek egymással és adatot cserélnek.
A Terjesztés egy eljárás, ahogy egy csomópont üzenetet küld egy vagy több csomópontnak. A Kiadó és Előfizető mechanizmust alkalmazzák. A Kiadó (csomópont) a Terjesztőnek küldi az üzenetet. Az Előfizető (csomópont) aktíválódik (fut), ha üzenet érkezett. A kiadott üzenet eljutnak az összes Előfizetőhöz. Pl: egy kamera csomópont képeket küld a feldolgozó csomópontoknak.
A Szolgálat egy folyamat, amellyel egy csomópont kérést küld egy másik csomópontnak, hogy egy adott üzenetet kapjon. Kliens-Szerver mechanizmust alkalmazzák A Szolgáltatás és kérés üzenettel indul és egy válasz üzenettel fejeződik be.
1. A cél (és a világ) megfogalmazása 2. A cél eléréséhez szükséges viselkedések definiálása 3. Alacsony szintű műszaki igények (kereskedelmi egységek) 4. Szoftver platform és robot oprendszer 5. A cél konretizálása 3. és 4. szerint 6. Építés 7. Tesztüzem és adatgyűjtés 8. Viselkedések ellenőrzése adatok alapján
Intelligens tér (ispace) Hideki Hashimoto labor (2002-2005)
Speaker & mic. for audio communication Mobile Robot Platform Monitor with Speaker Pan-Tilt CCD Camera Microphone CCD cameras for gesture recognition Haptic Interface Mobil cselekvő Mobile Robot Platform Az Intelligens térben, a térrel együttműködve dolgozik.
Ember gép kapcsolat feljlesztése: emberi gesztusok használata a kommunikációban. Oxygen Project(MIT) Láthatatlan számítástechnika : a térbe ágyazott intelligencia. Dream Space(IBM) Intelligens környezet technikai fejlesztése a cél. Easy Living(Microsoft)
Intelligens szolgáltatások igénybevétele bárhol a térben (épületben), úgy mint a levegőt. Természetes és egyszerű interakció Természetes hang és gesztusok Oxygen Project(MIT)
Smart Dust (UC Berkeley)/ Center for Embedded and Networked Sensing (UCLA) Smart Dust fejlesztési projeket (1999~2001) NIMS: (Hálózatba kötött infomechanikus rendszer) Eszközök egy mobil szenzor Hálózatot alkot, amely a képes a környezetet felmérni. Fenntartható, saját hálózatukat menedzselni képes eszközök.
Interaction in natural ways Beszéd Gesztusok Térbeli pozíció Alkalmazások Oktatás Szórakoztatás Tudományos vizualizáció Video telekonferencia, távjelenlét
Az automatáknak és a robotoknak az emberek gyenge pontjait kell kiegészíteniük, az emberek javára. Az emberek megsegítése egy speciális szobával, amely egy robot. Alkalmazások Gyógyítás, betegápolás, Idősek gondozása A mindennapi életben
Tanuló robot: KRC3 -> KR 3 Hegesztő robot: KR C2 -> KR 5 ARC Programozási nyelvek: Kuka Robot Language: interaktív programozási nyelvek. Szoftver architektura Windows XP embedded: Felhasználói felület. VxWorks: valós idejű operációs rendszer, amely a motor vezérlést kezeli.
Két operációs rendszer ugyan azon a hardveren. VxWorks: valós idejű operációs rendszer Az alkalmazások feladatokra (task) vannak osztva. Minden tasknak meghatározott prioritása van. A magasabb prioritású taszk megszakítja az alacsonyabb futású taszkot. Teljes értékű operációs rendszer: filekezelés, hálózat, taskok közötti kommunikáció
Programozási lehetőségek: Automatikus: programozás demonstrációval. A programozó végigvezeti a robotot a technológiai folyamaton (pl festés, hegesztés) és a robot a mozgás közben automatikusan elkészíti a programot. Kézi programozás: az operátornak pontosan egy feladat specifikus, a robot vezérlő által értelmezhető nyelven kell definiálni a robot viselkedését. Forrás: G. Biggs and B. MacDonald, A survey of robot programming systems, in Proc. Australasian Conference on Robotics and Automation, J. Roberts and G. Wyeth, Eds., Brisbane, Australia, Dec. 2003.
Feladat specifikus nyelv (DSL: Domain Specific Language) Adott feladatok megoldásának műveleti sorrendjének létrehozására fejlesztett, kötött nyelvtannal rendelkező specifikus nyelv. Tulajdonságok Hardver (vezérlő)-specifikus (adatszerkezetek, vezérlés) Limitált műveletek (egy feladatnak csak egy specifikus megoldási módja lehet) Limitált bővíthatőség: az adott nyelv Felhasználók: Robot programozók, akik a nem informatikusok, és a technológia szakértői (pl: hegesző mérnök)
Általános robot programozási nyelv alkalmazása ipari robot programozáshoz: A szokásos programozási nyelvekhez hasonló, pl C nyelv. Az általános megközelítése miatt túl bonyolult lehet az egyszerű feladatok végrehajtására. A bonyolúltság a termelékenység ellen hat! A programozáshoz sok (informatikai és programozási) előképzettségre lehet szükség. Általános programozási nyelvet az operátorok általában nem használják. Ún. Robot integrátorok használják komplex alkalmazásokhoz (hegesztés, gépi látás, kommunikáció)
Intelligens Robot rendszerek Robot programozás