Szimulációs technikák

Hasonló dokumentumok
NGB_IN040_1 SZIMULÁCIÓS TECHNIKÁK dr. Pozna Claudio Radu, Horváth Ernő

Mechatronika segédlet 10. gyakorlat

Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT. Fertői Ferenc

Összeállította: dr. Leitold Adrien egyetemi docens

Programozás I gyakorlat

Minimum követelmények matematika tantárgyból 11. évfolyamon

BUDAPESTI GAZDASÁGI FŐISKOLA KÜLKERESKEDELMI FŐISKOLAI KAR NEMZETKÖZI KOMMUNIKÁCIÓ SZAK Nappali tagozat Médiamenedzsment szakirány

Osztályozóvizsga követelményei

TANMENET. a matematika tantárgy tanításához 11.E osztályok számára

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Dicsőségtabló Beadós programozási feladatok

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Oklevél kiadásához szükséges nyelvvizsgák táblázata a DF szakjainál

Témakörök az osztályozó vizsgához. Matematika

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

Objektum orientált kiterjesztés A+ programozási nyelvhez

KOORDINÁTA-GEOMETRIA

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

TARTALOM. Előszó 9 HALMAZOK

2016/2017. Matematika 9.Kny

Skaláris szorzat: a b cos, ahol α a két vektor által bezárt szög.

Programozás I gyakorlat

Programozási technológia

Széchenyi István Egyetem Műszaki Tudományi Kar

Programozási nyelvek Java

Programozás alapjai. 7. előadás

10. gyakorlat Struktúrák, uniók, típusdefiníciók

FANUC Robotics Roboguide

és az instanceof operátor

O ( 0, 0, 0 ) A ( 4, 0, 0 ) B ( 4, 3, 0 ) C ( 0, 3, 0 ) D ( 4, 0, 5 ) E ( 4, 3, 5 ) F ( 0, 3, 5 ) G ( 0, 0, 5 )

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

OOP. Alapelvek Elek Tibor

10. Koordinátageometria

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010.

Geometriai példatár 2.

17. előadás: Vektorok a térben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Egy sík és a koordinátasíkok metszésvonalainak meghatározása

Vektorok összeadása, kivonása, szorzás számmal, koordináták

Soros felépítésű folytonos PID szabályozó

Két körhenger általánosabban ( Alkalmazzuk a vektoralgebrát! ) 1. ábra

NT Matematika 11. (Heuréka) Tanmenetjavaslat

KOVÁCS BÉLA, MATEMATIKA II.

Koordináta-geometria feladatok (emelt szint)

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

MATEMATIKA EMELT SZINTŰ SZÓBELI VIZSGA TÉMAKÖREI (TÉTELEK) 2005

Osztályozóvizsga követelményei

VEGYIPARI RENDSZEREK MODELLEZÉSE

Matematika A1a Analízis

A mechanika alapjai. A pontszerű testek dinamikája

9. ÉVFOLYAM. Tájékozottság a racionális számkörben. Az azonosságok ismerete és alkalmazásuk. Számok abszolútértéke, normál alakja.

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

2014/2015. tavaszi félév

Java és web programozás

Egyenletek, egyenlőtlenségek grafikus megoldása TK. II. kötet 25. old. 3. feladat

HŐÁTADÁS MODELLEZÉSE

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

Halmazok Halmazok, részhalmaz, halmazműveletek, halmazok elemszáma

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Generikus osztályok, gyűjtemények és algoritmusok

V É G E S E L E M M Ó D S Z E R M É R N Ö K I M E C H A N I K A I A L K A LM A Z Á S A I

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

SZERKEZETFÖLDTANI OKTATÓPROGRAM, VETŐMENTI ELMOZDULÁSOK MODELLEZÉSÉRE. Kaczur Sándor Fintor Krisztián

Diszkrét matematika 2.

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Koordináta-geometria feladatok (középszint)

Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Nagyméretű közúti közlekedési hálózatok analízise, 3D vizualizációja

Feladatok megoldásokkal a harmadik gyakorlathoz (érintési paraméterek, L Hospital szabály, elaszticitás) y = 1 + 2(x 1). y = 2x 1.

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

