Operációs rendszer szintek. Robot Operációs Rendszer. Operációs rendszer szintek. Tartalom 2014.05.15. Kernel. Programkönyvtárak



Hasonló dokumentumok
Robot Operating System

Dr. Schuster György október 30.

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR

italc felhasználói dokumentáció

Oktatási cloud használata

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Microsoft SQL Server telepítése

BaBér bérügyviteli rendszer telepítési segédlete év

A L i n u x r u h á j a

Linux alapok gyakorlat

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Iman 3.0 szoftverdokumentáció

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

TERC V.I.P. hardverkulcs regisztráció

italc felhasználói dokumentáció

A Java EE 5 plattform

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

A LEGO Mindstorms EV3 programozása

hardver-szoftver integrált rendszer, amely Xwindow alapú terminálokat szervez egy hálózatba

MÉRY Android Alkalmazás

iseries Client Access Express - Mielőtt elkezdi

eszemélyi Kliens Szoftvercsomag

Operációs rendszerek. Az X Window rendszer

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.2 TL280 (R) v.4.x modulokhoz

KELER KID Internetwork System (KIS)

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

A szerzõrõl... xi Bevezetés... xiii

3Sz-s Kft. Tisztelt Felhasználó!

eszemélyi Kliens Szoftvercsomag

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Veeam Agent for Windows and Linux

IBM felhő menedzsment

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Hardver és szoftver követelmények

Digitális fényképezőgép Szoftver útmutató

Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez

PHP-MySQL. Adatbázisok gyakorlat

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

EgroupWare: A csoportmunka megoldás

OpenVPN kliens telepítése a RITEK Zrt. szervereinek eléréséhez.

Bérprogram vásárlásakor az Ügyfélnek ben és levélben is megküldjük a termék letöltéséhez és aktiválásához szükséges termékszámot.

A CCL program használatbavétele

ERserver. iseries. Az iseries Access for Windows használatának megkezdése

Folyamatok. 6. előadás

Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz

Multimédiás adatbázisok

Számítógépes munkakörnyezet II. Szoftver

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

Virtualoso Server szolgáltatás Virtuális szerver használati útmutató

ContractTray program Leírás

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

3G185 router Li-ion akkumulátor Usb kábel Telepítési útmutató.

Elemi alkalmazások fejlesztése I.

KIRA. KIRA rendszer. Telepítési útmutató v1

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Komputeralgebra Rendszerek

A számítógép-hálózat egy olyan speciális rendszer, amely a számítógépek egymás közötti kommunikációját biztosítja.

Podoski Péter és Zabb László

Robot Operating System - ROS segédlet

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Új jelszó beállítása. Új jelszó beállítása az IFA rendszerhez. BIZALMAS INFORMÁCIÓ JET-SOL JET-SOL 2.0 verzió

Nokia N9 - MeeGo Harmattan bemutatkozik

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

Messenger. Novell GYORSKALAUZ

Új technológiák az Ubuntuban. Új fejlesztések Amik egy éven belül jelenhetnek meg az Ubuntuban

Könyvtári címkéző munkahely

FELHASZNÁLÓI KÉZIKÖNYV

Win 8 változatok. 2. sz. melléklet felnottkepzes@gmail.com. Töltse ki az előzetes tudásszint felmérő dolgozatot!

Segesdi Dániel. OpenNebula. Virtualizációs technológiák és alkalmazásaik BMEVIMIAV ősz

FELHASZNÁLÓI KÉZIKÖNYV SCHEDULEDETAIL KEZELÉSI ÚTMUTATÓ (TATABÁNYA VÁROS KÖZLEKEDÉSE) 1.00 verzió Dátum:

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

Operációs rendszer ismeretek

Alkalmazások típusai Szoftverismeretek

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

CRA - Cisco Remote Access

VirtualBox, Debian telepítés

Google Cloud Print útmutató

A CA-42 adatkommunikációs kábel gyors telepítési útmutatója

Fontos megjegyzés: Telepítse először az illesztőprogramot, majd csatlakoztassa a VideoCAM ExpressII eszközt az USB porthoz!

Magyar Gyors felhasználói útmutató A GW-7100PCI driver telepítése Windows 98, ME, 2000 és XP operációs rendszerek alatt

A SuliX család: Az oktatási és érettségi disztribúciótól a SuliXerverig

