This commit is contained in:
Pünkösd Marcell 2021-05-22 16:33:23 +02:00
parent 12a75c25a0
commit a167a97870
4 changed files with 49 additions and 25 deletions

View File

@ -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}
}

View File

@ -1,6 +1,6 @@
% !TeX root = ../thesis.tex
%----------------------------------------------------------------------------
\chapter{Madárhang felismerő rendszer implementáció}
\chapter{Madárhang felismerő rendszer}
\label{chapter:birbnetes}
%----------------------------------------------------------------------------

View File

@ -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}
\newacronym{rtde}{RTDE}{Real-time Data Exchange}
\newacronym{rdp}{RDP}{Remote Desktop Protocol}

View File

@ -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.