2016/2017. Matematika 9.Kny

2) Egy háromszög két oldalának hossza 9 és 14 cm. A 14 cm hosszú oldallal szemközti szög 42. Adja meg a háromszög hiányzó adatait!

MAGISTER GIMNÁZIUM TANMENET OSZTÁLY

Informatika tanterv nyelvi előkészítő osztály heti 2 óra

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Méréselmélet MI BSc 1

Mechatronika segédlet 11. gyakorlat

MATEMATIKA TANMENET 9.B OSZTÁLY FIZIKA TAGOZAT HETI 6 ÓRA, ÖSSZESEN 216 ÓRA

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Valószínűség-számítás II.

MATEMATIKA EMELT SZINTŰ SZÓBELI VIZSGA TÉMAKÖREI (TÉTELEK) 2012

Cekla. Készítette Doxygen Tue Sep :13:44

Matematika tanmenet 11. évfolyam (középszintű csoport)

3. tétel Térelemek távolsága és szöge. Nevezetes ponthalmazok a síkon és a térben.

Rekurzió. Dr. Iványi Péter

Mérés és modellezés Méréstechnika VM, GM, MM 1

Bevezetés az informatikába

Adatbázis rendszerek Info MÁTRIX

Véletlen sorozatok ellenőrzésének módszerei. dolgozat

Megyei matematikaverseny évfolyam 2. forduló

Számítógépes döntéstámogatás. Genetikus algoritmusok

LINEÁRIS ALGEBRA PÉLDATÁR MÉRNÖK INFORMATIKUSOKNAK

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27.

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

5. előadás. Skaláris szorzás

Érettségi feladatok Koordinátageometria_rendszerezve / 5

Átírás:

SZÉCHENYI ISTVÁN EGYETEM Műszaki Tudományi Kar Informatikai tanszék Szimulációs technikák ( NGB_IN040_1) 2. csapat Comparator - Dokumentáció Mérnök informatikus BSc szak, nappali tagozat 2012/2013 II. félév

Tartalomjegyzék Bevezetés... 3 A Comparator feladata... 3 Megvalósítás... 4 Fejlesztési lehetőség... 5 Comparator.java osztály működése... 6 Változók... 6 Metódusok... 6 Külső osztályok... 7 Futás közben... 7 2

Bevezetés A félév folyamán általunk elkészített alkalmazás egy önjáró robot működésének szimulációját valósítja meg. A programozáshoz a java nyelvet választottuk. A feladat teljesítéséhez 6 csapatra osztottuk szét a feladatokat: Trajectory Planning Comparator PID Model Plot Sensor Az alábbi dokumentáció a Comparator megvalósításának folyamatát mutatja be. Csapattagok: Albano Péter Bella Ádám Gregor Zoltán (csoport-vezető) Kelemen Balázs Molnár József A Comparator feladata A Comparator modul feladata az inputként kapott pontokból, amelyek a robot követendő pályáját határozzák meg, és a robot aktuális pozíciójából, előállítani a d értéket minden egyes hívásnál, amely a pálya aktuális szakaszától való távolságot adja meg kimenetként. (az aktuális szakasz az előzetesen megtervezett útvonal egy része). Erre azért van szükség, mert az előzetesen megtervezett útvonalhoz képest eltérések adódhatnak, a robot a valóságban nem egy teljesen egyenes pályán fog haladni, így korrigálásra van szükség futása közben. 3

