|
| 1 | +<!-- |
| 2 | +
|
| 3 | +author: Sebastian Zug & Georg Jäger |
| 4 | + |
| 5 | +version: 0.1.3 |
| 6 | +language: de |
| 7 | +narrator: Deutsch Female |
| 8 | +
|
| 9 | +import: https://raw.githubusercontent.com/TUBAF-IfI-LiaScript/VL_SoftwareprojektRobotik/main/config.md |
| 10 | + |
| 11 | +--> |
| 12 | + |
| 13 | +[](https://liascript.github.io/course/?https://raw.githubusercontent.com/TUBAF-IfI-LiaScript/VL_SoftwareprojektRobotik/master/00_Einfuehrung.md#1) |
| 14 | + |
| 15 | +# Einführung |
| 16 | + |
| 17 | +| Parameter | Kursinformationen | |
| 18 | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
| 19 | +| **Veranstaltung:** | @config.lecture | |
| 20 | +| **Semester** | @config.semester | |
| 21 | +| **Hochschule:** | `Technische Universität Freiberg` | |
| 22 | +| **Inhalte:** | `Abgrenzung und einordnung` | |
| 23 | +| **Link auf GitHub:** | [https://github.com/TUBAF-IfI-LiaScript/VL_SoftwareprojektRobotik/blob/master/00_Einfuehrung.md](https://github.com/TUBAF-IfI-LiaScript/VL_SoftwareprojektRobotik/blob/master/00_Einfuehrung.md) | |
| 24 | +| **Autoren** | @author | |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +-------------------------------------------------------------------------------- |
| 29 | + |
| 30 | +## Ausgangspunkt |
| 31 | + |
| 32 | + |
| 33 | + {{0-1}} |
| 34 | +****************************************** |
| 35 | + |
| 36 | +**Wie weit waren wir noch gekommen ... ein Rückblick auf die Veranstaltung Softwareentwicklung?** |
| 37 | + |
| 38 | +Ausgehend von der Einführung in C# haben wir uns mit: |
| 39 | + |
| 40 | ++ den Grundlagen der Objektorientierten Programmierung |
| 41 | ++ der Modellierung von konkreten Anwendungen |
| 42 | ++ der Koordination des Entwicklungsprozesses - Testen von Software, Versionsmanagement |
| 43 | ++ einer Einführung in die nebenläufige Programmierung |
| 44 | + |
| 45 | +beschäftigt. |
| 46 | + |
| 47 | +****************************************** |
| 48 | + |
| 49 | + {{1-2}} |
| 50 | +****************************************** |
| 51 | + |
| 52 | +**Warum sollten wir uns nun mit einer weiteren Programmiersprache beschäftigen? Welche Möglichkeiten eröffnen sich draus?** |
| 53 | + |
| 54 | +| Merkmal | **C#** | **C++** | **Python** | |
| 55 | +|-----------------------------|---------------------------------------------|--------------------------------------------|-----------------------------------------------| |
| 56 | +| **Typisierung** | Statisch typisiert | Statisch typisiert | Dynamisch typisiert | |
| 57 | +| **Syntax** | Einfacher als C++, strenger als Python | Komplex und streng | Sehr einfach und lesbar | |
| 58 | +| **Kompilierung** | Kompiliert in Intermediate Language (IL), läuft auf der .NET-Plattform | Direkt in Maschinencode (plattformabhängig)| Interpretiert, keine Kompilierung notwendig | |
| 59 | +| **Leistung** | Hoch, aber etwas langsamer als C++ | Sehr hoch, direkte Hardwarezugriffe | Langsamer als C++ und C#, aber gut für Prototyping | |
| 60 | +| **Speicherverwaltung** | Automatisch (Garbage Collection) | Manuell (mit `new` und `delete`) | Automatisch (Garbage Collection) | |
| 61 | +| **Plattform** | Primär für Windows, .NET Core erlaubt Cross-Platform | Plattformabhängig, muss neu kompiliert werden | Plattformunabhängig (Python-Interpreter erforderlich) | |
| 62 | +| **Anwendungsbereiche** | Desktop-, Web- und Unternehmensanwendungen | Systemprogrammierung, Spiele, Echtzeitanwendungen | Webentwicklung, Datenanalyse, KI, Skripting | |
| 63 | +| **Leistungsoptimierung** | Möglich, aber eingeschränkter als C++ | Hohe Optimierung durch direkten Speicherzugriff | Eingeschränkte Leistung, eher für hohe Entwicklungsproduktivität geeignet | |
| 64 | +| **Bibliotheken** | Umfassende .NET-Bibliotheken | Große Auswahl, besonders für Systeme nahe an der Hardware | Sehr umfangreich, insbesondere für Datenanalyse, KI, Webentwicklung | |
| 65 | +| **Speicherzugriff** | Abstrakt, wenig direkte Speicherverwaltung | Direkter Speicherzugriff (Zeiger, Referenzen) | Keine direkte Speicherverwaltung | |
| 66 | +| **Lernkurve** | Moderat | Steil, vor allem wegen Speicherverwaltung | Einfach, oft als Einstiegssprache verwendet | |
| 67 | +| **Parallelität/Multithreading**| Unterstützt durch das .NET Framework | Komplexere Implementierung, aber möglich | Unterstützt, jedoch durch den GIL (Global Interpreter Lock) eingeschränkt | |
| 68 | +| **Garbage Collection** | Ja | Nein | Ja | |
| 69 | +| **OOP-Unterstützung** | Vollständig objektorientiert | Unterstützt OOP, aber auch prozedural | Vollständig objektorientiert, aber flexibel | |
| 70 | +| **Echtzeitanwendungen** | Weniger geeignet | Sehr gut geeignet | Selten verwendet | |
| 71 | + |
| 72 | +****************************************** |
| 73 | + |
| 74 | + {{2-3}} |
| 75 | +****************************************** |
| 76 | + |
| 77 | +**Worin unterscheidet sich diese Projektarbeit von unserem Softwareentwicklungsprojekt** |
| 78 | + |
| 79 | ++ Teamgröße und Koordinationsaufwand (!) |
| 80 | ++ Laufzeit des Projektes |
| 81 | ++ Komplexität der Aufgaben |
| 82 | ++ ... |
| 83 | + |
| 84 | +****************************************** |
| 85 | + |
| 86 | +## Einordnung und Abgrenzung |
| 87 | + |
| 88 | +> A robot is a machine—especially one programmable by a computer—capable of carrying out a complex series of actions automatically. (Definition of `robot`. Oxford English Dictionary) |
| 89 | +
|
| 90 | + von 1921") |
| 91 | + |
| 92 | +### Unterscheidung |
| 93 | + |
| 94 | +**Welche Robotersysteme kommen in Ihren Unternehmen vor?** |
| 95 | + |
| 96 | +<!-- data-type="none" --> |
| 97 | +| **Kriterium** | **Optionen** | |
| 98 | +| ---------------------------- | ------------------------------------------------------------- | |
| 99 | +| **Art der Steuerung** | <span style="color:blue">autonom</span>, teleoperiert, hybrid | |
| 100 | +| **Bewegungsfähigkeit** | stationär, <span style="color:blue">mobil</span> | |
| 101 | +| **Anwendungsbereich** | Industrie, Verkehr, Medizin ... | |
| 102 | +| **Erscheinung** | Humanoid, Nicht-humanoid | |
| 103 | +| **Energieversorgung** | Autark, Batterien, Kabelgebunden | |
| 104 | +| **Interaktionsfähigkeit** | Kooperativ, Isoliert | |
| 105 | +| **Komplexität der Umgebung** | Niedrig, Hoch | |
| 106 | +| **Sensorik und Wahrnehmung** | Einfach, <span style="color:red">Komplex</span> | |
| 107 | +| **Größe** | Mikroroboter, Makroroboter | |
| 108 | +| ... | ... | |
| 109 | + |
| 110 | + |
| 111 | +### Bedeutung |
| 112 | + |
| 113 | +??[IFrame](https://books.google.com/ngrams/graph?content=Autonomous+Vehicle%2CAutonomous+Robot&year_start=1900&year_end=2022&corpus=en&smoothing=3 "Ngram Analyse der Begriffe Autonomous Vehicle und Autonomous Robot") |
| 114 | + |
| 115 | +??[IFrame](https://books.google.com/ngrams/graph?content=artificial+intelligence%2Crobot%2CMachine+Learning%2C+deep+learning&year_start=1900&year_end=2022&corpus=en&smoothing=3 "Ngram Analyse der Begriffe Artificial Intelligence, Robot, Machine Learning und Deep Learning") |
| 116 | + |
| 117 | +## Herausforderungen bei der Umsetzung |
| 118 | + |
| 119 | +Welche technologischen Herausforderungen gilt es bei der Umsetzung von mobilen Robotersystemen zu meistern? |
| 120 | + |
| 121 | ++ **Technologische Herausforderungen** |
| 122 | + |
| 123 | + - Robuste, hinreichend präzise Positionierung |
| 124 | + - Umgebungskartierung (SLAM) |
| 125 | + - Hindernisidentifikation und - umgehung |
| 126 | + - Echtzeit-Umsetzung von Teilverhalten |
| 127 | + - Energieeffizienz |
| 128 | + - veränderliche Kommunikationsbedingungen |
| 129 | + - ... |
| 130 | + |
| 131 | ++ **Wirtschaftliche Herausforderungen** |
| 132 | + |
| 133 | + - Wirtschaftlichkeit |
| 134 | + - Marktreife |
| 135 | + - ... |
| 136 | + |
| 137 | ++ **Soziale und rechtliche Herausforderungen** |
| 138 | + |
| 139 | + - Sicherheitsanforderungen |
| 140 | + - Regulatorische Rahmenbedingungen |
| 141 | + - Ethik und Datenschutz |
| 142 | + - Arbeitsplatzverdrängung |
| 143 | + - ... |
| 144 | + |
| 145 | +> Welche dieser Probleme sehen Sie als relevant bei den zwei Szenarien Lieferroboter und Aquatischer Roboter? |
| 146 | +
|
| 147 | + |
| 148 | + |
| 149 | + |
| 150 | +## Ebenen eines Robotersystems / Teilkomponenten |
| 151 | + |
| 152 | + {{0-1}} |
| 153 | +************************************************* |
| 154 | + |
| 155 | +```ascii |
| 156 | + Statusmeldungen |
| 157 | + Nutzereingaben ^ |
| 158 | + | | |
| 159 | +Befehle v | |
| 160 | + +-----------------------+ |
| 161 | + | Handlungsplanung | "$Strategie $" |
| 162 | + +-----------------------+ |
| 163 | + | ^ | | | Folge von Aktionen |
| 164 | + v | v v v |
| 165 | + +-----------------------+ |
| 166 | + | Ausführung | "$Taktik$ " |
| 167 | + +-----------------------+ |
| 168 | + ^ | | | Geplante Trajektorie, |
| 169 | +Status | v v v Verhalten |
| 170 | + +-----------------------+ |
| 171 | + | Reaktive Überwachung | "$Ausführung$ " |
| 172 | + +-----------------------+ |
| 173 | +Sensordaten- ^ ^ ^ | | | Steuerbefehle an den |
| 174 | +erfassung | | | v v v Aktuator |
| 175 | + +----------+ +----------+ |
| 176 | + | Sensoren | | Aktoren | |
| 177 | + +----------+ +----------+ |
| 178 | + ^ | |
| 179 | + | v |
| 180 | + .-----------------------. |
| 181 | + | Umgebung | |
| 182 | + .-----------------------. . |
| 183 | +``` |
| 184 | + |
| 185 | + |
| 186 | + |
| 187 | +************************************************* |
| 188 | + |
| 189 | + {{1-2}} |
| 190 | +************************************************* |
| 191 | + |
| 192 | +```ascii |
| 193 | + Statusmeldungen |
| 194 | + Nutzereingaben ^ |
| 195 | + | | Kommunikation, Nutzerschnittstellen |
| 196 | +Befehle v | |
| 197 | + +-----------------------+ |
| 198 | + | Handlungsplanung | "$Strategie $" Verhaltensmodell |
| 199 | + +-----------------------+ |
| 200 | + | ^ | | | Folge von Aktionen |
| 201 | + v | v v v |
| 202 | + +-----------------------+ |
| 203 | + | Ausführung | "$Taktik$ " Weltmodell, Handungsmuster Kontexterkennung |
| 204 | + +-----------------------+ |
| 205 | + ^ | | | Geplante Trajektorie, |
| 206 | +Status | v v v Verhalten |
| 207 | + +-----------------------+ |
| 208 | + | Reaktive Überwachung | "$Ausführung$ " Regelung, Energiemanagement |
| 209 | + +-----------------------+ Notaus-Erkennung |
| 210 | +Sensordaten- ^ ^ ^ | | | Steuerbefehle an den |
| 211 | +erfassung | | | v v v Aktuator |
| 212 | + +----------+ +----------+ |
| 213 | + | Sensoren | | Aktoren | Hardwaretreiber |
| 214 | + +----------+ +----------+ |
| 215 | + | | |
| 216 | + v v |
| 217 | + .-----------------------. |
| 218 | + | Umgebung | |
| 219 | + .-----------------------. . |
| 220 | +``` |
| 221 | + |
| 222 | + |
| 223 | + |
| 224 | +> Wer soll das denn alles implementieren? |
| 225 | +
|
| 226 | +************************************************* |
| 227 | + |
| 228 | + |
| 229 | + {{2-3}} |
| 230 | +******************************************************************************** |
| 231 | + |
| 232 | +<!-- width="80%" --> |
| 233 | +Comic auf der Webseite der Firma Willow Garage, das die individuellen Frameworks |
| 234 | +für die Robotikentwicklung adressiert. [^2] |
| 235 | + |
| 236 | +[^2]: Willow Garage, http://www.willowgarage.com/blog/2010/04/27/reinventing-wheel, 2010 |
| 237 | + |
| 238 | +******************************************************************************** |
0 commit comments