Skip to content
Snippets Groups Projects
Commit dfa3bfc4 authored by cs-99's avatar cs-99
Browse files

No commit message

No commit message
parent 8cb2365e
Branches
No related tags found
No related merge requests found
<mxfile host="app.diagrams.net" modified="2021-06-18T10:54:37.739Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36" etag="CbMnW_Yl6oEYN3M-BnzR" version="14.8.0" type="device"><diagram id="EDEgkUB7I-RHyl0mDD5X" name="Page-1">7Vxbk6I4FP41PPYWAQV9dBi3Zx+ma3bcrdmZl60IESgxcUMYtX/9QhMEEmgdxCbdbZVlkRNu+fKdW3JUM53N/p7CbfCZeCjSDN3ba+ZHzTDAyDC07KN7h1xiW1zg09DjJ5WCRfiIuFDn0iT0UFw7kRESsXBbF7oEY+SymgxSSnb101Ykqj91C30kCRYujGTpt9BjQS6dGHYp/4RCPyieDKxp3rOBxcl8JHEAPbKriMy5ZjqUEJYfbfYOijLwClzy635v6T2+GEWYnXNBPL7fkge4BaY/JZ/tf//89vDjjt/lJ4wSPuDZ0kPuOsF+JiY4/V4cYoY2EK8I9RBNexDmI2KHAiZKEuyh7ElAMz/sgpChxRa6We8uJUYqC9gm4t3ymxevgShD+4qIj+QekQ1i9JCewnuNMUeV08qY8PaunCRQIB9UJsjiMsh54R9vXUKXHnD0fgFJQ0LyK9pS4iWPIaJLSNcoZEdI/0IxiwcH0TTrIILp0CCaEoiLNYyqAA4M2WiiGmQjWYOT1Q5ib3CsLOXoNZawmmO2C911lFq1GCqC29hSzbZZEm4SSAh7s8zdpi03gnEcunVc0D5k/6TH+m9j3vpe6fmYDV0vGoeigdOXr1yUNb9X+8rLnlrFda1zEJOEuui0MjFIfcROEwl5teBBntHKjI0bJqyQURRBFv6shxxNs8if8IWEmJWEmep1woyAQIR83Pyqaogg3kjwqqbIqBwY6UZPpDoOuzvPbNmW0WVq9pVRzREY1QGyh1bNiQTZjxQwVfASTdnweE3fiykbn2nK7Jspu4YpK977RjTBUt2I1jPRGlL4JF5pjql9cAJlEidbVy2oBXLGPksY2aSsihXKOEXghnehQM7Sv0AKowhFSiE3GSmHnJysv1GnUFilk16h0MKbW+jZLchrHe+eauaNaleh2m15qIWSN6b1zLSGBSIMo0Mt6tA9RNPvefomSxzGMRo8EJkqt2kA5GWjRegGiAYqBm4K4CUvG83W64RCpgRgACi31WLIaWm+j6wAWBNQA2v4VLRwmBWw/t7sUKQAs3TlkihDTj8lmN5GuFFYnZPxhqFWvDERwoSR2TXeELcPxBtdOd4w+sjXO9KmC0VbqXaaQc1p+NkkHYpqQDfqFDka81/mmrjOJt7o2lyTE/ZVgtcsJDgrRjP0mVIFWEA9vyCnoTiNadmdyjAaE+VglHOst+pez7WNalV7WIJT7JzNSyr80t5VTkLfqne1OnvXQZ3rtCffagOBaddbN7LuDg+JT8cBteaOE60+3f+nP1/lfLkHkMx9A0vaHemQi0ONaLUno3qS1RTpf2CGKHzyqf240MsABC0sHQzAV5mgSrbphEt9TtGqBrGdYkOZNXFHfWR0NGtmW03DC5m1V7nFdy2eqec+e+OZLW672C/Ls4b9PcfUps4yNdsU+j3We1zkCMTi3OEdQZ+pVEU9S2U9oaCgpp6ltvaqoOcWBbZT66agFypoQyJVKOgOuoEqCiru6w2voD1Wg4MuCqoPpqBNVTPt3Lpp6KUZqFwO/jUv0XXXqU6tSORXfiOKaITYI3uqY7jSr28vUmSxoGF4RW6ogu7uapWNhZ8tijmpyTkHlVFlvS9VHr+wKsvrI++GapNX6TS6Mk3cEuwvv0+b5R8/5KeXf59hzv8H</diagram></mxfile>
\ No newline at end of file
<mxfile host="app.diagrams.net" modified="2021-07-04T17:25:26.321Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" etag="Uxa_n9Nu9DTKBKNlNK_y" version="14.8.4" type="device"><diagram id="EDEgkUB7I-RHyl0mDD5X" name="Page-1">7Vxdk5o8GP01XO47QET00lq77XS609Z2ut2bToQIrJjYEKrur39hIQoJfqyjJus6s+OQBwhwOM/HScIaoD9d3FI4C78QH8WGbfoLA7w3bNtq2baR/5n+srC4plMYAhr55UFrwzB6QqXRLK1p5KOkdiAjJGbRrG70CMbIYzUbpJTM64eNSVy/6gwGSDIMPRjL1l+Rz8LC2rHdtf0jioKQX9lqd4s9U8gPLp8kCaFP5hUTGBigTwlhxdZ00UdxDh7HpTjvw4a9qxujCLN9Tkic2xm5gzMLBF3yxf3z7dfdw03Zyz8Yp+UD90Y+8iYpDnIzwdnvcJkwNIV4TKiPaLYH4fKJ2JLDREmKfZRfyTLAu3kYMTScQS/fO8+IkdlCNo3L3fKd89tAlKFFxVQ+yS0iU8ToMjuk3AvMEtWSVla7bM/XL8niyIeVF8SPgyUvglXXa+iyjRK9FyBpS0h+RzNK/PQpQnQE6QRFbAXpD5SwRDmIlgDiyumUgQgkEIcTGFcB1AwyoByyluzB6XgOsa8dVi3lWDkSVgPM5pE3ibOolkBNcBNjG1Ae29oSbhJICPu9PN1mLS+GSRJ5dVzQImL3le3f2bb5n1O23uePbvLGkjdwdvP31UblrLy5Pu25xc/b+A4SklIP7XYmBmmA2G4iIb9WPMhvtPLGnIYXxm0UxZBF/+olR9NbLK/wlUSYrQnT3eRovIviucuzqiWC0BFobYhuvKMCGKmjZ1KtHvtwnrlyLKOjLOxr45oOaNUzpqvaNTsSZA8ZYLritSKYMry6byWUOXuGMvcyQ1nX2ZBEzxTK+H1fiSZEqivRjky0BgmfJmOjD4x3/VAb4SQWtS3lRa0lK/Zeysg0Y1WikeIUU2iroxw4WaV/hRTGMYr1Rk65/rRksX6hSYFHpZ1ZgXvhNS0cOS3IYx0vp9qBtDmEouegGtCKaqsMyKlmv1aqNch2DONlLReYPqLZ7yC7kxGOkgQpTw/i8GRbfXqQxfww8kJEQx3SqYiXox4vWcz3JpOUQqYlYK5ywGxZKxSTe8qxEms1V7k84PmygtXP6RzF6nklYtXuKsdKVgQSShdS15YhZ2exwXvUpNjoCDVCCxxYbDh2vaOO2NGJiw37GBLqddS1e1NNLwllmQJF7M6hha04ESp2dGquyRpqnOIJiwjO1wfZZk+rNTFiXnCUpwV53hhn9Sy7eU0oWkA5jLK+utTsum/E02v+vS0q+UMHjSxx/v3cyVUWoJeaXPdlWlsrplndI6XWlRY9/ZhR+2Z5lwbUCWl70O/H44+3f83t60410+3WOXV7I1qbpaiZ5qs8zE+YIQqfc6oGKVSc6zunlm/E7xjyVLewts2tqmFtG6E0iWqrKCY63IvXr4kLmk8nGBphPcaci26F2r4825ZmNeGZK07uHTrj4oozLu55edawHrcPjG5/lIVoCgNdJ+BtU3UieDNKqmFR1jYmXR30uA7aoKO4g86hF+rqoM45h4wagXszy3ObVi1so9LVQ48sQOX1ud+LNZPeJHOgMYmDykd7iMaIPbHnJQw6fg4pTQnaqh25YVnqpXqyu6cnc8rp6srmsVzZObMry8Mjl0q1zmUkjUOZJk4InlDfB+bPb3fJZwAfnEln+Tgkj/ePr/SjDoEFp/0y0lI7ktTdUVXsPZIkxjSxzjmYaVlz/T8fisPX/zkDDP4H</diagram></mxfile>
\ No newline at end of file
File deleted
images/anforderungen.png

