1

This a desperate SOS for help. I am writing my thesis in LaTeX and have a few issues. I ask for help in the forum, and then I get, why did you do it this way, why not the other ... and I am already confused. I am newbee level with LaTeX and it is hard sometimes to understand the replies.

I write this post because soon I will need to hand in the thesis and there are still some big issues left and unsolved with my thesis. So I desperately need help.

What I would like to ask is to have someone who can walkthrough my all thesis and discuss/help me in how to solve the issues and maybe change some of the solutions I made if needed in order to get a decent thesis form.

If anyone is willing to help me in an interactive way I would really appreciate it. As I said there are a few issues, not only one.

I share the whole LaTeX code and I also add my initial question. Thank you in advance!

The document:

\documentclass[12pt]{article}
\usepackage{graphicx}




\usepackage[utf8]{inputenc}
\usepackage{blindtext} % kamuszoveget ad
\usepackage{hyperref} % ez csinal linket a contentsbol
\usepackage{geometry} % ez a margin beallitasokat
\usepackage{fancyhdr} %ez az oldalszamozast csinalja
\usepackage{mathptmx} % ez a times new roman
\usepackage{etoolbox}
\usepackage{sectsty}
\usepackage[document]{ragged2e} %justification left/right
\usepackage{titlesec}
\usepackage{wrapfig}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[ceqn]{nccmath}
%\usepackage[fleqn]{nccmath}
\usepackage{mwe} %kepek egymas mellett
\usepackage{color,soul} %sorkiemelő
\usepackage{xcolor} %sorkiemelő
\usepackage[disable]{todonotes} %todo buborekok 
\usepackage{verbatim} %a kikommenteleshez
\usepackage{epigraph} %idezet az elso oldalon
\usepackage{mathtools}


\pagestyle{fancy}
\fancyfoot{}
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[C]{\thepage}
%\pagenumbering{arabic}


\allsectionsfont{\centering}
\subsectionfont{\normalsize\bfseries}
\renewcommand{\baselinestretch}{1.5}


\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\@makechapterhead}{\huge}{\large}{\center}{}% for \chapter
\patchcmd{\@makechapterhead}{\Huge}{\large}{\center}{}% for \chapter
\patchcmd{\@makeschapterhead}{\Huge}{\large}{\center}{}% for \chapter*
\makeatother

\allsectionsfont{\centering}
\subsectionfont{\normalsize\bfseries}
\subsubsectionfont{\normalsize\bfseries}
\renewcommand{\baselinestretch}{1.5}
\renewcommand{\figurename}{Ábra}



\geometry{a4paper, left=35mm, right=20mm, top=40mm, bottom=40mm}



\title{Diplomamunka}
\date{}
\author{Zsarnowszky Loránt}



\begin{document}


\maketitle
\newpage


\tableofcontents

\clearpage
%\justify

\section{Bevezetés}
%ez itt egy komment

%\epigraph{Bip bip bee bee bip}{\textit{R2-D2}}

\begin{justify}
Alapvetően három különböző típusú robotot különböztetünk meg: a vezérelt robot, az automatizált robot és az autonóm azaz önálló robot.\\ 
A vezérelt robotok esetében mindenképp szükség van emberi üzemeltetésre. Ezek jellemzően olyan robotok melyek teljes mértékben függnek az emberi irányítástól, önállóan semmilyen feladatot, tevékenységet nem végeznek. Vezérelt robotokat gyakran alkalmaznak orvosi műtétek során illetve katonai akciók, bombák hatástalanítása alkalmából.

\end{justify}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
\includegraphics[width=0.25\textwidth]{kiva_robot.png}
\caption{\label{fig:kiva robot}Az Amazon által alkalmazott Kiva robot.}
\end{wrapfigure}

\todo{Megoldani az ábra feliratot..szám az ábra elé}
Az autonóm robotok lehetőséget adnak arra, hogy óriási mértében növeljük a termelés minőségét és hatékonyságát. Csak, hogy megemlítsek egy pár ilyen területet a teljesség igénye nélkül: csomagszállítás, logisztika, takarítás, mezőgazdaság, földművelés.

\subsection{A szakdolgozat tartalmi összefoglalása}
\begin{justify}
A szakdolgozatom első részében a mobil robot megvalósításának elméleti hátteréről értékezek.

\subsection{A virtuális környezet}

Az elméleti kidolgozás során az amerikai Georgia Institute of Technology (Georgia Tech) egyetem által fejlesztett sim.I.am mobil robot szimulátort fogom használni.     

\subsubsection{A sim.I.am könyvtérszerkezet bemutatása}
A sim.I.am 



\subsection{A gyakorlati kivitelezés}
A gyakorlati kivitelezés részben beszámolok az általam épített robot tapasztalatairól.A robot programkódját \todo{itt majd megadni hogy miben írtam meg a kódot } Python/Matlab/C nyelven írtam. Az általam írt programot részletesen ismertetem a gyakorlati kivitelezés részben.


\subsection{Célkitűzés}
A szakdolgozat célja, hogy bemutassa egy autonóm mobil robot irányítástechnikájának az elméleti hátterét, figyelembe véve az inputokat, outputokat és a visszacsatolást.


\subsection{A szakdolgozat fő fejezeteinek tartalma}
A szakdolgozat első fejezete a bevezető rész. Ez a fejezet tartalmaz egy rövid összefoglalót a mobil robotok típusairól, egy kis ismertetőt a szakdolgozat elméleti kidolgozásához alkalmazott szimulátorról illetve gyakorlati megvalósításról és a szakdolgozat célkitűzését.


\end{justify}

\clearpage
\section{A PID típusú szabályzó}
%itt irok a PID vezérlésről

\subsection{Egy egyszerű vezérlés}
\begin{justify}
A vezérlés feladata, hogy az általunk irányított járművet, vagy adott esetben robotot, egy - általunk megadott - sebességen tartson. Azaz indulásnál felgyorsítson egészen a megadott sebességig majd ezt a sebességet tartsa egészen addig amíg eltérő jelzést, azaz újabb referenciaértéket nem kap. 


Ezen információk rendelkezésre állása segít abban, hogy levezessem az alábbi egyenletet:

\begin{ceqn}
\begin{equation*}
\dot{v} = a \Rightarrow m \cdot \dot{v} = c \cdot u \Rightarrow \dot{v} = \frac{c}{m} \cdot u
\end{equation*}
\end{ceqn}

A célsebesség értékét $r$ jelöli és az eltérés mértékét - az angol error szó után - $e$ betűvel jelölöm. Ebből adódik, hogy: $e = r - v$.
A vezérlés gyakorlati megtervezése előtt, fontos rögzíteni azokat a 
tulajdonságot melyekkel rendelkeznie kell:
\begin{itemize}
\item kis eltérési érték esetén ($e$) a korrekciónak ($u$) is kicsinek kell lennie
\item a célérték ($u$) nem "ugrálhat" nagy mértékben (azaz a hirtelen gyorsulás/lassítás nem haladhat meg egy megadott értéket)
\item a céltérték nem lehet az átviteli koefficiens ($c$) illetve a gépjármű vagy robot tömegének ($m$) a függvénye
\end{itemize}
Az utolsó pont valójában azt jelenti, hogy a robot vezérlője, a különböző paraméterek (mint például tömeg vagy átviteli veszteségek) ismerete nélkül is képes kell legyen egy megadott sebességen tartani a robotot.

    Tehát ha az eltérés pozitív akkor a maximális bemeneti értéket határozok meg, ha az eltérés negatív (azaz a valós sebesség nagyobb mint a referencia sebesség) akkor minimális (negatív) bemeneti értékkel számolok, nulla eltérés esetén pedig a bemeneti érték is nulla.
