From a167a978701e4b464ad918333b870bb994cc739a Mon Sep 17 00:00:00 2001 From: marcsello Date: Sat, 22 May 2021 16:33:23 +0200 Subject: [PATCH] eh --- src/bib/mybib.bib | 14 +++++++++ src/content/birbnetes_impl.tex | 2 +- src/content/glossary.tex | 4 ++- src/content/ursim_impl.tex | 54 +++++++++++++++++++--------------- 4 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/bib/mybib.bib b/src/bib/mybib.bib index c960183..4467551 100644 --- a/src/bib/mybib.bib +++ b/src/bib/mybib.bib @@ -362,4 +362,18 @@ title = {Overview of Client Interfaces}, howpublished = {\url{https://www.universal-robots.com/articles/ur/interface-communication/overview-of-client-interfaces/}}, note = {Hozzáférve: 2021-05-21} +} + +@misc{robot_controll_tcpip, + author = {Universal Robots}, + title = {Remote Control via TCP/IP}, + howpublished = {\url{https://www.universal-robots.com/articles/ur/interface-communication/remote-control-via-tcpip/}}, + note = {Hozzáférve: 2021-05-22} +} + +@misc{urscriptreference, + author = {Universal Robots}, + title = {The URScript Programming Language}, + howpublished = {\url{https://www.siemens-pro.ru/docs/ur/scriptManual.pdf}}, + note = {Hozzáférve: 2021-05-22} } \ No newline at end of file diff --git a/src/content/birbnetes_impl.tex b/src/content/birbnetes_impl.tex index 1f67de5..dc4a8f3 100644 --- a/src/content/birbnetes_impl.tex +++ b/src/content/birbnetes_impl.tex @@ -1,6 +1,6 @@ % !TeX root = ../thesis.tex %---------------------------------------------------------------------------- -\chapter{Madárhang felismerő rendszer implementáció} +\chapter{Madárhang felismerő rendszer} \label{chapter:birbnetes} %---------------------------------------------------------------------------- diff --git a/src/content/glossary.tex b/src/content/glossary.tex index 15f5bd0..7e25ac2 100644 --- a/src/content/glossary.tex +++ b/src/content/glossary.tex @@ -159,6 +159,7 @@ \newacronym{egp}{EGP}{Exterior Gateway Protocol} \newacronym{as}{AS}{Autonomous System} \newacronym{iot}{IoT}{Internet of Things} +\newacronym{iiot}{IIoT}{Industrial Internet of Things} \newacronym{vod}{VoD}{Video on Demand} \newacronym{snmp}{SNMP}{Simple Network Management Protocol} \newacronym{ssh}{SSH}{Secure SHell} @@ -229,4 +230,5 @@ \newacronym{mqtt}{MQTT}{Message Queuing Telemetry Transport} \newacronym{aws}{AWS}{Amazon Web Services} \newacronym{io}{I/O}{Input/Output} -\newacronym{rtde}{RTDE}{Real-time Data Exchange} \ No newline at end of file +\newacronym{rtde}{RTDE}{Real-time Data Exchange} +\newacronym{rdp}{RDP}{Remote Desktop Protocol} \ No newline at end of file diff --git a/src/content/ursim_impl.tex b/src/content/ursim_impl.tex index e3d5b23..fa9fc53 100644 --- a/src/content/ursim_impl.tex +++ b/src/content/ursim_impl.tex @@ -1,29 +1,28 @@ % !TeX root = ../thesis.tex %---------------------------------------------------------------------------- -\chapter{Felhő alapú robot vezérlés implementáció} +\chapter{Felhő alapú robot vezérlés} \label{chapter:ursim} %---------------------------------------------------------------------------- -% Ipar 4.0 ??? -% Szóval van ezt a 4. ipari forradalom -% itt irodalom kutatjuk, hogy hogy jön ez össze a cloudból irányitott dolgokkal -% Leírom hogy a peremhálózatok itt mennyire király módon tudnak a segítségünkre válni -% mert az fellendíti, meg nagyon felhő +A negyedik ipari forradalom az "okos" gyártásról szól. A korábban helyileg telepített számítási erőforrásokat felhasználó előre meghatározott, kötött gyártás irányítást leváltja a \gls{felho} alapú folyamat irányítás és optimalizálás. Itt már nem csak a gyártás a lényeg, a folyamatok elemzésével és mély megértésével a hangsúly a precíz optimalizációra és produktivitás növelésre hegyeződik ki. Ehhez felhasználják az ipar legújabb vívmányait: Egyre nagyobb teret hódít az Ipari \acrshort{iot} (\acrshort{iiot}), a mesterséges intelligencia és gépi tanulás, a gép-gép kommunikáció, valósidejű adatgyűjtés, \textit{Big Data} és még sok minden más\cite{whatisindustry4}. - -\cite{whatisindustry4} +A robotvezérlés precíz időzítést igényel, hiszen itt pár-tíz milliszekundumos eltérések akár katasztrofális következményekkel járhatnak. Éppen ezért sokáig a robotok közvetlen vezérlésének kiszervezése a felhőbe nem volt megoldható. A peremhálózati rendszerekkel viszont ez megváltozhat. Ez az alkalmazás a peremhálózati rendszerek alacsony késleltetését aknázza ki. Hiszen a robotika vezérlésnél fontos a precíz irányítás, úgy vélem itt különösen jól alkalmazható ez a technológia. A peremhálózati rendszereknek hála tovább csökkenthetővé válik a gyárakban helyben telepített informatikai infrastruktúra mértéke, hiszen több alkalmazás válik \gls{felho}be "költöztethetővé" és ezáltal annak előnyeit is nagyobb mértékben lesznek képesek kihasználni a gyártósorok. - +, Ebben a feladatban egy már rendelkezésre álló demót alakítottam át úgy, hogy az kihasználja a peremhálózati rendszerek adta lehetőségeket. \section{Környezet ismertetése} % Általánosan a robotkar cumók ismertetése A feladat megkezdésekor rendelkezésemre állt egy gondosan megtervezett demó szcenárió, amely kifejezetten a hálózati késleltetés jelentőségének bemutatására lett tervezve. Ez a szcenárió magában foglalja mind a szoftveres és a hardveres megoldást. A kettőt összekötő hálózatot és még egyedileg 3D nyomtatott munkadarabokat is. -\subsection{Universal Robots} -% Általános leírás a robotkarokról, meg hogy ezek a csávók gyártanak ilyeneket +\subsection{\textit{Universal Robots}} +A demóban használt robotkarokat az \textit{Universal Robots} nevű dán vállalat tervezi és gyártja. A gyártó palettáján több robotkar is megtalálható. Ez az írás idejében kétszer négy modellt jelent, az \textit{UR3} és \textit{UR3e}, az \textit{UR5} és \textit{UR5e}, az \textit{UR10} és \textit{UR10e} illetve az \textit{UR16e}. Mindegyik robotkar egyre növekvő módon egyre növekvő kihívásoknak képes eleget tenni. % TODO: Cite + +Az \textit{Universal Robots} által gyártott robotkarok vezérlését a hozzákapcsolt \textit{Control Box} végzi. Ez lényegében egy Mini-ITX számítógép ami egyéni \Gls{linux} alapú operációs rendszert futtat. Ezen a számítógépen fut a robotkarok alacsony szintű vezérlője, amelyet különböző hálózati protokollok segítéségével kezelhetünk, illetve a grafikus felület, amely lokális kapcsolaton csatlakozik ezekhez az interfészekhez\cite{urscriptreference}. + +A demóhoz használt két robotkar típusa \textit{UR3} és \textit{UR3e}. \subsubsection{Fizikai jellemzők} @@ -36,28 +35,37 @@ A két robotkar végére két különböző gripper van telepítve, mindkettő \ \subsubsection{Kommunikációs interfész} -% RTDE Interface - -\cite{robot_client_interfaces} +Az demó által használt \textit{Universal Robots} robotkarok többféle kommunikációs interfésszel rendelkeznek, amelyeket a \textit{Control Box} valósít meg\cite{robot_client_interfaces}: \begin{itemize} - \item \textbf{Primary/Secondary Interfaces} - \item \textbf{Real-time Interfaces} - \item \textbf{Dashboard Server} - \item \textbf{Socket Communication} - \item \textbf{XML-RPC} - \item \textbf{\acrfull{rtde}} + \item \textbf{Primary/Secondary Interfaces}: A robotok vezérlő szoftvere két interfészt tart fenn a robotkar státuszának módosítására és megfigyelésére. Az elsődleges (primary) interfészen olvasni és írni is lehet a robot állapotát a másodikon csak olvasni. Elsősorban ez az interfész a grafikus kezelőfelülettel történő kommunikációra lett kifejlesztve. URScript parancsokat képes küldeni és fogadni 10Hz-es rátával (Azaz nagyjából 100ms gyakoriság). + + \item \textbf{Real-time Interfaces}: A valós idejű interfész működése hasonló az előbb említett elsődleges másodlagos intefész működéséhez. Úgyanúgy státuszt tudunk vele megkapni és URScript parancsokat fogad. A fő különbség a működési ráta. Itt akár 500Hz-es rátát is elérhetünk (azaz nagyjából 2ms gyakorisággal küldhetünk vagy fogadhatunk valamilyen információt)\cite{robot_controll_tcpip}. + + \item \textbf{Dashboard Server}: A robot grafikus kezelőfelületét is képesek vagyunk közvetlenül, programozottan vezérelni \acrshort{tcp} kapcsolaton keresztül. Ez olyan alapvető funkciókat enged végrehajtani, mint a az eltárolt programok betöltése, futtatása, felhasználók hozzáférési szintjének szabályozása, és alapvető robot státusz információk lekérdezése. + + \item \textbf{Socket Communication}: Ez egy alacsony szintű \acrshort{tcp} alapú kommunikáció, amelyben a robot kliensként viselkedik és a szerver amihez kapcsolódik látja el utasításokkal. Természetesen ezen a protokollon is \textit{URScript} parancsokat adhatunk ki, ezekben segítő utasítások vannak a kapcsolat életciklusának kezelésére. + + + \item \textbf{\acrshort{xml}-\acrshort{rpc}}: Ez a protokol lehetőséget ad sokkal széles körűbb alkalmazásokra, mint az előbbiekben említett \textit{URScript}et használó protokollok. Hiszen az egyes funkcióit a robotoknak a paraméterekkel együtt függvényhívás szerűen végezhetjük. Ezzel sokkal komplexebb programok készíthetőek. + + \item \textbf{\acrfull{rtde}}: Az \acrshort{rtde}-t egy robosztus megoldásnak tervezték, amely kiválthatja a \textit{Real-time} interfészt. Lehetővé teszi az \textit{UR} kontroller számára az egyéni státusz-adat és regiszter állapotok átvitelét. Ez az interfész valósidejű szinkronizációt tesz lehetővé akár 125Hz-es rátával (8ms/üzenet). \end{itemize} -% Említeni a grippereket is +Emellett a hozzákapcsolt grippereknek is lehet önálló kommunikációs interfésze. + +% TODO: Írni a gripperek interfészeiről + +\subsubsection{\textit{URScript}} + +\cite{urscriptreference} \subsubsection{Szimulátor} -% Dockursim Természetesen a tanszéken csak kettő robotkar van, amelyek nem állnak mindig készen a tesztelésre. A fejlesztés és a tesztelés megkönnyítésére több szimulátor is megvizsgálásra került a Demót összeállító csapat által. Végül a leghatékonyabban használhatónak a \textit{DockURSim}\footnote{\url{https://github.com/ahobsonsayers/DockURSim}} bizonyult. -Lényegében a \textit{DockURSim} a robotkarokat közvetlenül irányító, a \textit{Teach Pendanton} futó szoftver becsomagolva egy \textit{Docker} konténerbe. Konkrét robotkart nem irányít, de a kommunikációs interfészeket és azok funkcionalitását teljes mértékben implementálja. Lehetőségünk van a grafikus felületet kezelni és ott meg tudjuk figyelni a robotkar mozgását. +Lényegében a \textit{DockURSim} a robotkarokat közvetlenül irányító, \textit{Control Box}on futó szoftver becsomagolva egy \textit{Docker} konténerbe. Konkrét robotkart nem irányít, de a kommunikációs interfészeket és azok funkcionalitását teljes mértékben implementálja. Lehetőségünk van a beépített \acrfull{rdp} szerveren keresztül grafikus felületet\footnote{Ez a grafikus felület a \textit{Teach Pendant}on grafikusan kezelhető felület.} kezelni és ott meg tudjuk figyelni a robotkar mozgását. Egyetlen hátránya ennek a megoldásnak, hogy a robotkarokat önállóan egy izolált környezetben tudja csak szimulálni, így a környezet fizikai hatásai, a gripperek működése és a robotkarok egymással való találkozását nem képes modellezni.