Mechatronika segédlet 10. gyakorlat

Hasonló dokumentumok
Mechatronika segédlet 11. gyakorlat

Mechatronika segédlet 3. gyakorlat

Mechatronika segédlet 8. gyakorlat

Mechatronika segédlet 6. gyakorlat

Mechatronika segédlet 2. gyakorlat

Mechatronika segédlet 1. gyakorlat

Hurokegyenlet alakja, ha az áram irányával megegyező feszültségeséseket tekintjük pozitívnak:

Robotok inverz geometriája

MATLAB OKTATÁS 6. ELŐADÁS SIMULINK ALAPOK JÁRMŰMÉRNÖKI ALKALMAZÁSSAL. Dr. Bécsi Tamás Hegedüs Ferenc

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

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

Szimulációs technikák

Függvények ábrázolása

Négycsuklós mechanizmus modelljének. Adams. elkészítése, kinematikai vizsgálata,

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

CAD-ART Kft Budapest, Fehérvári út 35.

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

FANUC Robotics Roboguide

MATLAB. 3. gyakorlat. Mátrixműveletek, címzések

Informatika terméktervezőknek

Annak a function-nak a neve, amiben letároltuk az egyenletünket.

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

IV. LEGO Robotprogramozó Országos Csapatverseny

* Az eszköztáron látható menüpontok közül csak a felsoroltak esetén használható a Ctrl.

Számítógépvezérelt irányítás és szabályozás elmélete (Bevezetés a rendszer- és irányításelméletbe, Computer Controlled Systems) 7.

VI. Robotprogramozó Országos Csapatverseny Döntő versenyfeladatok. 5. évfolyam

A számok kiíratásának formátuma

Normák, kondíciószám

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

M-Fájlok létrehozása MATLAB-ban

Beltéri autonóm négyrotoros helikopter szabályozó rendszerének kifejlesztése és hardware-in-the-loop tesztelése

MATLAB alapismeretek II.

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Zárójelentés. Az autonóm mobil eszközök felhasználási területei, irányítási módszerek

A LEGO Mindstorms EV3 programozása

MATLAB alapismeretek I.

Csődfigyelő. Figyelje Ön is gazdasági partnerit!

BASH script programozás II. Vezérlési szerkezetek

Laborsegédlet 3. Labor

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

Forogj! Az [ 1 ] munkában találtunk egy feladatot, ami beindította a HD - készítési folyamatokat. Eredményei alább olvashatók. 1.

HIL SZIMULÁCIÓ ROBOTPILÓTA FEJLESZTÉSBEN

Ellipszis átszelése. 1. ábra

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

Példatár a bevezetés a Matlab programozásába tárgyhoz

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

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

VI. Robotprogramozó Országos Csapatverseny évfolyam

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

Forgattyús mechanizmus modelljének. Adams. elkészítése, kinematikai vizsgálata,

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Matlab Fuzzy Logic Toolbox

Robotika. Relatív helymeghatározás Odometria

The modular mitmót system. DPY kijelző kártya C API

Regresszió számítás. Tartalomjegyzék: GeoEasy V2.05+ Geodéziai Kommunikációs Program

SCILAB programcsomag segítségével

Mérnöki programozás 8. Szerkesztette: dr. Vass Péter Tamás

Logikai hálózatok szimulációja a MATLAB/SIMULINK alkalmazásával

Tanulmányozza az 5. pontnál ismertetett MATLAB-modell felépítést és működését a leírás alapján.

A kontrolladat-szolgáltatás elkészítése

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Segédlet: Főfeszültségek meghatározása Mohr-féle feszültségi körök alkalmazásával

Ügyfélforgalom számlálás modul

Konjugált gradiens módszer

Atomerőművek üzemtanának fizikai alapjai. MATLAB használata

MINTA Írásbeli Záróvizsga Mechatronikai mérnök MSc. Debrecen,

MATLAB. 5. gyakorlat. Polinomok, deriválás, integrálás

MATLAB. 6. gyakorlat. Integrálás folytatás, gyakorlás

Intelligens rendszerek gyakorlat

KÉPFELDOLGOZÁS. 10. gyakorlat: Morfológiai műveletek, alakjellemzők

Függvények Függvények

KIEGYENLÍTŐ SZÁMÍTÁSOK II.

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1

Osztályok. 4. gyakorlat

ODE SOLVER-ek használata a MATLAB-ban

MATLAB alapismeretek III.

Egyszerű RISC CPU tervezése

BASH SCRIPT SHELL JEGYZETEK

A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában

Matematikai, informatikai, fizikai kompetenciák fejlesztése

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Apple Swift kurzus 3. gyakorlat

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

12 48 b Oldjuk meg az Egyenlet munkalapon a következő egyenletrendszert az inverz mátrixos módszer segítségével! Lépések:

Matlab alapok. Baran Ágnes. Grafika. Baran Ágnes Matlab alapok Grafika 1 / 21

Hajder Levente 2018/2019. II. félév

Inga. Szőke Kálmán Benjamin SZKRADT.ELTE május 18. A jegyzőkönyv célja a matematikai és fizikai inga szimulációja volt.

Baran Ágnes. Gyakorlat Halmazok, függvények, Matlab alapok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 34

Aradi Bernadett. 2017/18 ősz. TensorFlow konvolúciós hálózatokhoz 2017/18 ősz 1 / 11

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Tárgy. Forgóasztal. Lézer. Kamera 3D REKONSTRUKCIÓ LÉZERES LETAPOGATÁSSAL

ÁLLAPOTFÜGGŐ KARBANTARTÁST SEGÍTŐ INTEGRÁLT DIAGNOSZTIKAI RENDSZER. Dr. Nagy István, Kungl István. OKAMBIK Pécs, április

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

Átírás:

Mechatronika segédlet 10. gyakorlat 2017. április 21. Tartalom Vadai Gergely, Faragó Dénes Feladatleírás... 1 simrobot... 2 Paraméterei... 2 Visszatérési értéke... 2 Kód... 2 simrobotmdl... 3 robotsen.mdl... 3 Subsystem... 4 Integrátorok kezdeti értékei... 4 Interpreted MATLAB Fcn... 4 InitFcn... 4 Differenciál hajtású robot vezérlése... 5 Ha a jegyzetben bármilyen hibát találsz, kérlek jelezd a farago.denes@stud.u-szeged.hu mailcímen. Feladatleírás A gyakorlaton a robot vezérlésének szimulációját valósítjuk meg Simulink segítségével. A gyakorlat során használt fájlok az előadó honlapjáról letölthetőek. 1

simrobot A simrobot függvény először megrajzolja a pályát és a robotot, majd elkészíti a pásztázósugarak mátrixát. A linesegmentintersect segítségével kiszámítja minden szenzorra, hogyan metszik a pásztázósugarak a pálya vonalait, és ez alapján kiszámítja az ultrahangos szenzorok értékeit. Paraméterei filename: a pályát tartalmazó csv fájl útvonala (XP, YP): a robot aktuális tartózkodási helye Orient: a robot aktuális orientációja SensorOrients: a robot szenzorainak orientációja (vektor) Visszatérési értéke Kód sensors: egy sorvektor, ami a SensorOrientsnek megfelelő sorrben tartalmazza az ultrahangos szenzorok értékeit. function [ sensors ] = simrobot(filename, XP, YP, Orient, SensorOrients, SensorAngle, SensorRange) %A függvény kirajzolja a pályát és a robotot, és kiszámítja az ultrahangos %szenzorok értékeit. %simrobot('map1.csv', 0, 0, 25, [20, -20, 90, -90, 180], 15, 0.7) %Kimeneti vektor feltöltése nullákkal sensors=zeros(size(sensororients)); %Rajzoláshoz szükséges vektorok inicializálása: Xs=[]; Ys=[]; %A felbontás fix: LineRes=10; SenRes=11; %Pálya beolvasása M=csvread(filename); %Pálya pontjai: for i=1:size(m, 1), [Xn, Yn]=plotsegment(M(i, 1), M(i, 2), M(i, 3), M(i, 4), LineRes); Xs=cat(2, Xs, Xn); Ys=cat(2, Ys, Yn); %Szenzorok pontjai: for i=1:length(sensororients), [Xn, Yn]=drawarc(XP, YP, SensorRange, SensorAngle, Orient+SensorOrients(i), SenRes); Xs=cat(2, Xs, Xn); Ys=cat(2, Ys, Yn); 2