\end{justify}

\begin{equation}
    u=
    \begin{cases}
      u_{max}, & \text{ha}\ e > 0 \\
      -u_{max}, & \text{ha}\ e < 0 \\
      0, & \text{ha}\ e = 0

    \end{cases}
  \end{equation}

\begin{justify}
A két grafikon megmutatja, hogy pontosan mi a gond a fenti elképzeléssel.
\end{justify}

\begin{figure}
    \centering
    \begin{minipage}{0.45\textwidth}
        \centering
        \includegraphics[width=0.99\textwidth]{Bev_PID_vez_1.PNG} % first figure itself
        \caption{\label{fig:sebesseg_ido_norm_vezerl}a robot sebességgörbéje}
    \end{minipage}\hfill
    \begin{minipage}{0.45\textwidth}
        \centering
        \includegraphics[width=0.99\textwidth]{Bev_PID_vez_2.PNG} % second figure itself
        \caption{\label{fig:bem_jel_norm_vezerl}a bemeneti jel értékei}
    \end{minipage}
\end{figure}

\todo{Betenni a saját grafikonokat}

\begin{justify}
A bal oldali grafikon mutatja a robot sebességét az eltelt idő függvényében. Ezen az látható hogy a robot egészen addig gyorsul amíg eléri a referencia értéket, majd ezt tartja. A problémát a bal jobb oldali ábra jelenti. Ez az ábra tartalmazza a bemeneti jel értékeit az eltelt idő függvényében. Ez a grafikon azt jelzi hogy a bemeneti érték folyamatosan 100\% és -100\% között ugrál. 
Összefoglalásképp megállapítható, hogy az első próbálkozás a fent említett okok miatt nem járt sikerrel így el kellett vetnem.
\end{justify}


\subsection{P szabályzó}
\begin{justify}
Amint az láthattuk az első robotvezérlő modellem nem vált be. A probléma fő oka az volt, hogy az \textit{error}, azaz a referencia sebesség és valós sebesség eltérésének bármilyen értékére a bemeneti jel mely vezérli a robot sebességet azonnal maximális gyorsulással vagy maximális tolatással reagál.
\end{justify}  

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{Kepek/2.1_Bev_a_vezerlesbe/P_regulator.PNG}
\caption{\label{fig:seb_ido_P_szab}A P szabályzó sebesség/idő görbéje}
\end{figure}

\todo{betenni a saját P szabályzó grafikont}
\begin{justify}
Ugyanakkor az ábrán azt is hamar észre lehet venni, hogy a valós sebesség nem éri el a referenciajelet. Ebben az esetben a modell matematikai leírása az alábbiak szerint alakul:
\end{justify}
\begin{ceqn}
\begin{equation*}
\dot{v} = \dfrac{c}{m} \cdot u - \gamma \cdot v
\end{equation*}
\end{ceqn}
\begin{justify}
A $\gamma$ ebben az esetben a légellenállási tényezőt jelöli és a sebesség függvénye. Ha jobban megvizsgáljuk ezt a képletet akkor hamar megállapíthatjuk hogy állandó sebesség esetén - azaz ha a rendszer nem gyorsul vagy lassul - a jármű soha nem tudja elérni a referenciaértéket ($r$).
\end{justify}
Tehát:
\begin{ceqn}
\begin{equation*}
\dot{v} = 0 = \dfrac{c}{m} \cdot u - \gamma \cdot v
\end{equation*}
\end{ceqn}
Mivel tudjuk hogy a P szabályozó esetében $u = k(r-v)$, ezt behelyettesítve az alábbi egyenletet kapjuk:

\begin{ceqn}
\begin{equation*}
\dot{v} = 0 = \dfrac{c}{m} \cdot u - \gamma \cdot v = \dfrac{c}{m} \cdot k \cdot (r-v) - \gamma \cdot v \Rightarrow (c \cdot k + m \cdot \gamma) \cdot v = c \cdot k \cdot r
\end{equation*}
\end{ceqn}

Ebből pedig v-re rendezve kapjuk, hogy:
\begin{ceqn}
\begin{equation*}
v = \dfrac{c \cdot k}{c \cdot k + m \cdot \gamma} \cdot r 
\end{equation*}
\end{ceqn}
A számlálóban és a nevezőben található tagok miatt könnyen megállapítható, hogy:
\begin{ceqn}
\begin{equation*}
v = \dfrac{c \cdot k}{c \cdot k + m \cdot \gamma} \cdot r < r
\end{equation*}
\end{ceqn}
Ezáltal azt is megállapíthatjuk, hogy a jelen esetben noha a P szabályzó garantálja a rendszer stabilitását de a referenciaérték elérése nem valósul meg, ezért a vezérlésen még kell fejleszteni.

\subsection{I szabályzó}
\begin{justify}
Amint azt az előző fejezetben levezettem láthattuk, hogy a P szabályzó - noha stabilan tartja a rendszert és alkalmazása megszünteti a bemeneti jel nagymértékű és hirtelen változásait - mindig alacsonyabb marad mint a referenciaérték.
Ennek a képlete:
\end{justify}

\begin{ceqn}
\begin{equation*}
u(t) = k_{p} \cdot e  +  k_{i}  \cdot \int_{0}^{t} \cdot  e(\tau) \cdot d\tau
\end{equation*}
\end{ceqn}

\begin{justify}
Ezzel pedig amint azt az alábbi - most már PI szabályozóval kiegészített vezérlő - sebesség-idő grafikon is mutatja megoldottuk a  sebességkülönbség gondját, a vezérlő most már úgy működik, ahogy terveztem.
\end{justify}

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{Kepek/2.1_Bev_a_vezerlesbe/PI_regulator.PNG}
\caption{\label{fig:seb_ido_P_szab}A PI szabályzó sebesség/idő görbéje}
\end{figure}



\begin{comment}
Ezen probléma megoldása érdekében megváltoztatom a bemeneti érték képletét az alábbi módon:
\end{justify}

\begin{ceqn}
\begin{equation*}
u = k \cdot (r-v) + \gamma \cdot \dfrac{m}{c} \cdot v
\end{equation*}
\end{ceqn}

\begin{justify}
Amint látható csupán annyin változtattam, hogy az egyenlethez hozzáadtam a $ \gamma \cdot \dfrac{m}{c} \cdot v$ tagot.
Ezáltal az eredeti egyenlet, mely az alábbiak szerint nézett ki:
\end{justify}

\begin{ceqn}
\begin{equation*}
\dot{v} = \dfrac{c}{m} \cdot u - \gamma \cdot v
\end{equation*}
\end{ceqn}

máris megváltozik, és azt az egyenletet kapom amit célként fogalmaztam meg, azaz:

\begin{ceqn}
\begin{equation*}
\dot{v} = 0 = \dfrac{c}{m} \cdot u + \gamma \cdot v - \gamma \cdot v  \Rightarrow v = r
\end{equation*}
\end{ceqn}

Könnyen észrevehető, hogy az új bemeneti képlet segített abban, hogy a légellenállás hatását megszüntesse, ezáltal a valós sebesség most már eléri a referencia sebességet.
\end{comment}



\subsection{D szabályzó}
\begin{justify}
Végezetül kiegészítettem az egyenletet a differenciáló taggal mely amellett, hogy fokozza a folyamat stabilitását, egyúttal csökkenti az integráló tag túllendülését is. Mivel ugyanakkor a jel vagy jelek differenciálása erősíti a zajt kerülni kell a túl magas erősítés instabillá teheti a vezérlést.
\end{justify}