Kezdő lépések Microsoft Outlook

KnowledgeTree dokumentumkezelő rendszer

SAMSUNG SSM-8000 szoftvercsomag

A Debian, mint Desktop Operációs Rendszer

CareLink Personal telepítési útmutató. Első lépések a CareLink Personal adatfeltöltéshez

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.0

Laborgyakorlat: Egy vezeték nélküli NIC beszerelése

Operációs rendszerek

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Kommunikációs rendszerek teljesítőképesség-vizsgálata

A telepítési útmutató tartalma

Android Commander Felhasználói kézikönyv

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Átírás:

Operációs rendszer szintek Robot Operációs Rendszer Usman Qayyum usman.qayyum @ anu.edu.au Előadásának fordítása 2013.04 DE-Villamosmérnöki és Mechatronikai Tanszék Kernel Monolitikus (pl. Win NT, Win XP, W7, Linux): a kernel összes funkciója egy alkalmazásban érhető el. Mikro (OS X, real-time oprendszer), a kernel funkciói dinamikusan betölthető modulokból áll. Programkönyvtárak Run time library Grafikus elemek könyvtára Matematikai műveleteket megvalósító könyvtár Operációs rendszer szintek Grafikus kezelői felület, GUI Ablakkezelő felület (alap GUI) Grafikus elemeket megjelentő rendszer (pl. Ikonok megjelenése, betűtípusok, színkombinációk) 3D és más vizuális gyorsító könyvtárak Alkalmazások Beépített vagy alapvető alkalmazások: filekezelés, email, naptár, internet böngésző, stb... Általános alkalmazások: szövegszerkesztés, táblázatkezelés. Bevett gyakorlatok elektronikus megfelelője. Speciális alkalamzások: CAD, 3D CAD, matematikai szoftverek, adatbázis kezelés, stb... Tartalom ROS Alap struktúrák, Parancsok stb. Szimulátor Kinect (mozgás érzékelő beviteli eszköz) TurtleBot (egy alacsony költségű, nyílt forráskódú, személyes robot) Programozási fogalmak OpenCV és PCL Összegzés Robotok a Múltban Robotok Napjainkban 1

ROS: Robot Operating System ROS: egy nyílt forráskódú programkeret, amelyet robot szoftverek fejlesztőkörnyezeteként alkalmaznak. Gyakorlatilag operációs rendszerként funkcionál egy heterogén (különböző részekből álló) számítógép csoportban. OS-ként működve: hardver absztrakció(elkülönítés), alacsony szintű eszköz ellenőrzés, gyakran használt funkciók végrehajtása, üzenet küldés munkafolyamatok között, fejlett csomagkezelés. Grafikus architektúra alapú rendszer, ahol a munkafolyamatok csomópontokban helyezkednek el Robot Alkalmazások A ROS két felhasználói oldallal rendelkezik: - Operációs Rendszer oldal ROS - Felhasználó által készített csomagok Hardware Támogatott Operációs Rendszerek Támogatott: Részlegesen támogatott: Nem támogatott: ROS Disztribúciók A ROS fejlesztése 2007-ben indult (eredetileg Switchyard elnevezéssel) és a Standford Egyetem Mesterséges Intelligencia központjában alkották meg. 2008-tól a fejlesztések tovább folytak és ennek eredményeként több disztribúció jelent meg. Miért épp a ROS? Alkalmas a kódok újrafelhasználására Kész, használható fejlesztői környezet, sokrétű eszközök és kliens API könyvtárak (C + +, Python, Lisp, Java,...) Független a nyelvtől Skálázható (folyamatok elosztott hálózata lazán csatolva) Nagy közösség és folyamatos támogatás Ajánlott Disztribúció: ROS Electric Ajánlott OS: Ubuntu 10.04-től Alapelv: Ne találjuk fel újra a kereket! OpenCV - Computer Vision Eigen - Mátrix Algebra Gazebo - Robot Simulator KDL - Kinematika és Dinamika TREX - Magas Szintű Tervezés PCL - Point Cloud Library Célkitűzések A ROS a folyamatok elosztott keretrendszere (más néven csomópontok) Lehetővé tesz több munkafolyamatot egy időben A folyamatok Csomagokba és Vermekbe csoportosíthatók Skálázhatóság: ROS lehetőséget biztosít hosszú futásidejű és nagy fejlesztőrendszerek futtatására Alkalmas magas szintű fejlesztésekre Minden ROS alapkód ( mag kód ) engedélyezett BSD, így könnyen integrálható más projektekbe Több perifériameghajtó és algoritmus is rendelkezésre áll 2