38.2 KiB | W: | H:

images/anforderungen.png

57.8 KiB | W: | H:

images/anforderungen.png
images/anforderungen.png
images/anforderungen.png
images/anforderungen.png
  • 2-up
  • Swipe
  • Onion skin
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="641px" height="181px" viewBox="-0.5 -0.5 641 181" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2021-06-26T12:12:43.262Z&quot; agent=&quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36&quot; etag=&quot;ku7JttpDox93Vf9c3W14&quot; version=&quot;14.8.0&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;BvBVtmby5S5bfYz1Z3JI&quot; name=&quot;Page-1&quot;&gt;7VjbcpswEP0aP9aDxMXwmDip25nmMnGaxo8qKIaOjBghxzhfXxHERQgcmuB00umT2UW7ls6eo5WYmPNNtmAoCS9ogMkEGkE2Mc8mEALDNMVP7tkXHgsYhWPNokAOqh3L6AmXkdK7jQKcKgM5pYRHier0aRxjnys+xBjdqcMeKFH/NUFrrDmWPiK690cU8LDwunBW+7/gaB2W/wwcr3izQeVguZI0RAHdNVzm+cScM0p58bTJ5pjk4JW4FHGfe95WE2M45kMC7hbe3J/R++uLy8Xqa3h7dfcw/ySzPCKylQu+vbm6lBPm+xKFdBdtCIqFdSoDMOM4650JqNYniIHpBnO2F0NkgCsRkZRwpLmr8YWW9IVNbMs4JGu6rjLXyxYPcuV/gALUUPieJAjlcc+MJhogjG7jAOc5gcBkF0YcLxPk5293QgjCF/INka8HQdZfnl4coa3gaOk4ArsLxzJudBxnGo4acDgOTnJZCssnKE0jX8UKZxG/F8/GVMyyMFe5KZ/PsqaxL41YzP6+aawaKXK7jnu2ysBiejjQ9oAWlcUS6Jb5+MDaLbk5IbbGh0rqdpe0UbSumpU+hgni0aM63a46yn+4ppFYSMUY01OlV3GmTFEsU0Y1N5NWIqulYWC25lLgoCV6plW17NczzdWYdnO1fAeVHhakBSwFFc+dWjNdlLBTlO7UcI6kS28EXVYSm85sRWUvSKwSdFPNMkevoEfUpTtQl9a/oUurpUuvlejIurQ0pp0EKOGYvU2bjHIBL42F6RnjaLU6dlQ7GJzaHVp19KI7xzqH2KPqFCo6BQN1ChSdwnfTKfwIOoW23SKN9TF16ozINKC0g0Z7eKkj1F1g1SDe0Zk29KQG/3eEEZhWXuSbzBJVXEqTMh7SNY0ROa+9p3VzyGtfj/lGaSKp8gtzvpffC9CW075rxF+h2NBDR89lYDB33tRtgH75X6An/JO+rVeP0JsdMKg3gw75Ha03A/0jgYZTGqIkf3wgOJN752nnNpoKZvBB92C1HR/uxn3X4He8BQ8lPughQLO8Rtc1yRhpe22d/jTeDN5e28fIdqJXb6/CrD8OFsPrT6zm+W8=&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><path d="M 0 23 L 0 0 L 240 0 L 240 23" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 23 L 0 180 L 240 180 L 240 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 240 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="119.5" y="16">TRON</text></g><rect x="25" y="40" width="150" height="125" rx="18.75" ry="18.75" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 103px; margin-left: 26px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Uppaal Modell</div></div></div></foreignObject><text x="100" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Uppaal Modell</text></switch></g><path d="M 273 71 L 327.63 70.54" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 332.88 70.49 L 325.91 74.05 L 327.63 70.54 L 325.85 67.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="334" y="38.47" width="120" height="128.06" rx="18" ry="18" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 103px; margin-left: 335px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">ROS</div></div></div></foreignObject><text x="394" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">ROS</text></switch></g><path d="M 334 134.51 L 279.37 134.05" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 274.12 134.01 L 281.15 130.57 L 279.37 134.05 L 281.09 137.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="180" y="72.5" width="126" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" transform="rotate(90,243,102.5)" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(90 243 102.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 124px; height: 1px; padding-top: 103px; margin-left: 181px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Adapter</div></div></div></foreignObject><text x="243" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Adapter</text></switch></g><path d="M 175 71.25 L 206.63 71.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 211.88 71.01 L 204.91 74.55 L 206.63 71.04 L 204.86 67.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 213 134 L 181.37 133.79" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 176.12 133.76 L 183.14 130.3 L 181.37 133.79 L 183.09 137.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="530" y="72.5" width="110" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 103px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Gazebo</div></div></div></foreignObject><text x="585" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Gazebo</text></switch></g><path d="M 473.5 107.5 L 473.5 118 L 454.5 102.5 L 473.5 87 L 473.5 97.5 L 510.5 97.5 L 510.5 87 L 529.5 102.5 L 510.5 118 L 510.5 107.5 Z" fill="none" stroke="#000000" stroke-linejoin="round" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
\ No newline at end of file
<mxfile host="app.diagrams.net" modified="2021-07-04T15:48:35.214Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" etag="yscNUE4UDWNlkbHFPzsu" version="14.8.1" type="device"><diagram id="VdpEpaqEMz-mNJss-KDH" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
images/tron_konfigurierung.png