\subsection{PID szabályzó}
A differenciáló tag kiegészítésével most már teljessé vált a PID szabályzóm:

\begin{ceqn}
\begin{equation*}
u(t) = k_{P} \cdot e  +  k_{I}  \cdot \int_{0}^{t} \cdot  e(\tau) \cdot d\tau  +  k_{D} \cdot \dfrac{de(t)}{dt}
\end{equation*}
\end{ceqn}

\begin{justify}
A PID szabályzó három (arányos, integráló és deriváló) tagja immár megfelelő módon sza-bályozzák a robot sebességét. 

\end{justify}

\clearpage
\section{A robot hajtása}
%itt majd irok a differenciál meghajtásrol, a szükséges adatokról: kerék átmérő stb
\begin{justify}
Ahhoz, hogy megtervezhessük egy robot vezérlését tudnunk kell, hogy az adott robot hogyan "viselkedik". Mindenekelőtt ismernünk kell a robot meghajtását. Alapvetően ez az egyik legfontosabb paraméter, mely nagyban meghatározza a robot haladási és kanyarodási tulajdonságait. A kerekes mobil robotok esetében több típusú meghajtás és kerékelrendezés is létezik.




\end{justify}


\subsection{A differenciális meghajtású robot}
\begin{justify}
Ahhoz, hogy vezérelni tudjunk egy differenciális meghajtású robotot, rendelkeznünk kell pár alapvető fizikai tulajdonságával. 
Mindenképp ismernünk kell a robot hajtókerekeinek az átmérőjét ($R$)és a robot nyomtávolságát ($L$) is.
\end{justify}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
\includegraphics[width=0.25\textwidth]{Kepek/3.1_Dif_robot/robot_sajat.png}
\caption{\label{fig:diff hajtasu robot}Differenciális meghajtású robot.}
\end{wrapfigure}



Ahhoz, hogy a vezérlés irányítani tudja a robotot a bemeneti jelet - mely jelenleg a sebesség - valahogy össze kell kötnünk a robot pozíciójával és haladási irányával. Ebben pedig a differenciális meghajtású robot kinematikája segít:

\begin{ceqn}
\begin{equation*}
\begin{gathered}
\dot{x} = \dfrac{R}{2} \cdot (v_{R} + v_{L}) \cdot \cos(\phi) \\
\dot{y} = \dfrac{R}{2} \cdot (v_{R} + v_{L}) \cdot \sin(\phi) \\
\dot{\phi}= \dfrac{R}{L} \cdot (v_{R} - v_{L})
\end{gathered}
\end{equation*}
\end{ceqn}

\begin{justify}
Ezen egyenletek segítségével kerekek sebességéből ($v_{R}$,$v_{L}$) ki tudom számolni a robot helyzet- ($\dot{x}$, $\dot{y}$) és irányváltoztatását ($\dot{\phi}$).
Fontos itt megjegyezni, hogy a kerekek sebességét nehézkes lenne megadni, ezért mindenképp egy általánosabb, könnyebben értelmezhető paramétert kell választanom:

\begin{ceqn}
\begin{equation*}
\begin{gathered}
\dot{x} = v \cdot \cos(\phi) \\
\dot{y} = v \cdot \sin(\phi) \\
\dot{\phi}= \omega
\end{gathered}
\end{equation*}
\end{ceqn}

A kanyarodást ugyanúgy mint a differenciális meghajtású robotok esetében $\dot{\phi}$ görög betűvel jelölöm. Az egyenlet jobb oldalán pedig a robot sebességét $v$ illetve szögsebességét - mely megegyezik az irányváltással azaz a szögsebességgel - $\omega$ jelöli. 
A két egyenletet behelyettesítve egymással jutok el végül ahhoz az egyenlethez mely segít a kerekek sebességének a pontos kiszámolásában:

\begin{ceqn}
\begin{equation*}
\begin{gathered}
v_{R} = \dfrac{2 \cdot v + \omega \cdot L}{2R} \\
v_{L} = \dfrac{2 \cdot v - \omega \cdot L}{2R}
\end{gathered}
\end{equation*}
\end{ceqn}

Ez utóbbi két egyenlet így már lehetővé teszi, hogy általánosabb, könnyebben értelmezhető paraméterekből azaz a $v$-vel jelölt sebességből és $\omega$-val jelölt szögsebességből ki tudjam számolni a két kerék sebességét.

\end{justify}


\clearpage
\section{A mobil robotok érzékelői}
\begin{justify}
A mobil robotok navigációjához nélkülözhetetlenek az érzékelők vagy más szóval a szenzorok amelyeket a robotot a saját helyzetéről és  illetve a környezetéről tájékoztatják. Ezáltal az érzékelőket két nagy csoportba sorolhatjuk:
\begin{itemize}
\item belső érzékelők: ezen csoport tartalmazza azon érzékelőket mely a robot állapotáról adnak információkat, azaz sebesség, gyorsulás, orientáció
\item külső érzékelők: ebben a csoportba tartoznak azok a szenzorok melyek a robot pozíció-járól, környezetéről azaz információt adnak a külvilágról, esetleges akadályokról
\end{itemize}
\end{justify}
\begin{justify}
A szenzorokat továbbá megkülönböztethetjük még aszerint, hogy a aktívak vagy passzívak. Az aktív szenzorok előnyei, hogy jellemzően több adatot szolgáltatnak mint a passzív szenzorok, ugyanakkor a hátrányuk az, hogy magasabb a fogyasztásuk és több szenzor együttes alkalmazása esetén interferencia léphet fel.
\end{justify}


\subsection{Belső érzékelők}

\begin{justify}
Mint azt már az előző bekezdésben említettem a belső érzékelők jellemzően a robot saját állapotáról adnak információt. A robot navigáláshoz létszükséges információk például a robot haladási sebessége és iránya. 
      Az általam épített robotnál az egyik leggyakrabban használt sebességérzékelőt, az odo-métert alkalmaztam. Ennek a működési elvéről bővebben a következő bekezdésben írok.


\end{justify}


\subsubsection{Az optikai inkrementális kódadó}
\begin{justify}
A mobil robot kerekeinek a forgásának a meghatározására az egyik leggyakrabban alkalmazott megoldás az optikai inkrementális kódadó vagy másik nevén optométer. A vevő érzékeli ezeket a jeleket és elektromos jelekké alakítja.
\end{justify}

\begin{figure}[h]
\centering
\includegraphics[width=0.7\textwidth]{Kepek/4.1.1_Optometer/odometer1.png}
\caption{\label{fig:seb_ido_P_szab}A forgójeladó elvi működése.}
\end{figure}

\begin{justify}
A 7. ábrán látható forgójeladó esetében a fényforrást egy LED biztosítja és a tárcsa ellentétes oldalán pedig egy fototranzisztor érzékeli a tárcsa rovátkáin, résein átjutó fényt.  
\end{justify}


\begin{wrapfigure}{l}{0.4\textwidth}
\centering
\includegraphics[width=0.35\textwidth]{Kepek/4.1.1_Optometer/Absolute_optometer.jpg}
\caption{\label{fig:optometer}Egy abszolút forgójeladó tárcsája.}
\end{wrapfigure}



Sokszor nagyon fontos hogy pontosan ismerjük a gép vagy kerék pontos pozícióját akkor is ha például a robotot kikapcsoltuk és újraindítjuk.  Ennek a képlete:

\begin{ceqn}
\begin{equation*}
D_{c} = \dfrac{D_{r} + D_{l}}{2}
\end{equation*}
\end{ceqn}

A robot helyzetét meghatározó egyenletrendszerbe behelyettesítve kapom meg az új egyenleteket melyek már a forgójeladó értékeik alapján számítja ki a robot új pozícióját:


%\begin{cases} 3x + 5y + z \\ 7x – 2y + 4z \\ -6x + 3y + 2z 
%\end{cases} 
\begin{equation*}
\begin{cases} 
    x^\prime = x + D_{c} \cdot \cos(\phi) \\
    y^\prime = y + D_{c} \cdot \sin(\phi) \\
   \phi^\prime = \phi + \dfrac{D_{r} + D_{l}}{L}
\end{cases} 
\end{equation*}

A forgójeladóból kapott értékek természetesen nem a megtett távolságról adnak információt, hanem arról, hogy a robot elindítása óta (pontosabban a forgójeladó bekapcsolása óta)  a forgójeladó fototranzisztora hányszor érzékelte a fénynyaláb átvilágítását a tárcsa rovátkáin. Mivel pontosan tudjuk, hogy a tárcsán összesen hány rovátka van, minden adat rendelkezésünkre áll hogy kiszámolhassuk a kerék által megtett távolságot:

\[ D = 2 \cdot \pi \cdot R \cdot \dfrac{\Delta \text{számláló}}{N}\]
\begin{align*}
\text{Ahol:}\quad 
\Delta \text{számláló} &= \text{a forgójeladó által mért számláló értékének a változása}\\
R &= \text{a mobil robot kerekének a sugara}\\
N &= \text{a forgójeladó tárcsáján levő  összes rovátka}
\end{align*}

Fontos megjegyezni azonban hogy a forgójeladó önmagában nem alkalmas a robot pozíciójának  a meghatározásához.
Az általam épített robot esetében egy saját készítésű, egyszerű infravörös jeladóval és érzékelővel működő forgójeladót alkalmaztam, melyről részletesen a gyakorlati megvalósítás fejezetben értekezek.




\subsection{Külső szenzorok}
\begin{justify}
A külső érzékelők feladata, hogy a robot környezetéről adjanak információt. 


\end{justify}

\subsection{Infravörös-fényt érzékelő berendezés}

A robotikában távolságméréshez az egyik leggyakrabban alkalmazott szenzor az infravörös távolságmérő. 

A működési elvük alapján ...



Amint azt már a bevezetésben leírtam, a sim.I.am környezetben leprogramozott \textit{Quickbot} virtuális robot öt infravörös távolságmérővel rendelkezik. Ezekből három a robot elején található és kettő pedig a robot jobb illetve bal oldalán. Amint azt az alábbi ábra is mutatja, robot "orrához" képest  $90^{\circ}$, $45^{\circ}$, $0^{\circ}$, $-45^{\circ}$, $-90^{\circ}$ foknál lettek elhelyezve. 

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{Kepek/Infra_voros/quicbot.jpg}
\caption{\label{fig:seb_ido_P_szab}A Quickbot robot infravörös érzékelői}
\end{figure}



\clearpage
\section{Navigáció}
%ide egy rövid osszefolglaó rész hogy, hogyan miert van szukseg kulonboző viselkedésekre, milyenek vannak es a robot hogyan valtogat ezek között; folyamatábrát is kell alkalmazni
\blindtext
\subsection{Viselkedés típusok}
\blindtext

\subsubsection{Célhoz tartó algoritmus}
\blindtext

\subsubsection{Akadálykerülő algoritmus}
\blindtext

\subsubsection{Falkövető algoritmus}
\blindtext

\clearpage
\section{Gyakorlati megvalósítás}
%ezzel itt most nem tudom mi legyen, kellene csinálni valami saját robotot is, mely egyszerűbb mint a szimulacio, arduino board, kevesebb erzekelo, stb
\blindtext

\subsection{A differenciálhajtású mobil robot felépítése}
\blindtext

\subsection{Az alkalmazott aktuátor}
\blindtext

\subsection{Az alkalmazott mikrokontroller}
\blindtext

\subsection{Az alkalmazott szenzorok}
\blindtext
\subsubsection{Ultrahangos távolságmérő}
\blindtext

\subsection{Az alkalmazott algoritmus}
\blindtext


\clearpage
\section{Gyakorlati megvalósítás}
%ezzel itt most nem tudom mi legyen, kellene csinálni valami saját robotot is, mely egyszerűbb mint a szimulacio, arduino board, kevesebb erzekelo, stb
\blindtext



\clearpage
\section{Összehasonlítás, kifejtés, vagy valami hasonló}
\blindtext





\clearpage
\section*{Egyéb}
\blindtext

\clearpage
\section*{Referenciák}
\subsection*{Mindenképp betenni}
\url{https://hu.wikipedia.org/wiki/PID_szab%C3%A1lyoz%C3%B3} \\

- ide még mindenképp jönnek a tanár slidejai

\subsection*{Esetleges, egyáltalán nem biztos}
\url{http://hadmernok.hu/kulonszamok/robothadviseles7/kucsera_rw7.html}

\todo{A nem magyar idézetjeleket magyarosítani}

\clearpage
\listoftodos





\end{document}

My initial questions:

  1. Why is not the text justified by default, what is causing that is not justified and how can I get it to be justified?
  2. Wrapped text around images: where the text is wrapped around an image the text next to the image is not justified. How can it be fixed?
  3. How can I get rid of the numbering in the first page?
  4. How can I set the document to start the numbering from the 5th (or n-th) page?
  5. In case of the Figure labels the text order is wrong. Now it is: "Abra 1." (which means Figure 1). However I would need "1. ábra", so I would need the number of the image to be the first part and then the word "ábra" next to it.

Thank you very much for your help in advance!

  • 1
    I won't be responding to everything for reasons including travel plans, but as for question 1, see the line \usepackage[document]{ragged2e} %justification left/right in your preamble. Then, refer to the ragged2e listing on CTAN and check its documentation for what \usepackage[document]{ragged2e} will do to your document. – Mike Renfro Nov 25 '17 at 15:05
  • Thank you for your help. I read the document, but honestly, I did not get what I need to do. :( Thank you again. – hunsnowboarder Nov 25 '17 at 15:15
  • 1
    p.6, "document This options sets the complete document ragged-right by executing a \RaggedRight at \begin{document} and the raggedrightboxes and the footnotes options." If this is not what you want to happen, then you should remove at least the document option, or possible the entire \usepacakge line for ragged2e. – Mike Renfro Nov 25 '17 at 15:17
  • For you other questions: warpfig is a mess and requires a lot of experiments. Save that for when the text is final or omit completely. It's not like you are on a page budget. – Oleg Lobachev Nov 25 '17 at 15:19
  • As Mike suggested use \usepackage{ragged2e}. Alternatively, you can use instead of that, the following: \usepackage[hungarian]{babel}, \usepackage[utf8]{inputenc}, and \usepackage{t1enc}. – Ilbant Nov 25 '17 at 15:20
2

Well, your code has several problems. Some of them give you a wrong output, some of them can be a problem later.

For example:

  • Package hyperref should in your case be called as last package! It could become a problem if you have not an eye on the order of calling packages ... Check the documentation of your used packages for hints for the order of calling ...
  • Why do you load packages blindtext and mwe in your code? For a real document they usually are not needed ...
  • For a thesis it should be better to use class report ...
  • For hungarian documents you should add

    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc} % <============================================
    \usepackage[hungarian]{babel}
    

    Then you get for example a better hyphenation ...

  • For a MWE use \usepackage[demo]{graphicx}. Then one get no error message about missing image files ...

  • I added \pagenumbering{roman} to get the title page, TOC etc. on pages numbered with roman numbers ...

  • I added \pagenumbering{arabic} to get the thesis numbered with arabic numbers ...

  • Write \caption{Az Amazon által alkalmazott Kiva robot.}\label{fig:kiva rob instead keeping the label inside the caption.

  • I suggest not to use wrapfig. Better use usual environment figure. Usually wrapfigure causes problems with the justifing of text surounding the image ... Therefore change the code

    \begin{wrapfigure}{r}{0.4\textwidth}
    \centering
    \includegraphics[width=0.25\textwidth]{kiva_robot.png}
    \caption{Az Amazon által alkalmazott Kiva robot.}\label{fig:kiva robot} % <==========================
    \end{wrapfigure}
    

    to

    \begin{figure}[!hb]
    \centering
    \includegraphics[width=0.25\textwidth]{kiva_robot.png}
    \caption{Az Amazon által alkalmazott Kiva robot.}\label{fig:kiva robot} % <==========================
    \end{figure}
    

    I used [!hb] only to get the image at nearly the same position you had it with wrapfigure.

  • I commented all \begin{justify} and \end{justify} ...

  • xcolor supersede color, so color should be omitted.

  • mathtools calls amsmath, so you can omit the call of amsmath.

  • Do you realy use all called packages in your preamble and do you understood what they are doing? If not, please do not use a package you did not read the documentation to be sure what it is doing ...

Please see the changes I made in your code (See markings <======== in the MWE):

\documentclass[12pt]{article} % report

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % <============================================
\usepackage{mathptmx} % ez a times new roman

\usepackage{fancyhdr} %ez az oldalszamozast csinalja

\usepackage[hungarian]{babel}

\usepackage[demo]{graphicx} % <=========================================

\usepackage{blindtext} % kamuszoveget ad
%\usepackage{mwe} %kepek egymas mellett

\usepackage{geometry} % ez a margin beallitasokat


\usepackage{etoolbox}
\usepackage{sectsty}
%\usepackage{ragged2e} %justification left/right
\usepackage{titlesec}
\usepackage{wrapfig}

\usepackage{multicol}

\usepackage{mathtools} % loads amsmath <================================
\usepackage[ceqn]{nccmath}
%\usepackage[fleqn]{nccmath}
\usepackage{amssymb}

\usepackage{soul} %sorkiemelő
\usepackage{xcolor} %sorkiemelő
\usepackage[disable]{todonotes} %todo buborekok 
\usepackage{verbatim} %a kikommenteleshez
\usepackage{epigraph} %idezet az elso oldalon

\usepackage[unicode]{hyperref} % ez csinal linket a contentsbol <================

\pagestyle{fancy}
\fancyfoot{}
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[C]{\thepage}
\setlength{\headheight}{15pt} % <=======================================

\allsectionsfont{\centering}
\subsectionfont{\normalsize\bfseries}
\renewcommand{\baselinestretch}{1.5}

\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\@makechapterhead}{\huge}{\large}{\center}{}% for \chapter
\patchcmd{\@makechapterhead}{\Huge}{\large}{\center}{}% for \chapter
\patchcmd{\@makeschapterhead}{\Huge}{\large}{\center}{}% for \chapter*
\makeatother

\allsectionsfont{\centering}
\subsectionfont{\normalsize\bfseries}
\subsubsectionfont{\normalsize\bfseries}
\renewcommand{\baselinestretch}{1.5}

\renewcommand{\figurename}{Ábra}

\geometry{a4paper, left=35mm, right=20mm, top=40mm, bottom=40mm}

\title{Diplomamunka}
\date{}
\author{Zsarnowszky Loránt}


\begin{document}
\pagenumbering{roman} % <===============================================

\maketitle
\thispagestyle{empty} % <===============================================
\newpage

\tableofcontents

\clearpage
%\justify
\pagenumbering{arabic} % <==============================================
\section{Bevezetés}
%ez itt egy komment

%\epigraph{Bip bip bee bee bip}{\textit{R2-D2}}

%\begin{justify}
Alapvetően három különböző típusú robotot különböztetünk meg: a vezérelt 
robot, az automatizált robot és az autonóm azaz önálló robot.

A vezérelt robotok esetében mindenképp szükség van emberi üzemeltetésre. 
Ezek jellemzően olyan robotok melyek teljes mértékben függnek az emberi 
irányítástól, önállóan semmilyen feladatot, tevékenységet nem végeznek. 
Vezérelt robotokat gyakran alkalmaznak orvosi műtétek során illetve 
katonai akciók, bombák hatástalanítása alkalmából.

%\end{justify}

%\begin{wrapfigure}{r}{0.4\textwidth}
%\centering
%\includegraphics[width=0.25\textwidth]{kiva_robot.png}
%\caption{Az Amazon által alkalmazott Kiva robot.}\label{fig:kiva robot} % <==========================
%\end{wrapfigure}
\begin{figure}[!hb]
\centering
\includegraphics[width=0.25\textwidth]{kiva_robot.png}
\caption{Az Amazon által alkalmazott Kiva robot.}\label{fig:kiva robot} % <==========================
\end{figure}

\todo{Megoldani az ábra feliratot..szám az ábra elé}
Az autonóm robotok lehetőséget adnak arra, hogy óriási mértében növeljük a termelés minőségét és hatékonyságát. Csak, hogy megemlítsek egy pár ilyen területet a teljesség igénye nélkül: csomagszállítás, logisztika, takarítás, mezőgazdaság, földművelés.

\subsection{A szakdolgozat tartalmi összefoglalása}
%\begin{justify}
A szakdolgozatom első részében a mobil robot megvalósításának elméleti hátteréről értékezek.

\subsection{A virtuális környezet}

Az elméleti kidolgozás során az amerikai Georgia Institute of Technology (Georgia Tech) egyetem által fejlesztett sim.I.am mobil robot szimulátort fogom használni.     

\subsubsection{A sim.I.am könyvtérszerkezet bemutatása}
A sim.I.am 


\subsection{A gyakorlati kivitelezés}
A gyakorlati kivitelezés részben beszámolok az általam épített robot tapasztalatairól.A robot programkódját \todo{itt majd megadni hogy miben írtam meg a kódot } Python/Matlab/C nyelven írtam. Az általam írt programot részletesen ismertetem a gyakorlati kivitelezés részben.


\subsection{Célkitűzés}
A szakdolgozat célja, hogy bemutassa egy autonóm mobil robot irányítástechnikájának az elméleti hátterét, figyelembe véve az inputokat, outputokat és a visszacsatolást.


\subsection{A szakdolgozat fő fejezeteinek tartalma}
A szakdolgozat első fejezete a bevezető rész. Ez a fejezet tartalmaz egy rövid összefoglalót a mobil robotok típusairól, egy kis ismertetőt a szakdolgozat elméleti kidolgozásához alkalmazott szimulátorról illetve gyakorlati megvalósításról és a szakdolgozat célkitűzését.
%\end{justify}

\clearpage
\section{A PID típusú szabályzó}
%itt irok a PID vezérlésről

\subsection{Egy egyszerű vezérlés}
%\begin{justify}
A vezérlés feladata, hogy az általunk irányított járművet, vagy adott esetben robotot, egy - általunk megadott - sebességen tartson. Azaz indulásnál felgyorsítson egészen a megadott sebességig majd ezt a sebességet tartsa egészen addig amíg eltérő jelzést, azaz újabb referenciaértéket nem kap. 


Ezen információk rendelkezésre állása segít abban, hogy levezessem az alábbi egyenletet:

\begin{ceqn}
\begin{equation*}
\dot{v} = a \Rightarrow m \cdot \dot{v} = c \cdot u \Rightarrow \dot{v} = \frac{c}{m} \cdot u
\end{equation*}
\end{ceqn}

A célsebesség értékét $r$ jelöli és az eltérés mértékét - az angol error szó után - $e$ betűvel jelölöm. Ebből adódik, hogy: $e = r - v$.
A vezérlés gyakorlati megtervezése előtt, fontos rögzíteni azokat a 
tulajdonságot melyekkel rendelkeznie kell:
\begin{itemize}
\item kis eltérési érték esetén ($e$) a korrekciónak ($u$) is kicsinek kell lennie
\item a célérték ($u$) nem "ugrálhat" nagy mértékben (azaz a hirtelen gyorsulás/lassítás nem haladhat meg egy megadott értéket)
\item a céltérték nem lehet az átviteli koefficiens ($c$) illetve a gépjármű vagy robot tömegének ($m$) a függvénye
\end{itemize}
Az utolsó pont valójában azt jelenti, hogy a robot vezérlője, a különböző paraméterek (mint például tömeg vagy átviteli veszteségek) ismerete nélkül is képes kell legyen egy megadott sebességen tartani a robotot.

    Tehát ha az eltérés pozitív akkor a maximális bemeneti értéket határozok meg, ha az eltérés negatív (azaz a valós sebesség nagyobb mint a referencia sebesség) akkor minimális (negatív) bemeneti értékkel számolok, nulla eltérés esetén pedig a bemeneti érték is nulla.
%\end{justify}

\begin{equation}
    u=
    \begin{cases}
      u_{max}, & \text{ha}\ e > 0 \\
      -u_{max}, & \text{ha}\ e < 0 \\
      0, & \text{ha}\ e = 0
    \end{cases}
  \end{equation}

%\begin{justify}
A két grafikon megmutatja, hogy pontosan mi a gond a fenti elképzeléssel.
%\end{justify}

\begin{figure}
    \centering
    \begin{minipage}{0.45\textwidth}
        \centering
        \includegraphics[width=0.99\textwidth]{Bev_PID_vez_1.PNG} % first figure itself
        \caption{a robot sebességgörbéje}\label{fig:sebesseg_ido_norm_vezerl} % <==============
    \end{minipage}\hfill
    \begin{minipage}{0.45\textwidth}
        \centering
        \includegraphics[width=0.99\textwidth]{Bev_PID_vez_2.PNG} % second figure itself
        \caption{a bemeneti jel értékei}\label{fig:bem_jel_norm_vezerl} % <==============
    \end{minipage}
\end{figure}

\todo{Betenni a saját grafikonokat}

%\begin{justify}
A bal oldali grafikon mutatja a robot sebességét az eltelt idő függvényében. Ezen az látható hogy a robot egészen addig gyorsul amíg eléri a referencia értéket, majd ezt tartja. A problémát a bal jobb oldali ábra jelenti. Ez az ábra tartalmazza a bemeneti jel értékeit az eltelt idő függvényében. Ez a grafikon azt jelzi hogy a bemeneti érték folyamatosan 100\% és -100\% között ugrál. 
Összefoglalásképp megállapítható, hogy az első próbálkozás a fent említett okok miatt nem járt sikerrel így el kellett vetnem.
%\end{justify}


\subsection{P szabályzó}
%\begin{justify}
Amint az láthattuk az első robotvezérlő modellem nem vált be. A probléma fő oka az volt, hogy az \textit{error}, azaz a referencia sebesség és valós sebesség eltérésének bármilyen értékére a bemeneti jel mely vezérli a robot sebességet azonnal maximális gyorsulással vagy maximális tolatással reagál.
%\end{justify}  

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{Kepek/2.1_Bev_a_vezerlesbe/P_regulator.PNG}
\caption{A P szabályzó sebesség/idő görbéje}\label{fig:seb_ido_P_szab} % <==============
\end{figure}

\todo{betenni a saját P szabályzó grafikont}
%\begin{justify}
Ugyanakkor az ábrán azt is hamar észre lehet venni, hogy a valós sebesség nem éri el a referenciajelet. Ebben az esetben a modell matematikai leírása az alábbiak szerint alakul:
%\end{justify}
\begin{ceqn}
\begin{equation*}
\dot{v} = \dfrac{c}{m} \cdot u - \gamma \cdot v
\end{equation*}
\end{ceqn}
%\begin{justify}
A $\gamma$ ebben az esetben a légellenállási tényezőt jelöli és a sebesség függvénye. Ha jobban megvizsgáljuk ezt a képletet akkor hamar megállapíthatjuk hogy állandó sebesség esetén - azaz ha a rendszer nem gyorsul vagy lassul - a jármű soha nem tudja elérni a referenciaértéket ($r$).
%\end{justify}
Tehát:
\begin{ceqn}
\begin{equation*}
\dot{v} = 0 = \dfrac{c}{m} \cdot u - \gamma \cdot v
\end{equation*}
\end{ceqn}
Mivel tudjuk hogy a P szabályozó esetében $u = k(r-v)$, ezt behelyettesítve az alábbi egyenletet kapjuk:

\begin{ceqn}
\begin{equation*}
\dot{v} = 0 = \dfrac{c}{m} \cdot u - \gamma \cdot v = \dfrac{c}{m} \cdot k \cdot (r-v) - \gamma \cdot v \Rightarrow (c \cdot k + m \cdot \gamma) \cdot v = c \cdot k \cdot r
\end{equation*}
\end{ceqn}

Ebből pedig v-re rendezve kapjuk, hogy:
\begin{ceqn}
\begin{equation*}
v = \dfrac{c \cdot k}{c \cdot k + m \cdot \gamma} \cdot r 
\end{equation*}
\end{ceqn}
A számlálóban és a nevezőben található tagok miatt könnyen megállapítható, hogy:
\begin{ceqn}
\begin{equation*}
v = \dfrac{c \cdot k}{c \cdot k + m \cdot \gamma} \cdot r < r
\end{equation*}
\end{ceqn}
Ezáltal azt is megállapíthatjuk, hogy a jelen esetben noha a P szabályzó garantálja a rendszer stabilitását de a referenciaérték elérése nem valósul meg, ezért a vezérlésen még kell fejleszteni.

\subsection{I szabályzó}
%\begin{justify}
Amint azt az előző fejezetben levezettem láthattuk, hogy a P szabályzó - noha stabilan tartja a rendszert és alkalmazása megszünteti a bemeneti jel nagymértékű és hirtelen változásait - mindig alacsonyabb marad mint a referenciaérték.
Ennek a képlete:
%\end{justify}

\begin{ceqn}
\begin{equation*}
u(t) = k_{p} \cdot e  +  k_{i}  \cdot \int_{0}^{t} \cdot  e(\tau) \cdot d\tau
\end{equation*}
\end{ceqn}

%\begin{justify}
Ezzel pedig amint azt az alábbi - most már PI szabályozóval kiegészített vezérlő - sebesség-idő grafikon is mutatja megoldottuk a  sebességkülönbség gondját, a vezérlő most már úgy működik, ahogy terveztem.
%\end{justify}

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{Kepek/2.1_Bev_a_vezerlesbe/PI_regulator.PNG}
\caption{A PI szabályzó sebesség/idő görbéje}\label{fig:seb_ido_B}
\end{figure}


\begin{comment}
Ezen probléma megoldása érdekében megváltoztatom a bemeneti érték képletét az alábbi módon:
%\end{justify}

\begin{ceqn}
\begin{equation*}
u = k \cdot (r-v) + \gamma \cdot \dfrac{m}{c} \cdot v
\end{equation*}
\end{ceqn}

%\begin{justify}
Amint látható csupán annyin változtattam, hogy az egyenlethez hozzáadtam a $ \gamma \cdot \dfrac{m}{c} \cdot v$ tagot.
Ezáltal az eredeti egyenlet, mely az alábbiak szerint nézett ki:
%\end{justify}

\begin{ceqn}
\begin{equation*}
\dot{v} = \dfrac{c}{m} \cdot u - \gamma \cdot v
\end{equation*}
\end{ceqn}

máris megváltozik, és azt az egyenletet kapom amit célként fogalmaztam meg, azaz:

\begin{ceqn}
\begin{equation*}
\dot{v} = 0 = \dfrac{c}{m} \cdot u + \gamma \cdot v - \gamma \cdot v  \Rightarrow v = r
\end{equation*}
\end{ceqn}

Könnyen észrevehető, hogy az új bemeneti képlet segített abban, hogy a légellenállás hatását megszüntesse, ezáltal a valós sebesség most már eléri a referencia sebességet.
\end{comment}


\subsection{D szabályzó}
%\begin{justify}
Végezetül kiegészítettem az egyenletet a differenciáló taggal mely amellett, hogy fokozza a folyamat stabilitását, egyúttal csökkenti az integráló tag túllendülését is. Mivel ugyanakkor a jel vagy jelek differenciálása erősíti a zajt kerülni kell a túl magas erősítés instabillá teheti a vezérlést.
%\end{justify}

\subsection{PID szabályzó}
A differenciáló tag kiegészítésével most már teljessé vált a PID szabályzóm:

\begin{ceqn}
\begin{equation*}
u(t) = k_{P} \cdot e  +  k_{I}  \cdot \int_{0}^{t} \cdot  e(\tau) \cdot d\tau  +  k_{D} \cdot \dfrac{de(t)}{dt}
\end{equation*}
\end{ceqn}

%\begin{justify}
A PID szabályzó három (arányos, integráló és deriváló) tagja immár megfelelő módon sza-bályozzák a robot sebességét. 
%\end{justify}

\clearpage
\section{A robot hajtása}
%itt majd irok a differenciál meghajtásrol, a szükséges adatokról: kerék átmérő stb
%\begin{justify}
Ahhoz, hogy megtervezhessük egy robot vezérlését tudnunk kell, hogy az adott robot hogyan "viselkedik". Mindenekelőtt ismernünk kell a robot meghajtását. Alapvetően ez az egyik legfontosabb paraméter, mely nagyban meghatározza a robot haladási és kanyarodási tulajdonságait. A kerekes mobil robotok esetében több típusú meghajtás és kerékelrendezés is létezik.
%\end{justify}


\subsection{A differenciális meghajtású robot}
%\begin{justify}
Ahhoz, hogy vezérelni tudjunk egy differenciális meghajtású robotot, rendelkeznünk kell pár alapvető fizikai tulajdonságával. 
Mindenképp ismernünk kell a robot hajtókerekeinek az átmérőjét ($R$)és a robot nyomtávolságát ($L$) is.
%\end{justify}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
\includegraphics[width=0.25\textwidth]{Kepek/3.1_Dif_robot/robot_sajat.png}
\caption{\label{fig:diff hajtasu robot}Differenciális meghajtású robot.}
\end{wrapfigure}


Ahhoz, hogy a vezérlés irányítani tudja a robotot a bemeneti jelet - mely jelenleg a sebesség - valahogy össze kell kötnünk a robot pozíciójával és haladási irányával. Ebben pedig a differenciális meghajtású robot kinematikája segít:

\begin{ceqn}
\begin{equation*}
\begin{gathered}
\dot{x} = \dfrac{R}{2} \cdot (v_{R} + v_{L}) \cdot \cos(\phi) \\
\dot{y} = \dfrac{R}{2} \cdot (v_{R} + v_{L}) \cdot \sin(\phi) \\
\dot{\phi}= \dfrac{R}{L} \cdot (v_{R} - v_{L})
\end{gathered}
\end{equation*}
\end{ceqn}

%\begin{justify}
Ezen egyenletek segítségével kerekek sebességéből ($v_{R}$,$v_{L}$) ki tudom számolni a robot helyzet- ($\dot{x}$, $\dot{y}$) és irányváltoztatását ($\dot{\phi}$).
Fontos itt megjegyezni, hogy a kerekek sebességét nehézkes lenne megadni, ezért mindenképp egy általánosabb, könnyebben értelmezhető paramétert kell választanom:

\begin{ceqn}
\begin{equation*}
\begin{gathered}
\dot{x} = v \cdot \cos(\phi) \\
\dot{y} = v \cdot \sin(\phi) \\
\dot{\phi}= \omega
\end{gathered}
\end{equation*}
\end{ceqn}

A kanyarodást ugyanúgy mint a differenciális meghajtású robotok esetében $\dot{\phi}$ görög betűvel jelölöm. Az egyenlet jobb oldalán pedig a robot sebességét $v$ illetve szögsebességét - mely megegyezik az irányváltással azaz a szögsebességgel - $\omega$ jelöli. 
A két egyenletet behelyettesítve egymással jutok el végül ahhoz az egyenlethez mely segít a kerekek sebességének a pontos kiszámolásában:

\begin{ceqn}
\begin{equation*}
\begin{gathered}
v_{R} = \dfrac{2 \cdot v + \omega \cdot L}{2R} \\
v_{L} = \dfrac{2 \cdot v - \omega \cdot L}{2R}
\end{gathered}
\end{equation*}
\end{ceqn}

Ez utóbbi két egyenlet így már lehetővé teszi, hogy általánosabb, könnyebben értelmezhető paraméterekből azaz a $v$-vel jelölt sebességből és $\omega$-val jelölt szögsebességből ki tudjam számolni a két kerék sebességét.
%\end{justify}

\clearpage
\section{A mobil robotok érzékelői}
%\begin{justify}
A mobil robotok navigációjához nélkülözhetetlenek az érzékelők vagy más szóval a szenzorok amelyeket a robotot a saját helyzetéről és  illetve a környezetéről tájékoztatják. Ezáltal az érzékelőket két nagy csoportba sorolhatjuk:
\begin{itemize}
\item belső érzékelők: ezen csoport tartalmazza azon érzékelőket mely a robot állapotáról adnak információkat, azaz sebesség, gyorsulás, orientáció
\item külső érzékelők: ebben a csoportba tartoznak azok a szenzorok melyek a robot pozíció-járól, környezetéről azaz információt adnak a külvilágról, esetleges akadályokról
\end{itemize}
%\end{justify}
%\begin{justify}
A szenzorokat továbbá megkülönböztethetjük még aszerint, hogy a aktívak vagy passzívak. Az aktív szenzorok előnyei, hogy jellemzően több adatot szolgáltatnak mint a passzív szenzorok, ugyanakkor a hátrányuk az, hogy magasabb a fogyasztásuk és több szenzor együttes alkalmazása esetén interferencia léphet fel.
%\end{justify}


\subsection{Belső érzékelők}

%\begin{justify}
Mint azt már az előző bekezdésben említettem a belső érzékelők jellemzően a robot saját állapotáról adnak információt. A robot navigáláshoz létszükséges információk például a robot haladási sebessége és iránya. 
      Az általam épített robotnál az egyik leggyakrabban használt sebességérzékelőt, az odo-métert alkalmaztam. Ennek a működési elvéről bővebben a következő bekezdésben írok.
%\end{justify}


\subsubsection{Az optikai inkrementális kódadó}
%\begin{justify}
A mobil robot kerekeinek a forgásának a meghatározására az egyik leggyakrabban alkalmazott megoldás az optikai inkrementális kódadó vagy másik nevén optométer. A vevő érzékeli ezeket a jeleket és elektromos jelekké alakítja.
%\end{justify}

\begin{figure}[h]
\centering
\includegraphics[width=0.7\textwidth]{Kepek/4.1.1_Optometer/odometer1.png}
\caption{A forgójeladó elvi működése.}\label{fig:seb_ido_C}
\end{figure}

%\begin{justify}
A 7. ábrán látható forgójeladó esetében a fényforrást egy LED biztosítja és a tárcsa ellentétes oldalán pedig egy fototranzisztor érzékeli a tárcsa rovátkáin, résein átjutó fényt.  
%\end{justify}

\begin{wrapfigure}{l}{0.4\textwidth}
\centering
\includegraphics[width=0.35\textwidth]{Kepek/4.1.1_Optometer/Absolute_optometer.jpg}
\caption{Egy abszolút forgójeladó tárcsája.}\label{fig:optometer}
\end{wrapfigure}

Sokszor nagyon fontos hogy pontosan ismerjük a gép vagy kerék pontos pozícióját akkor is ha például a robotot kikapcsoltuk és újraindítjuk.  Ennek a képlete:

\begin{ceqn}
\begin{equation*}
D_{c} = \dfrac{D_{r} + D_{l}}{2}
\end{equation*}
\end{ceqn}

A robot helyzetét meghatározó egyenletrendszerbe behelyettesítve kapom meg az új egyenleteket melyek már a forgójeladó értékeik alapján számítja ki a robot új pozícióját:


%\begin{cases} 3x + 5y + z \\ 7x – 2y + 4z \\ -6x + 3y + 2z 
%\end{cases} 
\begin{equation*}
\begin{cases} 
    x^\prime = x + D_{c} \cdot \cos(\phi) \\
    y^\prime = y + D_{c} \cdot \sin(\phi) \\
   \phi^\prime = \phi + \dfrac{D_{r} + D_{l}}{L}
\end{cases} 
\end{equation*}

A forgójeladóból kapott értékek természetesen nem a megtett távolságról adnak információt, hanem arról, hogy a robot elindítása óta (pontosabban a forgójeladó bekapcsolása óta)  a forgójeladó fototranzisztora hányszor érzékelte a fénynyaláb átvilágítását a tárcsa rovátkáin. Mivel pontosan tudjuk, hogy a tárcsán összesen hány rovátka van, minden adat rendelkezésünkre áll hogy kiszámolhassuk a kerék által megtett távolságot:

\[ D = 2 \cdot \pi \cdot R \cdot \dfrac{\Delta \text{számláló}}{N}\]
\begin{align*}
\text{Ahol:}\quad 
\Delta \text{számláló} &= \text{a forgójeladó által mért számláló értékének a változása}\\
R &= \text{a mobil robot kerekének a sugara}\\
N &= \text{a forgójeladó tárcsáján levő  összes rovátka}
\end{align*}

Fontos megjegyezni azonban hogy a forgójeladó önmagában nem alkalmas a robot pozíciójának  a meghatározásához.
Az általam épített robot esetében egy saját készítésű, egyszerű infravörös jeladóval és érzékelővel működő forgójeladót alkalmaztam, melyről részletesen a gyakorlati megvalósítás fejezetben értekezek.


\subsection{Külső szenzorok}
%\begin{justify}
A külső érzékelők feladata, hogy a robot környezetéről adjanak információt. 
%\end{justify}

\subsection{Infravörös-fényt érzékelő berendezés}

A robotikában távolságméréshez az egyik leggyakrabban alkalmazott szenzor az infravörös távolságmérő. 

A működési elvük alapján ...

Amint azt már a bevezetésben leírtam, a sim.I.am környezetben leprogramozott \textit{Quickbot} virtuális robot öt infravörös távolságmérővel rendelkezik. Ezekből három a robot elején található és kettő pedig a robot jobb illetve bal oldalán. Amint azt az alábbi ábra is mutatja, robot "orrához" képest  $90^{\circ}$, $45^{\circ}$, $0^{\circ}$, $-45^{\circ}$, $-90^{\circ}$ foknál lettek elhelyezve. 

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{Kepek/Infra_voros/quicbot.jpg}
\caption{A Quickbot robot infravörös érzékelői}\label{fig:seb_ido_D}
\end{figure}

\clearpage
\section{Navigáció}
%ide egy rövid osszefolglaó rész hogy, hogyan miert van szukseg kulonboző viselkedésekre, milyenek vannak es a robot hogyan valtogat ezek között; folyamatábrát is kell alkalmazni
\blindtext

\subsection{Viselkedés típusok}
\blindtext

\subsubsection{Célhoz tartó algoritmus}
\blindtext

\subsubsection{Akadálykerülő algoritmus}
\blindtext

\subsubsection{Falkövető algoritmus}
\blindtext

\clearpage
\section{Gyakorlati megvalósítás}
%ezzel itt most nem tudom mi legyen, kellene csinálni valami saját robotot is, mely egyszerűbb mint a szimulacio, arduino board, kevesebb erzekelo, stb
\blindtext

\subsection{A differenciálhajtású mobil robot felépítése}
\blindtext

\subsection{Az alkalmazott aktuátor}
\blindtext

\subsection{Az alkalmazott mikrokontroller}
\blindtext

\subsection{Az alkalmazott szenzorok}
\blindtext
\subsubsection{Ultrahangos távolságmérő}
\blindtext

\subsection{Az alkalmazott algoritmus}
\blindtext

\clearpage
\section{Gyakorlati megvalósítás}
%ezzel itt most nem tudom mi legyen, kellene csinálni valami saját robotot is, mely egyszerűbb mint a szimulacio, arduino board, kevesebb erzekelo, stb
\blindtext

\clearpage
\section{Összehasonlítás, kifejtés, vagy valami hasonló}
\blindtext

\clearpage
\section*{Egyéb}
\blindtext

\clearpage
\section*{Referenciák}
\subsection*{Mindenképp betenni}
\url{https://hu.wikipedia.org/wiki/PID_szab%C3%A1lyoz%C3%B3} \\

- ide még mindenképp jönnek a tanár slidejai

\subsection*{Esetleges, egyáltalán nem biztos}
\url{http://hadmernok.hu/kulonszamok/robothadviseles7/kucsera_rw7.html}

\todo{A nem magyar idézetjeleket magyarosítani}

\clearpage
\listoftodos

\end{document}
  • 1
    xcolor supersede color, so collor should be omitted. similarly is with mathtools which call amsmath ... – Zarko Nov 25 '17 at 17:36
  • 1
    @Zarko I added your coment to the answer ... Thanks! – Mensch Nov 25 '17 at 18:42
  • 2
    @hunsnowboarder Really, just do not use wrapfigure, it is not worth the hard work to get it work. That work should be done only after the complete text is fixed. Instead of wrapping a figure place two smaller images side by side and use \ref{label} to reference them – Mensch Nov 25 '17 at 21:30
  • 1
    @hunsnowboarder if you insist in using wrapfigure, please see my answer to your older question tex.stackexchange.com/questions/402101/… – Mensch Nov 27 '17 at 3:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.