Fogalmak: Fájlrendszer Szint ROS forráskódok, melyek megtalálhatók egy lemezen: Csomagok: a szervezés fő egységei - szoftver a ROS-ban, pl. ROS futásidő folyamatok (csomópontok), ROS-függő könyvtár, adatkészletek, konfigurációs fájlok Manifeszts: (manifest.xml) metaadatot (adat az adatról) szolgáltat egy csomagról (pl. függőségek, fordító zászlók(complier flag) stb.) a metaadattal összekötött tartalmat tartalomcsomagnak nevezzük. Vermek (Stacks): csomagok egysége, melyek lehetővé tesznek összetett alkalmazásokat, pl. navigációs verem Verem Manifesztek: (stack.xml) adatot szolgáltat a veremről (pl. más vermektől való függőség) Csomagok és Vermek A csomag (package) egy könyvtár egy manifest.xml fájllal A verem (stack) egy könyvtár egy stack.xml fájllal Egy verem könyvtárában lévő csomag a verem része Mi a Verem(Stack)? Verem: LIFO adatszerkezet, amelyben általában véges számú azonos típusú (méretű) adatot lehet tárolni Hagyományosan két alapműveletet értelmezünk rá: push (rárak): A verem tetejére helyez egy új adatot. Ha a verem betelt, akkor túlcsordulásos állapotba kerül. pop (levesz): A verem legfelső elemét leveszi és visszaadja. Ha a verem már üres, akkor alulcsordulásos állapotba kerül. Fogalmak: Számítási Gráf szint Számítási Gráf(Computation Graph): ROS folyamatok pontpont hálózata - az adatokat egyszerre dolgozza fel. A ROS Számítási Grafikon alapelvei a következők: csomópontok master paraméter szerver szolgáltatások üzenetek és témák Kulcsfogalmak roscore: név és paraméter szerver önálló egység Csomópont: egy ROS-sal kommunikáló ügynök Csomópontokon keresztül való kommunikáció Témák (közzététel/ jegyzés) gépelt üzeneteket felhasználva Szolgáltatások: Kérés/Válaszolás minta (módszer/művelet) gépelt üzeneten keresztül Csomópontok(Nodes) Olyan folyamatok, amelyek végrehajtják a számításokat. A ROS-t arra tervezték, hogy elemekre bontható legyen egy jól elosztott rendszerben, hiszen a legtöbb robot vezérlése rengeteg csomópontot tartalmaz. Pl. egy csomópont felel a képfeldolgozásért és egy másik csomópont végzi az objektum felismerését. A ROS csomópontjait egy ROS Kliens Könyvtár (Client Library) segítségével írják meg pl. roscpp vagy rospy. 3

Mester Nevet regisztrál és a kikeres a Számítási Gráfban. A Mester nélkül a csomópontok nem tudnák megtalálni egymást, üzenet váltani vagy szolgáltatásokat lehívni. A Mester tárolja a témákat és szolgáltatásokat, illetve a regisztrációs információkat a ROS csomópontok számára Üzenetek Üzenetek: Csomópontok kommunikációja egymással áthaladó üzenetek révén. Az üzenet egyszerűen gépelt mezők adatstruktúrája Standard primitív típusok (egész szám, lebegőpontos, logikai, stb.) is támogatottak, mint a primitív típusok tömbjei. Az üzenetek tartalmazhatnak tetszőlegesen beágyazott struktúrákat és tömböket is (hasonlóan a C struktúrához). Témák Egy csomópont üzenetet küld, közzé téve azt egy adott témában. Téma: egy név, amely az üzenet azonosítására szolgál. A csomópont, ami érdekelt egy témában, több, az adott témába tartozóra feliratkozhat. A témákat tekinthetjük gépelt üzenet buszoknak. Minden busznak van neve, bárki tud a buszhoz csatlakozni, hogy üzeneteket küldjön/fogadjon mindaddig, amíg azok a megfelelő típusúak. Szolgáltatások Közzététel/feliratkozás modell: sok-a-soknak (üzenetek) Kérés/válasz: szolgáltatások Az üzenet struktúrákat párokban használja: egyet kérésre, és egyet válaszra. A biztosító csomópont biztosít egy szolgáltatást, mely névvel rendelkezik és egy klienst, ami a szolgáltatást használja azáltal, hogy elküldi az üzenetet és vár a válaszra. Üzenetek vs. Szolgáltatások Üzenet Szolgáltatások 1:n Kommunikáció 1:1 Kommunikáció Nem blokkol Blokkol Telepítés és beállítás A telepítéssel kapcsolatos információk: www.ros.org/wiki/electric/lnstallation/ubuntu Környezeti beállítások ( /.bashrc hozzáadása): source /opt/ros/electric/setup.bash Továbbá hozzá kell adni: export ROS_PACKAGE_PATH = $ ROS_PACKAGE_PATH:your-ROSpath Ellenőrizd az útvonalat: echo $ ROS_PACKAGE_PATH Az kimenet ez legyen: /opt /ros/electric/stacks: your-ros-path 4