35.4 KiB

......@@ -368,4 +368,15 @@
readstatus = {read},
}
@Misc{TronManual,
author = {Kim G. Larsen and Marius Mikucionis and Brian Nielsen},
month = oct,
title = {Tron User Manual},
year = {2007},
file = {:Uppaal_tron_user_manual.pdf:PDF},
ranking = {rank5},
readstatus = {read},
school = {Aalborg University},
}
@Comment{jabref-meta: databaseType:bibtex;}
......@@ -36,13 +36,13 @@ Bei Mensch-Roboter-Interaktionen stellen technische Fehler neben schlechten Umwe
Daher ist bei Cyber-Physischen Systemen Sicherheit als äußerst relevante Anforderung in den Fokus der Industrie gerückt. Besonders kollaborativ arbeitende Systeme müssen diesbezüglich ausreichend getestet werden, um Unfällen vorzubeugen. Bei diesen sollte zunächst in einer Simulation und darauf folgend in einer kontrollierten Umgebung getestet werden, bevor Tests im Einsatzumfeld stattfinden. Die Anzahl an Unfällen im Zusammenhang mit einem System kann als Indikator für die Sicherheit dienen. Ein hauptsächliches Problem hierbei ist herauszufinden, ob die Unfälle durch das System oder durch den Menschen verursacht wurden.\cite{Antao2018}
\subsection{Übersicht}
Die Anforderungen an die Testmethodiken cyber-physischer und insbesondere Robotik-Systeme stellen für die Forschung momentan eine Herausforderung dar. Simulationen, die in \cref{grundlagen:simulationen} diskutiert werden, können das Erfüllen vieler Anforderungen erleichtern, stellen dabei aber selbst einige Hürden. Die Abdeckung sowie der Aufwand müssen vor allem im Rahmen der Testentwicklung beachtet und umgesetzt werden. \cref{grundlagen:testanforderungen:uebersicht} gibt einen Überblick über die geforderten Eigenschaften.
\begin{figure}[h]
\centering
\includegraphics[scale=0.37]{./anforderungen.png}
\includegraphics[scale=0.6]{./anforderungen.png}
\caption{Übersicht über die Anforderungen an die Testmethodik}
\label{grundlagen:testanforderungen:uebersicht}
\end{figure}
Die Anforderungen an die Testmethodiken cyber-physischer und insbesondere Robotik-Systeme stellen für die Forschung momentan eine Herausforderung dar. Simulationen, die in \cref{grundlagen:simulationen} diskutiert werden, können das Erfüllen vieler Anforderungen erleichtern, stellen dabei aber selbst einige Hürden. Die Abdeckung sowie der Aufwand müssen vor allem im Rahmen der Testentwicklung beachtet und umgesetzt werden. \cref{grundlagen:testanforderungen:uebersicht} gibt einen Überblick über die geforderten Eigenschaften.
\section{Simulationen}\label{grundlagen:simulationen}
Simulationen ermöglichen Entwicklern eine einfachere Umsetzung der in \cref{grundlagen:testanforderungen} gestellten Anforderungen, da das System nicht in seinem Einsatzumfeld getestet werden muss. Neben Kosten und Zeit der Testausführung wird insbesondere bei kollaborativen Robotiksystemen eine größere Sicherheit sowie Reproduzierbarkeit gewährleistet. Allerdings sind als Trade-off bezüglich der Akkuratheit Einbußen anzunehmen.\cite{Sarhadi2014}
......
......@@ -13,11 +13,12 @@ Allerdings können komplexe Zusammenhänge, auch abhängig von der gewünschten
\end{figure}
\section{Modell in Uppaal}
Ein System in Uppaal besteht aus einem oder mehreren Automaten. Sogenannte Channel und global deklarierte Variablen sorgen für eine Synchronisation dieser. Die Automaten selbst sind als erweiterte endliche nicht-deterministische Automaten einzuordnen. Durch Guards kann festgelegt werden, wann eine Kante verfügbar ist. Beim Entlanggehen einer Kante, welches auch durch die erwähnten Channel ausgelöst werden kann, können Variablen (global oder lokal) angepasst werden. Invarianten können global oder nur in bestimmten Zuständen angegeben werden. \cref{konzept:uppaal_tor} zeigt beispielhaft ein modelliertes System.
Ein System in Uppaal besteht aus einem oder mehreren Automaten. Sogenannte Channel und global deklarierte Variablen sorgen für eine Synchronisation dieser. Die Automaten selbst sind als erweiterte endliche nicht-deterministische Automaten einzuordnen. Durch Guards kann festgelegt werden, wann eine Kante verfügbar ist. Beim Entlanggehen einer Kante, welches auch durch die erwähnten Channel ausgelöst werden kann, können Variablen (global oder lokal) angepasst werden. Channel bieten sich als Modellierung der ROS Topics an.
Invarianten können global oder nur in bestimmten Zuständen angegeben werden. \cref{konzept:uppaal_tor} zeigt beispielhaft ein modelliertes System eines automatischen Tores mit einem dazugehörigen Schlüssel. Beim probabilistischen Auslösen dieses Schlüssels (mit einer Wahrscheinlichkeit von 1:101) wird das Tor über den Channel \textit{auslösen} informiert, wechselt in den Zustand \textit{öffnend} und setzt die Variable "zeit" auf 0. Nach 10000 vergangenen Zeiteinheiten wechselt das Tor dann in den Zustand \textit{offen}. Das Schließen läuft analog dazu ab.
\begin{figure}[h]
\centering
\includegraphics[scale=.4]{./uppaal_tor.png}
\caption{zeigt ein Modell eines automatischen Tores mit einem dazugehörigen Schlüssel. Beim probabilistischen Auslösen dieses Schlüssels (mit einer Wahrscheinlichkeit von 1:101) wird das Tor über den Channel "auslösen" informiert, wechselt in den Zustand "oeffnend" und setzt die Variable "zeit" auf 0. Nach 10000 vergangenen Zeiteinheiten wechselt das Tor dann in den Zustand "offen". Das Schließen läuft analog dazu ab.}
\caption{Beispiel-Modell in Uppaal}
\label{konzept:uppaal_tor}
\end{figure}
......@@ -26,4 +27,16 @@ Folglich kann das Systemverhalten modelliert werden.
Da für die Testgenerierung auch ein Modell für die Inputs des Systems nötig ist, können die Modelle auch innerhalb von Uppaal verifiziert werden. Ebenso können formale Eigenschaften mithilfe des integrierten Verifiers überprüft werden. Wie in \cref{grundlagen:testentwicklung:modell-basiert} erwähnt können, falls schon eine Implementierung vorhanden ist, auch Modelle die zur Entwicklung verwendet werden zur Verifizierung beitragen.
\section{TRON Adapter}
Channels, welche sowohl im modellierten Input als auch im System vorkommen stellen die Schnittstellen für den Adapter dar. Wird im Inputmodell ein Channel verwendet, so wird dieser sowohl im modellierten als auch im echten (oder simulierten) System über den Adapter ausgelöst. Asynchron dazu gibt das System den Output zurück an den Adapter, welcher dann mit den Gegebenheiten des Modells verglichen wird. Als built-in Adapter sind der sogenannte TraceAdapter, welcher über stdin/stdout kommuniziert, und der SocketAdapter, welcher zur Kommunikation eine TCP/IP-Verbindung aufbaut, verfügbar. Auch eigene Implementationen werden als dynamische C-Bibliothek ermöglicht. Für ROS bietet sich der SocketAdapter an, da die ROS-interne Kommunikation selbst auf TCP aufsetzt und so auch Übertragbarkeit gewährleistet wird.
\ No newline at end of file
Channels, welche sowohl im modellierten Input als auch im System vorkommen stellen die Schnittstellen für den Adapter dar. Wird im Inputmodell ein Channel verwendet, so wird dieser sowohl im modellierten als auch im echten (oder simulierten) System über den Adapter ausgelöst. Asynchron dazu gibt das System den Output zurück an den Adapter, welcher dann mit den Gegebenheiten des Modells verglichen wird. Als built-in Adapter sind der sogenannte TraceAdapter, welcher über stdin/stdout kommuniziert, und der SocketAdapter, welcher zur Kommunikation eine TCP/IP-Verbindung aufbaut, verfügbar. Auch eigene Implementationen werden als dynamische C-Bibliothek ermöglicht. Für ROS bietet sich der SocketAdapter an, da die ROS-interne Kommunikation selbst auf TCP aufsetzt und so auch Übertragbarkeit gewährleistet wird. In \cite{Gummel2018} wird eine Erweiterung von TRON namens DTRON verwendet, um TRON für verteilte Systeme zu ermöglichen und mehrere ausgeführte Instanzen zugleich zu überprüfen. Diese Erweiterung ist zum aktuellen Zeitpunkt jedoch nicht verfügbar. Um den Adapter an da ROS-System anzuknüpfen, wird ein ROS-Node geschrieben, welcher die Pakete des Adapters annimmt und intern über die ROS Topics an das System weitergibt. Diese Übersetzung kann potentiell generisch implementiert werden, sodass zukünftig für ROS-Projekte beispielsweise nur eine Konfigurationsdatei erforderlich ist. Um die Umgebung in der Simulation auch für TRON verfügbar zu machen, müssen die dafür vorhandenen Daten folglich auch über ein ROS Topic im System veröffentlicht und dann durch den Adapter weitergereicht werden. Im Leitfaden zu TRON~\cite{TronManual} sind die verwendeten Pakete beschrieben und werden im Folgenden in den Kontext eingeordnet und erläutert wie diese verwendet werden.
\subsection{Adapter-ROS-Node}
\subsubsection{Konfigurierungsphase}
Zunächst wird der SocketAdapter auf eine eingehende Verbindung warten. Folglich werden Konfigurationsdaten ausgetauscht. Strings werden dabei durch ein Byte mit der Länge des Strings gefolgt von dieser Anzahl an Bytes repräsentiert. Als erstes werden die verschiedenen Channel als Input beziehungsweise Output deklariert. Dazu wird ein Paket mit dem ersten Byte 1 beziehungsweise 2 und dem Namen des jeweiligen Channels im Uppaal Modell versendet. Als Antwort empfängt der Node einen 32-Bit Integer, der die ab diesem Zeitpunkt für diesen Channel genutzte ID widerspiegelt. Ist dieser kleiner oder gleich 0, so trat ein Fehler auf. Die Fehlermeldung kann dann mittels eines Pakets ermittelt werden (erstes Byte 64, dann Fehlercode). Nach erhalten der Channel IDs werden diese genutzt um die Namen der Variablen im Uppaal Modell den Channels zuzuordnen. Als letzter Schritt der Konfigurierungsphase werden mittels der Codes 5 und 6 die Zeiteinheiten sowie der Timeout zum Beenden des Tests gesetzt. \cref{konzept:tron_konfigurierung} skizziert den fehlerfreien Ablauf dieser Phase. Für Output-Channel müssen die dargestellten Bytecodes 1 und 3 durch 2 und 4 ersetzt werden.
\begin{figure}[h]
\centering
\includegraphics[scale=.6]{./tron_konfigurierung.png}
\caption{Fehlerfreier Ablauf der Konfigurierung von TRON}
\label{konzept:tron_konfigurierung}
\end{figure}
\subsubsection{Ausführung}
Nach erfolgreicher Konfiguration sendet der Node ein Byte mit dem Wert 127 um den Start des Tests anzufragen, als Antwort erhält er ein Byte mit dem Wert 0. Folglich werden Inputs und Outputs ausgetauscht, dabei bestehen die ersten 4 Byte der Nachricht aus den Channel Identifiern, worauf 2 Byte mit der Anzahl an verknüpften Variablen und schließlich die Variablen (je 4 Byte) folgen. Diese müssen dann innerhalb der ROS-Topics verbreitet werden. Als Antwort wird von beiden Seiten eine Bestätigung zurückgesendet, Inputs und Outputs können jedoch asynchron übertragen werden.
\ No newline at end of file
......@@ -84,8 +84,7 @@
\institute{Institut für Software- und Multimediatechnik}
\chair{Lehrstuhl für Softwaretechnologie}
\title{%
Entwicklung eines optimalen Verfahrens zur Eroberung des
Geldspeichers in Entenhausen
Systematisches Testen von Robotiksystemen
}
%% for a bachelor thesis
......@@ -93,29 +92,30 @@
%\graduation[B.Sc.]{Bachelor of Science}
% for a master thesis
\thesis{master}
\graduation[M.Sc.]{Master of Science}
\thesis{Bachelor}
\graduation[B.Sc.]{Bachelor of Science}
% for a diploma thesis
%\thesis{diploma}
%\graduation[Dipl.Inf.]{Diplom-Informatiker}
\author{Mickey Mouse}
\emailaddress[]{mickey.mouse@tu-dresden.de}
\matriculationnumber{12345678}
\matriculationyear{2016}
\dateofbirth{1.1.1990}
\author{Christoph Schröter}
\emailaddress[]{christoph.schroeter1@mailbox.tu-dresden.de}
\matriculationnumber{4814962}
\matriculationyear{2018}
\dateofbirth{29.6.1999}
\placeofbirth{Dresden}
%\discipline{Distributed Systems Engineering}
\course{Distributed Systems Engineering}
\course{Informatik}
\supervisor{%
Dipl.-Inf. ABC XYZ%
\and Dr. Sebastian Götz%
Dipl.-Inf. Sebastian Ebert%
\and Dipl.-Inf. Johanney Mey
\and Dr.-Ing. Sebastian Götz%
}
\professor{Prof. Dr. rer. nat habil. Uwe Aßmann}
\date{10.10.2018}
\date{15.8.2021}
\maketitle
\newpage
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment