did other stuff
This commit is contained in:
parent
83445c5b7c
commit
00e67ab6cd
1
drawio/demo_table.drawio
Normal file
1
drawio/demo_table.drawio
Normal file
@ -0,0 +1 @@
|
|||||||
|
<mxfile host="Electron" modified="2021-05-21T01:52:44.628Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.2.2 Chrome/78.0.3904.94 Electron/7.1.0 Safari/537.36" etag="-N5YNRM7SfDisl8bOgEB" version="12.2.2" type="device" pages="1"><diagram id="CaFAC2JI3N3W6e__qGgP" name="Page-1">7ZZdb5swFIZ/DZeVAJM0uWzSdJu2VJOYVGl3Lj4BKwYz4xSyX7/jYkLAybppS9eL3UT2e46/nvfkCI8s8+adomW2lgyEF/qs8citF4azSYi/Rti3QnRNWiFVnLVS0Asx/w5W9K264wyqQaKWUmheDsVEFgUkeqBRpWQ9TNtIMTy1pCk4QpxQ4aoPnOmse5bf6++Bp1l3cuDbSE67ZCtUGWWyPpLIyiNLJaVuR3mzBGHYdVzadXdnooeLKSj0rywA9XH69UsVp/G9evi2Tu4/kPjKuvNExc4+2F5W7zsCSu4KBmYT3yOLOuMa4pImJlqj5ahlOhc4C3C4kYW2JgYRzu32oDQ0Z+8dHGhgFYHMQas9ptgFYWQBdhVkp3VvR9Rp2ZEVUecEtSWQHrbuKeHAgvoNaMSBtlJ864DDnbBK4WVotCrb0t3wxoC+CMXJkGLohw7G2QmKs0tBjByIdwof/6YhTuZvDOLEgbjeFVvKqKKPptuBePKWxLuZaxDcPBWZ/NkfXNBHEJ9lxTWXBWqqfeXCcOXYNj+N4jlnzBy0oIKnRhCwOc6/sfIh7xK1P7Lt2u0g5GQDuZBr01d3LZE5T2xqhVm8SBdSa5mjdnXK1pFLL7o6LoPXsHXqD20l/9rX+c99FaDo9tnYoPpv6/kmO7I1nLlN9i/ZitP+++s5dvQRS1Y/AA==</diagram></mxfile>
|
1
drawio/services_plan.drawio
Normal file
1
drawio/services_plan.drawio
Normal file
@ -0,0 +1 @@
|
|||||||
|
<mxfile host="Electron" modified="2021-05-20T23:47:43.476Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.2.2 Chrome/78.0.3904.94 Electron/7.1.0 Safari/537.36" etag="3dZnjUl8q7QrIEI50qSO" version="12.2.2" type="device" pages="2"><diagram id="CBRj71-rHg4CvoN5Dju-" name="Page-1">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</diagram><diagram id="-1RDP5txrfMZXEfJhlDT" name="clean">7Vttc6o4FP41zOx+sBMIoH6s2u7L7O511nvnth9TiJBOJE6IrfbXbyJBhFBtVdC22+lMySGJ8pznOTknpBYczpa/cTSP/2YhppYDwqUFR5bj2NDuyz/Kssosju9khoiTUHcqDBPygrURaOuChDgtdRSMUUHmZWPAkgQHomRDnLPncrcpo+VPnaMIG4ZJgKhp/UlCEWfWngcK+++YRHH+yTbQd2Yo76wNaYxC9rxlgjcWHHLGRHY1Ww4xVeDluIzv4c3wn3Fy70yn8aL7iIdj1Mkmu33PkM0jcJyIg6ce/Fy6o7tHxu6S6x83cNXtDSZ6CHhCdKHx0s8qVjmAnC2SEKtJbAsOnmMi8GSOAnX3WVJG2mIxo/r2lFA6ZJRx2U5YIjsNQpTGm+H64zAXeFnxz56HszeIS6piNsOCr+Q4PQvs6SfRLLVz/z4XPrd9bYu3/O3kA5HmWbSZu8BSXmg43wEtdA0ocSipqZuMi5hFLEH0prAOCrCBbBV9/mJsriF8xEKstM7QQrCyA/CSiLut63s11ZWnW6OlnnndWOWNRD7v3XZja5RqFsPWrWJceK0UKpsBRWlKgsx4Sygt+Vs99wHeltixBQ/wDpB9HVEQj7DY0c/p1tOHY4oEeSp/u5NTwTdUNiFJJB3ugH/Zg4wfDhgyCS2jFPMdAgT7BdiUwFxQEVi3RmBOjcD8xvTl/a+vxvXVfau+eufUV/fz6QvWLWCt6qtvgJqukmCn5vSKf7zICuLrKQvWg/qU4mAJ7KW2v9Nv4Ar2fbfkuk4va76Z+3ryMSOJ2Iqw5QFsOk3l9yxlePmInEN+mUNOt8KNTO56VIUem0c7nDG2mU1+Tcq8kmy8TpnTMKZzPGWg7bRLmV31xsFUaGy53Z9gNL0g2+5xYet9FJN4oNVWh7niQVrDwLwMq0YgD+ykn9EfgArLsm9wWs7BsySOHzcJfDPnji2yzsK5fOugWc65xtI45iziaCaNE8yfiPTAUYnp9s6L5cDp+qfBhHWzwZfD7tQkrHarBaF/Xl1fAeCWtd2XoWafumVrjDmREGB+QZJ/68YKqCdJs5J3fK/EPRf4LUjY3MX5kz1IwzcexDgVHAkpvk+iZgjPrWbbLOoteFv8fpi9n911SdNCdk4iUFOBsMyXXpUHWeBorm7oXSw7wCdgx6ZSBSCvVI8kTMc/jDDFRK9XtScjlbnldTGk2hDpfuvOxyLVkQzqltf8vttuxHHMza2JwPO52lAG6VNgOT6V6A0eZNuP1NUvjyyKSBKpVRQR8WszGQFnQqLKkpJzT58g2GX0e3X5Qbuvf8ydo1ay/TNrSz/13rw8KzjP9UIm/5pbYhmxYDHDa0FPZKKsTm1U/ZfGaK4uQyRQKvvgC8yTK3mPXaODbpsycDxzzXoN16WCaR+ipY3y1uEto9v3TXTrDnE0dobDMWu+P5LODM+Ymrwa8EeSt2vkT0bvpnB2K0A7NUD3WqWxWe39SGSY4ilSY9dvcVMT8fzt7jWfmasBpWSenhFkr3omqQbk2jWzOTqbVdOnQxm6Z0e5pox4PfW74EN1dpXAdVu8dfEY2o1lffCTYOtV6uFLOLBoxuAx5ngWW0NoXdtU/RnAF5k+rvPIJExfak7TSJxEGWKOU/KCHtYdVI6sd3dlb29geSNpUXl2mqXcagCiJFL1TCABVpviAwU/CRC91jeEytYHqXSqLK++r1P3jtugs2C/7Cy3Lsa4dc5qzFdmJP+WdFJJ9S/hEL9SjtY5xGvVH2bMv8VUKsez+vZXk4sMZlf7/bM5aH+kg2SzOIOf7fYU/8kAb/4D</diagram></mxfile>
|
1
drawio/ursim_stuffs.drawio
Normal file
1
drawio/ursim_stuffs.drawio
Normal file
@ -0,0 +1 @@
|
|||||||
|
<mxfile host="Electron" modified="2021-05-20T23:52:55.012Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.2.2 Chrome/78.0.3904.94 Electron/7.1.0 Safari/537.36" etag="g0EnsmLuwZDy8ol6Wr6f" version="12.2.2" type="device" pages="1"><diagram id="JO_Z-KRX5spVpJgGmPaf" name="Page-1">ddG9DoMgEADgp2FH6Y+7tXXp5NCZyFVI0CNIo+3TVwPWEtuJ47uDIwdheTteLDfyigI0SakYCTuRNE12NJuWWZ5ejtnBQ2OVCEUrVOoFAWnQhxLQR4UOUTtlYqyx66B2kXFrcYjL7qjjroY3sIGq5nqrNyWc9Jrt6eolqEYunRMaMi1figP0kgscvogVhOUW0fmoHXPQ8/CWufhz5z/Zz8MsdO7HgSlY75420Q+x4g0=</diagram></mxfile>
|
@ -322,6 +322,11 @@
|
|||||||
title = {For Dummies -- The Introduction to Neural Networks we all need!},
|
title = {For Dummies -- The Introduction to Neural Networks we all need!},
|
||||||
howpublished = {\url{https://medium.com/technologymadeeasy/for-dummies-the-introduction-to-neural-networks-we-all-need-c50f6012d5eb}},
|
howpublished = {\url{https://medium.com/technologymadeeasy/for-dummies-the-introduction-to-neural-networks-we-all-need-c50f6012d5eb}},
|
||||||
note = {Megtekintve: 2020-12-01}
|
note = {Megtekintve: 2020-12-01}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@misc{ur3_specs,
|
||||||
|
title = {UR3 Technical Specifications},
|
||||||
|
howpublished = {\url{https://www.universal-robots.com/media/240736/ur3_en.pdf}},
|
||||||
|
note = {Hozzáférve: 2021-05-21}
|
||||||
|
|
||||||
|
}
|
@ -110,14 +110,6 @@ Az egyes szolgáltatások között mindig csak a legkisebb hasznos adat kerül t
|
|||||||
|
|
||||||
A rendszerbe érkező összes hangminta a beérkezés pontján címkézésre kerül. Később a feldolgozó szalag egyes fázisain ezzel lehet hivatkozni egy konkrét hangmintára. Ezek a címkék biztosítottan egyediek a rendszeren belül.
|
A rendszerbe érkező összes hangminta a beérkezés pontján címkézésre kerül. Később a feldolgozó szalag egyes fázisain ezzel lehet hivatkozni egy konkrét hangmintára. Ezek a címkék biztosítottan egyediek a rendszeren belül.
|
||||||
|
|
||||||
A rendszert alkotó mikroszolgáltatások négy fő csoportra oszthatóak. Ezt a felosztást mutatja be \aref{fig:architecture-redesigned}.\ ábra. Röviden ezek a csoportok az alábbiak:
|
|
||||||
\begin{itemize}
|
|
||||||
\item \textbf{West-End Subsystem} Az itt található szolgáltatások felelnek a beérkező hangfájlok és egyéb mérések adminisztrációjáért.
|
|
||||||
\item \textbf{AI Subsystem} Ezek a szolgáltatások felelnek az intelligens felismerésért.
|
|
||||||
\item \textbf{East-End Subsystem} Az intelligens felismerés eredményének hatására aktiválódó szolgáltatások vannak itt.
|
|
||||||
\item \textbf{Device Subsystem} Azok a szolgáltatások, amelyek közvetlenül az eszközök vezérlésért, azok adminisztrációjáért felelnek.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\begin{figure}[h!]
|
\begin{figure}[h!]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=1.05\textwidth]{figures/architecture-redesigned}
|
\includegraphics[width=1.05\textwidth]{figures/architecture-redesigned}
|
||||||
@ -125,43 +117,60 @@ A rendszert alkotó mikroszolgáltatások négy fő csoportra oszthatóak. Ezt a
|
|||||||
\label{fig:architecture-redesigned}
|
\label{fig:architecture-redesigned}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
A rendszert alkotó mikroszolgáltatások négy fő csoportra oszthatóak. Ezt a felosztást mutatja be \aref{fig:architecture-redesigned}.\ ábra. Röviden ezek a csoportok a következőek:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{West-End Subsystem} Az itt található szolgáltatások felelnek a beérkező hangfájlok és egyéb mérések adminisztrációjáért.
|
||||||
|
\item \textbf{AI Subsystem} Ezek a szolgáltatások felelnek az intelligens felismerésért.
|
||||||
|
\item \textbf{East-End Subsystem} Az intelligens felismerés eredményének hatására aktiválódó szolgáltatások vannak itt.
|
||||||
|
\item \textbf{Device Subsystem} Azok a szolgáltatások, amelyek közvetlenül az eszközök vezérlésért, azok adminisztrációjáért felelnek.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
A rendszerhez készült egy webes kezelőfelület is, amelyet hallgatótársunk Kunkli Richárd fejlesztett.
|
A rendszerhez készült egy webes kezelőfelület is, amelyet hallgatótársunk Kunkli Richárd fejlesztett.
|
||||||
|
|
||||||
|
|
||||||
\subsubsection{Implementált mikroszolgáltatások}
|
\subsubsection{Implementált mikroszolgáltatások}
|
||||||
|
|
||||||
|
Az általunk tervezett és implementált mikroszolgáltatások működéséről és felelősségeiről egy rövid leírás olvasható az alábbiakban.
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Input Service}
|
\item \textbf{Input Service} Ez az a szolgáltatás amely a felhőbe érkező hangfájlokat fogadja. Ennek a szolgáltatásnak a felelőssége ellátni az egyes hangmintákat címkével. Ezeket a címkéket lokálisan egy relációs adatbázisban is letárolja a hangfájlhoz tartozó egyéb információkkal együtt. A fogadott hangfájlt továbbküldi a \textit{Storage Service} számára. Miután az sikeresen eltárolta, ez a szolgáltatás az üzenetsorba publikál egy üzenetet hogy értesítse a feliratkozókat az új hangminta érkezéséről.
|
||||||
|
|
||||||
\item \textbf{Storage Service}
|
\item \textbf{Storage Service} Ez a szolgáltatás valósítja meg a hangfájlok hosszútávú tárolását egy objektum tárolóban. Képes kérésre visszaadni a hangfájlokat, illetve törölni is a mintákat.
|
||||||
|
|
||||||
\item \textbf{\acrshort{ai} Service}
|
|
||||||
|
|
||||||
\item \textbf{Model Service}
|
\item \textbf{\acrshort{ai} Service} Ez a szolgáltatás valósítja meg a beérkezett hangmintán hallható madár hang konkrét azonosítását. Ehhez \acrshort{cnn} algoritmust használ. Mind a folyamat elkezdéséhez szükséges üzenet fogadását, mind az eredmény publikálását üzenet sorokra kapcsolódva valósítja meg. A működéséhez szükséges modellt a \textit{Model Service} komponensből tölti le, amellyel \acrshort{rest} interfészen kommunikál. A hangmintát tag alapján a \textit{Storage Service}-ből tölti le címke alapján. Az adott eredmény egy hangminta címkéje és a felismert osztály (amely modelltől függően egy madár faj lehet).
|
||||||
|
|
||||||
|
\item \textbf{Model Service} Ez egyfajta okos tároló a rendszerben használt különböző \acrshort{mi} algoritmusok által használt modellek tárolására és kezelésére. Nem csak magát a modellt de arról különböző metaadatokat is képes eltárolni, amelyeket automatikusan olvas be a modellből. Ilyen például, hogy milyen modelleket képes azonosítani, ezekből melyik jelent veszélyt vagy, hogy az előfeldolgozásánál a hangnak milyen paramétereket kell használni.
|
||||||
|
|
||||||
\item \textbf{Results Service}
|
\item \textbf{Results Service} Ez a szolgáltatás az egyes mintákra való kiértékelések eredményét tárolja le. Minden mintára az eredmények egyértelműen visszakereshetőek és lekérdezhetőek. Ennek a megoldására relációs adatbázist használ.
|
||||||
|
|
||||||
\item \textbf{Metrics Service}
|
\item \textbf{Metrics Service} Az előző szolgáltatással ellenben ez a szolgáltatás az eredményeket időben változó metrikaként kezeli. Elabsztrahálja az egyes mintákat és statisztikai adatokat kezel. Ez különösen hasznos lehet bizonyos elemzéseknél és vizualizálásoknál.
|
||||||
|
|
||||||
\item \textbf{Guard Service}
|
\item \textbf{Guard Service} Ez a szolgáltatás is a mérések eredményét kapja meg a bemenetén, de itt nem eltárolja azokat, hanem ha az bizonyos határértéket átlép, akkor parancsot küld a termőföldre telepített \acrshort{iot} eszközöknek, hogy kezdjék meg a madarak elriasztását.
|
||||||
|
|
||||||
\item \textbf{Command and Control Service}
|
\item \textbf{Command and Control Service} Ez a szolgáltatás egy olyan interfészt valósít meg, amelyen keresztül egyszerűen lehet eszközöket, vagy azok egy csoportját kezelni. Azoknak lehet parancsot küldeni, vagy az állapotukat lekérdezni. Az eszközökkel \acrshort{mqtt} interfészen kommunikál, míg önmaga egy \acrshort{rest} interfészt szolgál ki.
|
||||||
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsubsection{Használt külső fejlesztésű szoftverek}
|
\subsubsection{Használt külső fejlesztésű szoftverek}
|
||||||
|
|
||||||
\begin{itemize}
|
Az alkalmazás több "off-the-self" komponenst is használ ahhoz, hogy megvalósítsa a tervezett működést. Ezeket mi választottunk ki a tervezés során. A következőkben csak röviden bemutatom ezeket a komponenseket és a kiválasztásának okát.
|
||||||
\item \textbf{PostgreSQL}
|
|
||||||
|
|
||||||
\item \textbf{MinIO}
|
\begin{itemize}
|
||||||
|
\item \textbf{PostgreSQL} (Relációs Adatbázis): Második legnépszerűbb nyílt forráskódú relációs adatbázis kezelő rendszer, kifejezetten alacsony erőforrás igényekkel, valamint igen fejlett képességekkel rendelkezik. Rendkívül jó a közösségi támogatása. A fejlesztés előtt volt már vele korábbi tapasztalatunk.
|
||||||
|
|
||||||
|
\item \textbf{MinIO} (Objektum tár): Nagy teljesítményű Objektum tár, amely az Amazon S3 \acrshort{api}-ját implementálja. Egyenesen \textit{Kubernetes} környezetbe tervezve. Egyszerűen használható és telepíthető. Emellett rendelkezik a fejlesztőktől származó \gls{python} implementációval, melyhez könnyen kezelhető \textit{Flask} plugin is tartozik.
|
||||||
|
|
||||||
\item \textbf{InfluxDB}
|
\item \textbf{InfluxDB} (Idősoros adatbázis): Az \textit{Influx Data} által fejlesztett idősoros adatbázis. Rendkívül hatékonyan tud az adatokon műveleteket végezni, az \acrshort{api} kezelése egyszerű és intuitív. A fejlesztés előtt volt már vele korábbi tapasztalatunk.
|
||||||
|
|
||||||
\item \textbf{RabbitMQ}
|
\item \textbf{RabbitMQ} (Üzenetsor): \textit{Erlangban} írt, népszerű, nyílt forráskódú üzenetsort megvalósító rendszer. Kezelése kifejezetten egyszerű és rendelkezik \gls{python} \acrshort{api}-val, valamint rendkívül jó minőségű dokumentáció érhető el hozzá.
|
||||||
|
|
||||||
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
A mikroszolgáltatás architektúrának és a megfelelő tervezésnek köszönhetően ezek a technológiák könnyen lecserélhetőek. Kizárólag az adott komponenssel közvetlenül kommunikáló szolgáltatást kell módosítani.
|
||||||
|
|
||||||
\subsection{Kommunikáció}
|
\subsection{Kommunikáció}
|
||||||
|
|
||||||
|
@ -134,6 +134,19 @@
|
|||||||
description={TODO}
|
description={TODO}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
\newglossaryentry{ini}
|
||||||
|
{
|
||||||
|
name={INI},
|
||||||
|
description={TODO}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\newglossaryentry{xlsx}
|
||||||
|
{
|
||||||
|
name={XLSX},
|
||||||
|
description={TODO}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
\newacronym{mdt}{MDT}{Model-Driven Telemetry}
|
\newacronym{mdt}{MDT}{Model-Driven Telemetry}
|
||||||
\newacronym{ai}{AI}{Artificial Intelligence}
|
\newacronym{ai}{AI}{Artificial Intelligence}
|
||||||
@ -215,4 +228,5 @@
|
|||||||
\newacronym{wifi}{WiFi}{Wireless Fidelity}
|
\newacronym{wifi}{WiFi}{Wireless Fidelity}
|
||||||
\newacronym{mqtt}{MQTT}{Message Queuing Telemetry Transport}
|
\newacronym{mqtt}{MQTT}{Message Queuing Telemetry Transport}
|
||||||
\newacronym{aws}{AWS}{Amazon Web Services}
|
\newacronym{aws}{AWS}{Amazon Web Services}
|
||||||
\newacronym{io}{I/O}{Input/Output}
|
\newacronym{io}{I/O}{Input/Output}
|
||||||
|
\newacronym{rtde}{RTDE}{Real-time Data Exchange}
|
@ -4,6 +4,13 @@
|
|||||||
\label{chapter:ursim}
|
\label{chapter:ursim}
|
||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
% Ipar 4.0 ???
|
||||||
|
|
||||||
|
% leírni, hogy igazából itt csak egy demót alakítottam át, így kívülről nem fog semmi érdekes látszani
|
||||||
|
|
||||||
|
|
||||||
|
\section{Környezet ismertetése} % Általánosan a robotkar cumók ismertetése
|
||||||
|
|
||||||
|
|
||||||
% Ide leírom, hogy mi volt kész, amivel dolgozni tudtam
|
% Ide leírom, hogy mi volt kész, amivel dolgozni tudtam
|
||||||
|
|
||||||
@ -11,26 +18,63 @@
|
|||||||
% Mivel ezt a dipterv alatt csináltam, ezért részletesebben fogok írni róla
|
% Mivel ezt a dipterv alatt csináltam, ezért részletesebben fogok írni róla
|
||||||
|
|
||||||
|
|
||||||
\section{Környezet ismertetése} % Általánosan a robotkar cumók ismertetése
|
|
||||||
|
|
||||||
\subsection{Universal Robots}
|
\subsection{Universal Robots}
|
||||||
% Általános leírás a robotkarokról
|
% Általános leírás a robotkarokról, meg hogy ezek a csávók gyártanak ilyeneket
|
||||||
|
|
||||||
|
|
||||||
\subsubsection{Fizikai jellemzők}
|
\subsubsection{Fizikai jellemzők}
|
||||||
|
|
||||||
|
A használt robotok
|
||||||
|
|
||||||
|
\cite{ur3_specs}
|
||||||
% Ide majd keresek valamit, lehet átnevezem valami okosra a címét
|
% Ide majd keresek valamit, lehet átnevezem valami okosra a címét
|
||||||
|
|
||||||
\subsubsection{Kommunikációs interfész}
|
\subsubsection{Kommunikációs interfész}
|
||||||
% URTD Interface
|
|
||||||
|
% RTDE Interface
|
||||||
|
|
||||||
\subsubsection{Szimulátor}
|
\subsubsection{Szimulátor}
|
||||||
% Dockursim
|
% Dockursim
|
||||||
|
|
||||||
\subsection{Demo vezérlés}
|
\subsection{Demó}
|
||||||
|
|
||||||
|
\subsubsection{Környezet}
|
||||||
|
|
||||||
|
% Mindenképp meg kell említeni hogy találó neveket adtak nekik
|
||||||
|
|
||||||
|
% Itt le lehetne írni, hogy hogy is néz ki ez a demo, milyen lépésekből áll és mi a setup
|
||||||
|
|
||||||
|
% Ki kell emelni hogy van egy kritikus szinkronizációs pont
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.6\textwidth]{figures/work_table}
|
||||||
|
\caption{A demó környezet elemeit tartalmazó asztal alaprajza}
|
||||||
|
\label{fig:work_table}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsubsection{Vezérlés}
|
||||||
|
|
||||||
|
A demo vezérlésére a munkám elején egy monolit Python program állt rendelkezésemre. A program úgy lett tervezve, hogy elindításával csatlakozik mindkettő robotkar \acrshort{rtde} interfészére. Majd sorban elküldi a robotkaroknak a demo végrehajtásához szükséges utasításokat. A % TODO
|
||||||
|
gripper vezérlését \acrshort{rest} apin keresztül végzi.
|
||||||
|
|
||||||
|
A két robotkar vezérlése két külön szálon valósítja meg. Mindkettő szálon egymás után következnek az utasítások, a kritikus szinkronizációs részek egyszerű szál-szinkronizációs primitívekkel vannak megoldva.
|
||||||
|
|
||||||
|
A programban több futtatási mód is implementálva van. Egyrészt választani lehet a végrehajtás sebességét gyors és lassú között. Ez a robotkarok mozgási sebességét befolyásolja. Emellett lehetőség van "Jogging" módban futtatni. Ebben a módban a program minden mozdulat végrehajtása előtt várakozik egy gomb lenyomására a további parancsok kiadása előtt. Így lehetőség adódik az esetleges hibás mozgások hibakeresésére illetve a program teljesen automatikus lefuttatása előtt manuális tesztelésre.
|
||||||
|
|
||||||
|
A program a konfigurációs beállításait egy \gls{ini} fájlban tárolja. Ezek a konfigurációs beállítások elsősorban a robotkarok és a hozzá tartozó Gripperek hálózati címeit adja meg illetve a konkrét sebesség módokhoz tartozó konfigurációs értékeket.
|
||||||
|
|
||||||
|
Az \gls{ini} fájl mellett a program a konkrét lépésekhez tartozó koordinátákat egy \textit{Microsoft Excel} \gls{xlsx} fájlból olvassa ki. Ebben a fájlban mindkét robotkarhoz tartozóan fel vannak sorolva a koordináták mind tool- és joint térben. %TODO verify naming
|
||||||
|
|
||||||
|
|
||||||
\section{Tervezés} % Itt foglalom össze, hogy hogy terveztem meg ezt a fost
|
\section{Tervezés} % Itt foglalom össze, hogy hogy terveztem meg ezt a fost
|
||||||
|
|
||||||
|
% funkcionális felbontás
|
||||||
|
|
||||||
|
|
||||||
|
% külön lehet írni a magas szintű tervezésről és egyes szoftverek architektúrájáról
|
||||||
|
% Itt le lehet írni a controller magas szintű terveit, plugin architektúrát
|
||||||
|
|
||||||
% tervezés és a nehézségek nem tételesen de hasonlóan struktúrálva
|
% tervezés és a nehézségek nem tételesen de hasonlóan struktúrálva
|
||||||
% Illetve a komoly megoldásaim
|
% Illetve a komoly megoldásaim
|
||||||
|
|
||||||
@ -40,4 +84,32 @@
|
|||||||
|
|
||||||
% ha nagyon kevés oldal van, akkor itt tudok írni a fejlesztői környezetről is illetve a tesztelésről
|
% ha nagyon kevés oldal van, akkor itt tudok írni a fejlesztői környezetről is illetve a tesztelésről
|
||||||
|
|
||||||
% Szinkronizációs protokol lófasznál ne felejtsek el írni az NTP-ről és PTP-től
|
% Szinkronizációs protokol lófasznál ne felejtsek el írni az NTP-ről és PTP-től
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{figures/ursim_services_plan-clean}
|
||||||
|
\caption{A tervezett mikroszolgáltatások a futtatási környezetük szerint csoportosítva}
|
||||||
|
\label{fig:usrsim_services_plan-clean}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Implementáció}
|
||||||
|
|
||||||
|
% Hát itt kénytelen leszek kódot magyarázni szerintem
|
||||||
|
|
||||||
|
% Redis
|
||||||
|
|
||||||
|
% Technológia stack
|
||||||
|
|
||||||
|
% az egyes mikroszolgáltatások különszedve
|
||||||
|
|
||||||
|
|
||||||
|
% Le lehet írni azt is hogy hogyan extractoltam ki a lépéseket az eredeti kódból, erről egy egész szekciót lehetne írni
|
||||||
|
|
||||||
|
% Tiny HTTP Szerver, endpointok felsorolása
|
||||||
|
% Pluginok compilerekkel
|
||||||
|
|
||||||
|
% Esetleg pluginok felsorolással
|
||||||
|
|
||||||
|
|
||||||
|
% A programok felépítéséről is lehet írni
|
BIN
src/figures/ursim_services_plan-clean.pdf
Normal file
BIN
src/figures/ursim_services_plan-clean.pdf
Normal file
Binary file not shown.
BIN
src/figures/work_table.pdf
Normal file
BIN
src/figures/work_table.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user