Navigálás a ROS Fájlrendszerben Fájlrendszer eszközök: rospack helyreállítja a ROS csomagok információit, melyek a fájlrendszerben elérhetőek. Rospack megkeresi a roscpp roscd megengedi, hogy könyvtárat közvetlenül csomaggá vagy veremmé váltson roscd roscpp roscd roscpp/include roscd log roscd ROS parancsokat ad Tab-kibővítéssel roscd turtab key rosls: közvetlenül listáz csomagba, verembe vagy közös helyre név alapján. rosls roscpp_tutorials rosls roscpp_tutorials/srv ROS csomag létrehozása roscreate-pkg: létrehoz egy új ROS csomagot. Egy csomag fáljai: manifesztek, CMakelists.txt, mainpage.dox és Makefájlok. roscreate-pkg [csomag_neve] Függőség más csomagoktól: roscreate-pkg [csomag_neve] [depend1] [depend2] [depend3] Csomag létrehozása: roscreate-pkg beginner_tutorials std_msgs rospy roscpp Frissítse a ROS_PACKAGE_PATH környezeti változót: export ROS_PACKAGE_PATH = YOUR_PCK_PATH: $ ROS_PACKAGE_PATH Az új ROS csomag ellenőrzése Vessünk egy pillantást a csomagra: Tartalom: ROS Csomag függőségek Mi a teendő, ha a rendszer függőségek hiányoznak? Tartalom (nincs még ott): Itt van egy rendszer függőség: <rosdep name="wxwidgets /> Telepítsük fel a rendszer függőségeket: rosdep install turtlesim Vessünk egy pillantást a manifest.xml-re: cat manifest.xml ROS csomag függőségek / összeállítás rosmake: hasonlít a parancs készítéshez, de annál többet tesz ez a ROS magic rosdep install turtle_teleop rxtools Több megadott cél: rosmake turtle_teleop roscpp_tutorials rospy_tutorials rxtools Általános parancsok rospack = ros+pack(age): információt nyújt a a ROS csomagokkal kapcsolatosan rosstack = ros+stack: tájékoztatást nyújt a ROS vermekről roscd = ros+cd: könyvtárat ROS csomaggá vagy veremmé változtat rosls = ros+ls: listázza a fájlokat egy ROS csomagban rosdep = ros+dep (függőségek): ROS függőségeket felold és telepít rosmake = ros+make: létrehoz(összefűz) egy ROS csomagot 5