Megvalósítás A feladat megvalósításához készítettünk egy comparator.java osztályt. A comparator.java hívásait a helper csomag osztályai szolgálják ki, melyeket a csapatok közösen hoztak létre: Line.java, Position.java, Pose.java. Ezeket használathoz beimportáljuk a helper-ből. Segítségükkel globálisan, a többi csapattal megegyezően azonos adattípusokat és adatszerkezeteket használtunk a különböző pontok, egyenesek, és közöttük lévő viszonyok számításához. Továbbá az Icomparator.java-t amely a comparator elkészítéséhez szükséges interfész osztályt tartalmazza. Ennek segítségével, a többi csapat munkájától függetlenül, szinte kész állapotba fejleszthettük az osztályt. A megoldáshoz elengedhetetlen a matematikai háttér, ezen belül is a koordináta geometria. Természetesen csak síkban lévő számításokra volt igény a szimuláció 2 dimenziós lefolyása miatt. Olyan műveletek alkalmazására volt szükségünk, mint például két pont által meghatározott szakasz egy adott szakasz hossza két szakasz skaláris szorzata a robot elhelyezkedését meghatározó pont és az aktuális szakasz távolságának meghatározása. Két pont távolsága Merőleges egyenlete 4

Két pont skaláris szorzata 1. ábra R: a robot aktuális pozíciója A, B, C: pedig a térkép egymást követő pontjai d: pedig a távolság az aktuális szakasztól Példában ez a szakasz az AB. Ha A-t és R-t összekötő szakasz skaláris szorzata A-t és B-t összekötő szakasszal nagyobb mint az A és B pontot összekötő szakasz hossza akkor R-t, a B-t és C-t összekötő szakaszhoz mérjük és töröljük az A pontot és ezzel az A-t és B-t összekötő szakaszt. Viszont amíg ez nem teljesül az A-t és B-t összekötő szakaszhoz viszonyítunk. Az összehasonlítás képlete: AB AR > AB. Fejlesztési lehetőség Nem kell megvárni míg nagyobb lesz a skaláris szorzat mint az aktuális szakasz, hanem egy előre megadott értékkel számítva, ha elégségesen megközelíti azt, akkor továbbléphetünk a következő szakaszra. Tehát: (AB*AR)> AB * 95% 5

Comparator.java osztály működése Változók d act_rob_pos smoothtraj_points számított távolság értéke a robot aktuális pozíciójának tárolása a követendő pálya pontjainak tárolására Metódusok setsmoothtrajectory() az aktuálisan követendő pálya pontjainak megadása a paraméterben megadott List<Position> típusú adatszerkezettel, a amelyet a smoothtraj_points -ban tárolunk el. setcurrentpose() a robot aktuális pozíciójának megadása a paraméterben megadott Pose p típusú adattal, amelyet a act_rob_pos -ban tárolunk el. getdistance() visszaadja az aktuális szakasz és aktuális robotpozíció között aktuálisan meglévő távolságot, azaz a d t, a paraméterben megadott getactline() függvénnyel visszatérési értéke az aktuális szakasz ) és act_rob_pos adattal. Ezt a függvényt fogja hívni PID. getskalarhossz() visszaadja a paraméterben megadott, 3 pont ( robot aktuális pozíciója és az aktuális szakasz kezdő és végpontja) által meghatározott szakaszok skaláris szorzatát egy double típusú értékben. 6

getactline() visszaadja az aktuális szakaszt egy Line típusú adatszerkezetben, amelyet a robot aktuális pozíciója és az aktuális ponthalmaz első két pontja alapján, az előre meghatározott összefüggések segítségével, eldönti hogy a 3 pont által meghatározott szakaszok skaláris szorzata nagyobb e mint az aktuális ponthalmaz első két pontja által meghatározott szakasz. Ha rövidebb, akkor az aktuális első két pont által meghatározott szakasszal tér vissza Ha hosszabb, akkor az első pontot törli, majd a ponthalmaz új első és második pontjai által meghatározott szakasszal tér vissza. Külső osztályok import helper.pose; import helper.position; import helper.line; import interfaces.icomparator; Futás közben Az osztálypéldány létrehozása után, a Trajectory Planning megadja az aktuális követendő pálya ponthalmazát a setsmoothtrajectory() metódus paraméterében, továbbá megadja a robot kezdő pozícióját a setcurrentpose() metódus paraméterében. Ezek után a getdistance() függvény hívásával kérhető le a keresett d értéke, melyet a PID fog kérni. A szimuláció futása közben, a Sensor folyamatosan frissíti a robot pozícióját a setcurrentpose() metódus paraméterbeni átadásával. 7