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
Mi az hogy intelligens robot rendszer?
1. 1.
Autonóm cselekvő
Hogyan épül fel egy intelligens alkalmazás?
2. 1. 2. 3.
Szenzorok Robot operációs rendszerek Robotok (Mobil robotok)
Milyen alkalmazási területek vannak?
3. 1. 2. 3.
Kutatási eredmények Ipari alkalmazások 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
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)
A fizikai világ
Aktuátorok
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!
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
Szenzorok
1. 1. 2.
Látás, hallás, tapintás Térben (folyamatban) történt változások érzékelése
Robot operációs rendszerek
2. 1. 2. 3.
Harver közeli funkciók Kommunikáció (elsősorban gép-gép) Döntési mechanizmusok
Mobil robotok
3. 1.
Felépítés
Látás
1.
Kamera a látható vagy az infravörös tartományban Lézer távolság mérők:1D, 2D vagy 3D
1. 2.
Hallás
2.
Mikrofon a hallható tartományban (20 – 20 kHz) Irányított vagy nem irányított
1. 2.
Tapintás
3.
Egy kontaktus:
1. 1.
2.
kapcsoló vagy nyomás (erő-)mérő
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-12camera-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. 2.
Világ koordináta leképezése kamera KR-be 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.
2.
3.
4. 5.
Minta kép kidolgozása: fehér-fekete négyzetrács Minta kép mozgatása a munkatérben. Felvétel készítése minden pozícióban. A mintáról készült felvételek bevitele a kalibrációs programba. A minta felismertetése a programmal. 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
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) Buszrendszerek, Kommunikációs eszközök Szerver Szenzorok
Fizikai Aktuátorok FIZIKAI VILÁG
Hálózat (Internet)
Virtuális Szenzorok
Virtuális Aktuátorok VIRTUÁLIS VILÁG
Hálózat (Internet)
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)
FIZIKAI VILÁG
Robot Operációs rendszer (vezérlés szint...)
Robot Operációs rendszer (vezérlés szint...)
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
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. 2.
3.
4. 5. 6. 7. 8.
A cél (és a világ) megfogalmazása A cél eléréséhez szükséges viselkedések definiálása Alacsony szintű műszaki igények (kereskedelmi egységek) Szoftver platform és robot oprendszer A cél konretizálása 3. és 4. szerint Építés Tesztüzem és adatgyűjtés Viselkedések ellenőrzése adatok alapján
Intelligens tér (iSpace) Hideki Hashimoto labor (2002 - 2005)
Speaker & mic. for audio communication
Monitor with Speaker
Pan-Tilt CCD Camera
Microphone
Mobile Robot Platform
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 .
„Láthatatlan számítástechnika”: a térbe ágyazott intelligencia.
Oxygen Project(MIT) Intelligens környezet technikai fejlesztése a cél.
Dream Space(IBM)
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)
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. Smart Dust fejlesztési projeket (1999~2001)
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