Csomópontok A csomópont valójában nem sokkal több, mint egy futtatható fájlt egy ROS csomagban. A ROS kliens könyvtárak lehetővé teszik a csomópontok kommunikációját akkor is, ha azok különböző programozási nyelveken íródtak: rosnode list információkat jelenít meg a ROS jelenleg futó csomópontokról rosnode info: információ egy adott csomópontról rosrun roscore csomópontnak kell futnia legelőször roscore rosrun lehetővé teszi, hogy a csomag nevével közvetlenül futtatni lehessen egy csomópontot egy csomagban rosrun [package_name] [node_name] rosrun turtlesim turtlesim_node Csomópont nevének megváltoztatása: rosrun turtlesim turtlesim_node_name: = my_turtle Beszámoló csomópontok roscore = ros+core(mag): elindítja a ROS-rendszert (master + rosout + parameter server) rosnode = ros+node: ROS eszköz, mely információt gyűjt a csomópontról. rosrun = ros+run: futtat egy csomópontot egy adott csomagból. ROS Témák: turtlesim Elindítja a teknős billentyűzetét (turtle keyboard ) egy új terminálban: rosrun turtlesim turtle_teleop_key rxgraph létrehoz egy dinamikus gráfot, mely megmutatja mi történik a rendszerben. turtlesim_node és turtle_teleop_key: kommunikáció egy ROS témában. rostopic tool lehetővé teszi, hogy információkat kapjunk ROS témákról rostopic list Rostopic echo /turtle1/comand_velocity ROS Üzenetek Témákról való kommunikáció: a csomópontok között küldött ROS üzenetek révén. A küldőnek és a vevőnek ugyanazt a típusú üzenetet kell küldeniük és fogadniuk. A téma típusát meghatározza az üzenet típusa. rostopic type /turtle1/command_velocity rosmsg show turtlesim /Velocity Üzenetek közzététele rostopic pub adatokat tesz közzé a jelenlegi témában rostopic pub [topic] [msg_type] [args] rostopic pub -1 / turtle1/command_velocity turtlesim / Velocity - 2,0 1,8 Megjegyzés: Turtle mozgása leáll egy idő után. Parancsok közzététele a pub-r paranccsal (és eltávolítja a -1-et): rostopic pub / turtle1/command_velocity turtlesim / Velocity-R 1 -- 2,0 1,8 6

Szolgáltatások A szolgáltatások a csomópontok közötti kommunikáció egy másik alternatívája A szolgáltatások lehetővé teszik, hogy a csomópontok kérést küldjenek és választ kapjanak rosservice tool felsorolja és sorrendezi a ROS szolgáltatásokat: rosservice list rosservice call: szolgáltatást hív meg Használat: rosservice call [service] [args] rosservice call clear Roslaunch Gyakran van szükség több csomópontra A rosrun begépelése minden csomópontba hosszadalmas roslaunch: csomópontokat indít, amelyek a kezdeményező fájlban vannak Használat: roslaunch [package] [filename.launch] Miért Jók a Szimulációk? A robot szimulátor beágyazott alkalmazásokat hoz létre egy robotnak, amely fizikailag független az aktuális géptől. Költségek: Nincs költsége független a robottól vagy a felszereléstől Nincs kockázati tényezője pl. sérülés, rongálás, karbantartást nem igényel, nincs hardver fogyasztása Nincs emberi kockázat Idő: A szimulációkat lehet párhuzamosan futtatni Nincs szükség az akkumulátorok töltésére Kísérletek: Bármilyen környezetben, bármilyen robotot és bármilyen érzékelőket használhatunk Megismételhető Skálázható Fokozat(Stage) / Gazebo Stage Skálázható összetett 2D robot szimulátor Alkalmas több robot egyidejű szimulálására Fény szimuláció Gazebo Hanggal ellátott 3D összetett robot szimulátor Alkalmas több robot egyidejű szimulálására (erőforrás függő) Open Dynamics Engine OpenNi Kinect Pontfelhők nézete Új szenzor a PrimeSense és a Microsoft által ROS OpenNI egy nyílt forráskódú projekt középpontjában a Primesense érzékelőinek a ROS-ba való integrációjával sudo apt-get install ros-elektromos openni-kinect ROS illesztőprogram az OpenNI mélység érzékelésre (+ RGB) kamerák: roslaunch opennijaunch openni.launch rosrun image_view disparity_view image: = / camera / depth / disparity rosrun image_view image_view image: = / camera / RGB / image_color Rviz (3D vizualizációs környezet ROS-t használó robotok számára) Rosrun rviz rviz 7