%Kirajzolás plot(xs, Ys, '.b'); axis equal; %A pásztázósugarak (X1, Y1) pontjai, vagyis a robot középpontja %(Kettő darab oszlopvektor) CenterX=ones(SenRes, 1)*XP; CenterY=ones(SenRes, 1)*YP; %Ultrahangos megvalósítás %Minden szenzorra: for i=1:length(sensororients), %Pásztázósugarak végpontjainak meghatározása: [Xn, Yn]=drawarc(XP, YP, SensorRange, SensorAngle, Orient+SensorOrients(i), SenRes); %Pásztázósugarak konstruálása a fent definiált Center vektorok %segítségével: SenRays=[CenterX CenterY Xn' Yn']; %Metszéspontok meghatározása out = linesegmentintersect(senrays,m); %Euklideszi távolságok meghatározása Distances=sqrt(((out.intMatrixX-XP).^2)+((out.intMatrixY-YP).^2)); %Ha volt metszés, akkor az aktuális szenzor értékének kiszámítása if (sum(out.intadjacencymatrix(:))>0), sensors(i)=(min(distances(out.intadjacencymatrix))/sensorrange)*- 1+1; simrobotmdl Működése megegyezik a simrobottal azzal a különbséggel, hogy a paraméterek egy részét a workspace-ből olvassa be. Ezek a paraméterek függetlenek a Simulink modelltől, így az Interpreted MATLAB Fcn bemeneteinek száma háromra csökkenthető. Ezeket az értékeket callback eljárás segítségével kell értékül adni a workspacben lévő megfelelő nevű változóknak. (Lásd: InitFcn) robotsen.mdl 1. ábra: robotsen 3

A robotsen.mdl a vezérlés, majd később a szabályozás modelljét tartalmazza. Subsystem A Subsytem a robot matematikai modelljét valósítja meg integrátorok segítségével. A bemenete a differenciál hajtással relkező robot bal és jobb oldali kerekének szögsebessége. Kimenete az aktuális pozíció és orientáció. Integrátorok kezdeti értékei A Subsystemben lévő integrátorok a rszer állapotának változásait összegzik, ezért a helyes működéshez meg kell adni a kezdeti pozíciót és orientációt. Ezt az integrátorok kezdőértékeinek megadásával tehetjük meg: dupla kattintás az integrátorra -> properties -> initial condition (2. ábra). 2. ábra: Az integrátorok kezdőértékeinek beállítása. Ebben az esetben a robot kezdeti X koordinátája 1. Interpreted MATLAB Fcn Ez a blokk meghívja a simrobotmdl függvényt. A Subsystem kimeneti értékei egy multiplexeren keresztül a simrobotmdl függvénybe jutnak, amely minden iterációban kirajzolja a robotot és a pályát, valamint kiszámítja a szenzorok értékeit. InitFcn A simrobotmdl a paramétereinek egy részét a közös workspace-ről olvassa be, ezért a szimulációk előtt ezeket létre kell hozni a megfelelő változónevekkel. Ezt megtehetjük a modellhez tartozó InitFcn callback eljárás segítségével is, ami akkor hívódik meg, amikor a szimulációt elindítjuk. Ennek módosításához modellen belül a File -> Model Properties -> Model Properties-re kell kattintani, azon belül pedig a Callbacks fület kell kiválasztani és az InitFcn menüpontot. 4

3. ábra: Model Properties ablak elérése 4. ábra: Szimuláció előtt végrehajtódó eljárás megadása Differenciál hajtású robot vezérlése A differenciál hajtású robotok irányítása a kerekek szögsebességének változtatásával valósul meg. A mi modellünkben ez az irányítás jelenleg konstansokkal van megvalósítva, a következő órán ezt helyettesítjük egy P-típusú szabályzással. Jelenleg a bal oldali kerék sebessége kisebb, mint a jobb oldali keréké, ezért a robot az óramutató járásával ellentétes irányban fog körözni (5. ábra). 5

5. ábra: Differenciál hajtással relkező robot. Az ábrán a bal oldali kerék lassabban forog, mint a másik. 6