TurtleBot A TurtleBot egyesíti a népszerű off-the shelf(konfekció) robot egységeket, mint az IRobot Create (robot porszívó) és a Kinect (Xbox360 konzol mozgásérzékelős egysége) egy integrált fejlesztői platformban, a ROS alkalmazások számára. TurtleBot Működési diagram: Kezelési útmutató A labor szekció megkezdése előtt, minden csapat csoportvezetőjének be kell jelentkezni és felelősséget kell vállalniuk a TurtleBotra. A TurtleBot törékeny szerkezet, óvatosan kell kezelni Bármilyen program elindítása előtt győződjünk meg róla, hogy elég terület áll-e rendelkezésére a robot körül Minden programnak rendelkeznie kell "safe-guard" kóddal (más néven watch-dog kód), ami folyamatosan ellenőrzi és reagálja az érzékelőkből jövő jeleket. Netbook/laptop mindig legyen teljesen feltöltve és stabilan rögzítve a TurtleBot-hoz, hiszen a Kinect-et ez tartja áram alatt. Kommunikációs elrendezés A TurtleBot működése során két számítógép is érintett. Az első egy netbook, ami fizikailag csatlakozik a TurtleBot-hoz. A második egy munkaállomás PC, ami távolról irányítja a TurtleBot-ot. TurtleBot beállítása TurtleBot beállítása: Munkaállomás beállítása: A ROS mester a TurtleBot laptopján fut, tehát a munkaállomáson állítsa be : ROS_MASTER_URI to point TurtleBot laptop A TurtleBot távoli elérése Csatlakozás az ssh-hoz hogy működjön a TurtleBot a munkaállomás computerről: Meg kell határozni az IP_OF_TURTLEBOT -ot, ezt az ipconfig parancsal lehet lekérdezni Használja az ssh t a TurtleBot-hoz való csatlakozáshoz ssh turtlebot @IP_OF_TURTLEBOT ssh turtlebot@127.0.0.1 Jelszó kérése: turtlebot Távolról való bejelentkezés a TurtleBotba (netbook) 8

TurtleBot Indítása A bekapcsolást követően: két mód van az elindításra: 1. módszer: sudo service turtlebot start 2. módszer: roslaunch turtlebot_bringup minimal.launch Megjegyzés: Ha nem áll rendelkezésre fizikailag TurtleBot, akkkor a szimulátort is használhatjuk. roslaunch turtlebot_gazebo turtlebot_empty_world.launch Dashboard Ahhoz hogy lássuk, hogy mi történik éppen a TurtleBottal, szükség lesz a dashboard parancsra. TurtleBot Helyváltoztatása A TurtleBot helyváltoztatása billentyűzet, joystick, vagy rviz segítségével: roslaunch turtlebot_teleop keyboard_teleop. Lunch A terminálban lévő gombokkal irányítható a robot Megjegyzés: Ha új parancsot nem kap elég hosszan, akkor a TurtleBot megáll. Bemutató 1 Bemutató 2: (Camera View) http://www.voutube.com/mrusmanqavvum Konkrét példa (Case Study) Csomag létrehozása Forrás fájl szerkesztése Egy egyszerű megjelenítő írása Watch-dog-kód C + + programozás A program fordítása(compiling) ROS csomag útjának beállítása (a fejlesztői csomagnak fontos) A csomópont kód futtatása (előtte roscore vagy szimulátor vagy netbook-turtlebot indítása) Bemutató 3 www.youtubexom/mrusmanqavvum 9

Képfeldolgozása a ROS-ban www.ros.org/wiki/cv_bridge www.ros.org/wiki/image_geometry Feliratkozás kamera témákra ROS kép -> OpenCV Fénykép témák közzététele 3D-s feldolgozás A világ nem csak 2D-ból áll A 2D látás hibás eredményeket hozhat A 3D feldolgozás megérkezett! Kinect, 3D zsebkamerák n-d érzékelés: legkevesebb n = 3: x, yz. + RGB = 4D + normál információ = 7D + görbületi felület = 8D +... = n-d 10

Point Cloud Library (PCL) Példa PCL Szegmentációra Kisebb moduláris könyvtárak gyűjteménye: libpcl_features: 3D funkciók (pl. normál és görbületi, határ pontok, (PFH), Fast PFH, Narf, RSD Iibpcl_surface:felszíni rekonstrukció (pl. illeszkedő, konvex testek,mintavétel,kiugró értékekeeltávolítása,előrejelzések. libpcl_registration: Összehangolási módszerek (optimalizálás,nem lináris) 3D funkciók Szegmentálás Felületi rekonstrukció Regisztráció Kulcspontok Következtetés Betekintést nyertünk a ROS alapjaiba, felépítésébe és a különböző csomagokba Megismertük a TurtleBot felépítését és vezérlését, valamint a Kinectet OpenCV és PCL Fordította: Erdei Timotei Szerkesztés: Dr. Szemes Péter Tamás 11