Offiziell ist der Simulator nur für die Windows Versionen 2000, XP, VISTA und Windows 7 verfügbar. Letztes Jahr lief das ganze auch für Windows 8. Anhand des Feedbacks mussten wir feststellen, dass der Simulator unter Windows 10 nicht zum Laufen gebracht werden kann (bzw. die mit dem Simulator kommunizierenden Software).
Wir empfehlen als einfachste Lösung einen Rechner mit Windows 7 Version als Entwicklungsplattform zu nutzen. Falls dies nicht möglich ist besteht die Möglichkeit das ganze in einer virtuellen Maschine zu entwickeln. Wenn es schnell gehen soll, dann stellen Sie sich diese selber zusammen. Ansonsten arbeiten wir gerade daran eine virtuelle Maschine zusammenzustellen, die Sie unter Oracle Virtual Box laufen lassen können.Dies wird aber noch bis morgen Zeit in anspruch nehmen.
Dienstag, 12. Juli 2016
Freitag, 8. Juli 2016
Anpassung der Klasse mod.robot.Robot
Die Klasse mod.robot.Robot enthielt bis jetzt noch einen Fehler, sodass z.B. mit dem Bumper nicht wie in der Projektbeschreibung dargestellt umgegangen werden konnte.
Dies sollte jetzt behoben worden sein. Dazu können die Projekte einfach nochmal neu importiert werden oder im vorhandenen Projekt die Bibliothek modii2016robot.jar im Ordner Mod2Studen/lib durch die in der .zip-Datei vorhandene Bibliothek ersetzt werden.
Dies sollte jetzt behoben worden sein. Dazu können die Projekte einfach nochmal neu importiert werden oder im vorhandenen Projekt die Bibliothek modii2016robot.jar im Ordner Mod2Studen/lib durch die in der .zip-Datei vorhandene Bibliothek ersetzt werden.
Donnerstag, 7. Juli 2016
Umgang mit dem TaxiAppContainer
Aufgrund einer Anfrage wollte ich noch einmal die TaxiApp Komponente näher erläutern:
Die TaxiApp soll nicht von Ihnen modelliert bzw. realisiert werden, sie wird von uns gestellt. Unsere Komponente stellt eine AppContainer Instanz zur Verfügung (die dem IAppContainer-Interface genügt), von der sie wiederum eine Liste von TaxiApp Instanzen bekommen, die dem ITaxiApp-Interface genügen. Dort können Sie jeweils eine Output Instanz bekommen, an der Ausgaben an die App gemacht werden und einen Handler registrieren, der die Eingaben der Apps verwaltet (also für jede App einen Handler). Instanziierungen durch Ihre Modellierung von von uns gegebenen Interfaces sind nur für die verschiedenen Handler nötig. Alle anderen Instanzen sollten Sie durch entsprechende Methodenaufrufe bekommen.
Die TaxiApp soll nicht von Ihnen modelliert bzw. realisiert werden, sie wird von uns gestellt. Unsere Komponente stellt eine AppContainer Instanz zur Verfügung (die dem IAppContainer-Interface genügt), von der sie wiederum eine Liste von TaxiApp Instanzen bekommen, die dem ITaxiApp-Interface genügen. Dort können Sie jeweils eine Output Instanz bekommen, an der Ausgaben an die App gemacht werden und einen Handler registrieren, der die Eingaben der Apps verwaltet (also für jede App einen Handler). Instanziierungen durch Ihre Modellierung von von uns gegebenen Interfaces sind nur für die verschiedenen Handler nötig. Alle anderen Instanzen sollten Sie durch entsprechende Methodenaufrufe bekommen.
Mittwoch, 6. Juli 2016
Aktualisierte Version der Bewertungskriterien
Im Materialienordner liegt ab sofort eine aktualisierte Version der Bewertungskriterien bereit.
Montag, 4. Juli 2016
Implementierungsframework steht bereit
Ab sofort liegt im Materialienordner alles Notwendige für den Implementierungsteil bereit. Ein Word-Dokument erklärt die notwendigen Schritte zur Installation und Details der zu erstellenden Implementierung
Donnerstag, 23. Juni 2016
Roboterunfälle
Kann angenommen werden, dass sowas wie ein ADAC-Service-Vertrag abgeschlossen wurde, der versichert, dass Roboter innerhalb einer festen Zeit nach einem Unfall repariert werden? Können wir einfach nach einer festen Zeit weiterfahren?
Dies ist eine weitere Möglichkeit, die Sie aber mit einer entsprechend dokumentierten Annahme beschreiben müssen. Zum Thema Bumper wurde ja schon in http://hpimod2016.blogspot.de/2016/05/zusammengestossene-roboter.html diskutiert.
Dies ist eine weitere Möglichkeit, die Sie aber mit einer entsprechend dokumentierten Annahme beschreiben müssen. Zum Thema Bumper wurde ja schon in http://hpimod2016.blogspot.de/2016/05/zusammengestossene-roboter.html diskutiert.
Verhältnis der Komponenten NetworkAccess und Robot
Ist die Komponente NetworkAccess Teil der Komponente Robot? Oder sind die komplett getrennt?
Dies sind tatsächlich komplett getrennt.
Dies sind tatsächlich komplett getrennt.
Freitag, 17. Juni 2016
Batterieladung
Kann davon ausgegangen werden, dass alle Roboter beim initialen Start des
Systems mit einer vollen Batterieladung ausgestattet sind?
Ja. Sollte aber vermerkt werden als Annahme.
Ja. Sollte aber vermerkt werden als Annahme.
Vorlesungstermine
Für die verbliebene Vorlesungszeit gelten folgende Termine:
22.6: Keine Vorlesung
24.6: Vorlesung
29.6: Keine Vorlesung
01.7: Keine Vorlesung
06.7: Keine Vorlesung
08.7: Keine Vorlesung
13.7: Vorlesung (Vorträge)
15.7: Vorlesung (Vorträge)
20.7: Keine Vorlesung
22.7: Vorlesung (Turnier)
22.6: Keine Vorlesung
24.6: Vorlesung
29.6: Keine Vorlesung
01.7: Keine Vorlesung
06.7: Keine Vorlesung
08.7: Keine Vorlesung
13.7: Vorlesung (Vorträge)
15.7: Vorlesung (Vorträge)
20.7: Keine Vorlesung
22.7: Vorlesung (Turnier)
Donnerstag, 16. Juni 2016
Semantik taxiArrived(pos : Position)
Wofür ist die Methode taxiArrived(..) gedacht? Wird so
dem Kunden mitgeteilt, dass das Taxi bei ihm angekommen ist oder dass
die Taxifahrt beendet ist oder beides?
Ein Aufruf dieser Methode soll über die Ankunft beim Kunden unterrichten.
Für das Ende der Fahrt können Sie davon ausgehen, dass sobald das Vehikel am Ziel angekommen ist, der Kunde das Taxi verlassen hat.
Ein Aufruf dieser Methode soll über die Ankunft beim Kunden unterrichten.
Für das Ende der Fahrt können Sie davon ausgehen, dass sobald das Vehikel am Ziel angekommen ist, der Kunde das Taxi verlassen hat.
Mittwoch, 15. Juni 2016
Kleines Update Review-Template
Im Review-Template ist eine Erklärung zum Verhältnis von Walkthrough und Identifizierten Punkten hinzugekommen.
Dienstag, 14. Juni 2016
Fehler in der Projektbeschreibung: IDrive
In der IDrive Komponente sind die Konstanten für die Geschwindigkeiten
private. Ist das falsch vermerkt oder können wir davon ausgehen, dass
wir getter und setter Methoden haben?
Tatsächlich sind die Konstanten als öffentlich anzunehmen. Dies wird bald möglichst korrigiert.
Tatsächlich sind die Konstanten als öffentlich anzunehmen. Dies wird bald möglichst korrigiert.
Synchrone Kommunikation
Ist die Latenz klein genug, sodass es akzeptabel ist, Request-Response-Muster übers Netzwerk synchron zu implementieren?
Wenn ich die Frage richtig verstanden habe, dann ist die Antwort: Nein.
Wenn ich die Frage richtig verstanden habe, dann ist die Antwort: Nein.
Zuverlässigkeit der Kommunikation
Dürfen wir messages als zuverlässig annehmen? (Verbindung immer herstellbar, Reihenfolge bleibt erhalten, Latenz ist klein)
Hier dürfen Sie Annahmen treffen (müssen dokumentiert sein) und es entsprechend modellieren.
Hier dürfen Sie Annahmen treffen (müssen dokumentiert sein) und es entsprechend modellieren.
Kommunikation und Anzahl an Robotern
Ist dem Server in einer Variable bekannt, wie viele Roboter es gibt, oder soll er einfach eine bestimmte Zeit warten, damit sich alle Roboter registrieren können, und dann starten?
Es kann davon ausgegangen werden, dass alle Netzteilnehmer registriert sind bevor etwas von Ihnen modelliertes ausgeführt wird.
Es kann davon ausgegangen werden, dass alle Netzteilnehmer registriert sind bevor etwas von Ihnen modelliertes ausgeführt wird.
Kommunikation: MessageIDs
Sollen wir die messageIds für die Roboter und den Server selbst vergeben? Ist es ok, wenn die Roboter ihre IDs anhand der Startposition generieren und sich damit dann beim Server registrieren? Können wir davon ausgehen, dass erst der Server und dann (innerhalb von z. B. einer Minute) alle Robots angeschaltet werden?
Die MessageIDs werden automatisch vergeben. Entsprechend ist das Interface IWlanAdapter mit passenden Methoden ausgestattet.
Die MessageIDs werden automatisch vergeben. Entsprechend ist das Interface IWlanAdapter mit passenden Methoden ausgestattet.
IRSensorDistance
Was ist die genaue Bedeutung von IRSensorDistance.position() : int und positionDegree() : float?
Bei position() handelt es sich um einen von neun Werten, der für die Position des Sensors am Roboter steht. positionDegree() liefert die Position des entsprechenden Sensors in Grad zur Vorne Position des Roboters
Bei position() handelt es sich um einen von neun Werten, der für die Position des Sensors am Roboter steht. positionDegree() liefert die Position des entsprechenden Sensors in Grad zur Vorne Position des Roboters
Rotationsparameter der drive-Methoden
Passiert Rotation um beliebige Winkel augenblicklich? (Falls nicht, wann ist sie fertig / wie können wir das feststellen?)
Genauso wie bei den Parametern der drive-Methoden für das Fahren, handelt es sich bei der Angabe für das Drehen um eine Geschwindigkeitsvorgabe. Im Falle der Drehung allerdings um eine Winkelgeschwindigkeit.
Genauso wie bei den Parametern der drive-Methoden für das Fahren, handelt es sich bei der Angabe für das Drehen um eine Geschwindigkeitsvorgabe. Im Falle der Drehung allerdings um eine Winkelgeschwindigkeit.
Eigenschaften der Methoden drive, driveCautiously
Ist es erlaubt, dass bei IDrive.drive(Cautiously), zwei bzw. drei Argumente gleichzeitig ungleich 0 sind? Ist insbesondere schräges Fahren erlaubt oder Drehung während der Fahrt?
Ja und ja.
Ja und ja.
Organisation Review
Hier nochmal der Plan für wer wen reviewt, an welchem Tag und in welchem Raum (Achtung Gruppe 6 und 2, es gibt jetzt einen Raum und eine Zeit), für alle zu denen es noch nicht durchgedrungen ist.
Das entsprechende Template wird bis morgen bereit stehen und ich werde es am Anfang der Vorlesung kurz vorstellen (<15min).
Reviewer | Gereviewte | Datum | Tag | Zeit | Raum | Abgabe Gereviewte |
5 | 1 | 20.06.2016 | Mo | 09:15 | A-2.1 | 15.06.2016 |
6 | 2 | 20.06.2016 | Mo | 13:30 | A-2.1 | 15.06.2016 |
7 | 3 | 20.06.2016 | Mo | 15:15 | A-1.1 | 15.06.2016 |
9 | 4 | 21.06.2016 | Di | 13:30 | A-1.1 | 16.06.2016 |
1 | 5 | 22.06.2016 | Mi | 09:15 | A-2.1 | 17.06.2016 |
2 | 6 | 22.06.2016 | Mi | 13:30 | A-2.1 | 17.06.2016 |
3 | 7 | 22.06.2016 | Mi | 17:00 | A-2.2 | 17.06.2016 |
4 | 8 | 23.06.2016 | Do | 09:15 | A-2.2 | 20.06.2016 |
8 | 9 | 24.06.2016 | Fr | 11:00 | A-1.2 | 21.06.2016 |
Donnerstag, 9. Juni 2016
Warteschlange für Taxis
Für den Taxi-Betrieb ist von einer Liste von Kunden, die auf ein Taxi
warten, die Rede. Es ist aber nur davon die Rede, dass man
"enttäuschten" Kunden die Anzahl der Wartenden mitteilen soll. Es wird
nicht explizit gesagt, dass wir so eine Liste anlegen, führen
und entsprechend der Listenpositionen die nächsten Taxifahrten vergeben
sollen. Ist dies hier implizit gefordert?
Der Sollzustand beschreibt lediglich, wie sich das System von außen beobachtbar, unter Verwendung der vorhandenen Infrastruktur, verhalten sollte. Wenn Sie das beschriebene Verhalten auch ohne Listen realisieren können, dann können Sie das gerne so umsetzen.
Aus der Beschreibung kann aber schon herausgelesen werden (Interpretation), dass Kunden "gerecht" behandelt werden. Die Anzahl der Wartenden generiert ja schon die Erwartungshaltung, dass ein Kunde sich an einer Position in einer Wartereihenfolge befindet.
Der Sollzustand beschreibt lediglich, wie sich das System von außen beobachtbar, unter Verwendung der vorhandenen Infrastruktur, verhalten sollte. Wenn Sie das beschriebene Verhalten auch ohne Listen realisieren können, dann können Sie das gerne so umsetzen.
Aus der Beschreibung kann aber schon herausgelesen werden (Interpretation), dass Kunden "gerecht" behandelt werden. Die Anzahl der Wartenden generiert ja schon die Erwartungshaltung, dass ein Kunde sich an einer Position in einer Wartereihenfolge befindet.
Mehrfachverwendung des gleichen Interfaces
Ist es in UML möglich, dass mehrere Komponenten ein und das gleiche
Interface, das von einer anderen Komponente angeboten wird, benutzen?
Ja (ist auch in der einschlägigen Literatur nachzulesen).
Ja (ist auch in der einschlägigen Literatur nachzulesen).
Umgang mit Handlern
Wir sind uns immer noch nicht sicher, wie wir mit dem ArrivalHandler
richtig umzugehen haben: Wir dürfen kein zusätzliches von der
Robot-Komponente benötigtes Interface hinzufügen. Ist es denn dann
möglich, aus arrived() heraus über das vom Robot benötigte
Interface IMessageHandler eine Kommunikation mit dem Server anzustoßen?
Ich bin mir nicht ganz sicher, wie das "..dürfen kein zusätzliches ... benötigtes Interface hinzufügen" gemeint ist. Es ist zumindest so, dass Sie von uns eine fertige Komponente bekommen, die die genannten Interfaces auf die genannte Art und Weise anbietet. Wenn Sie zusätzliche Interfaces an unsere Komponente anbinden wollten, dann würden diese schlicht ignoriert werden.
Das bedeutet aber noch lange nicht, dass Sie nicht flexibel beim Umgang mit dem ArrivalHandler sind. Es handelt sich um ein Interface welches Sie implementieren können wie Sie mögen. Fix ist lediglich, dass der Kontrollfluss beim Aufruf von arrived() startet. Innerhalb von der von Ihnen implementierten arrived()-Methode können Sie dann unterschiedliche Strategien verfolgen. Entweder Sie erledigen alles innerhalb des Kontrollflussess der Methode (synchron) oder Sie führen z.B. eine Zustandsänderung herbei, die aus dem Hauptkontrollfluss des Roboters behandelt wird (asynchrone Verarbeitung). Überlegen Sie welche Vor- und Nachteile sich daraus ergeben könnten.
Das Anstoßen der Kommunikation erfolgt übrigens nicht über den IMessageHandler sondern über den IWlanAdapter (send(..)).
Für den IMessageHandler, der ebenfalls von Ihnen realisiert werden muss, gilt das gleiche wie für den ArrivalHandler.
Ich bin mir nicht ganz sicher, wie das "..dürfen kein zusätzliches ... benötigtes Interface hinzufügen" gemeint ist. Es ist zumindest so, dass Sie von uns eine fertige Komponente bekommen, die die genannten Interfaces auf die genannte Art und Weise anbietet. Wenn Sie zusätzliche Interfaces an unsere Komponente anbinden wollten, dann würden diese schlicht ignoriert werden.
Das bedeutet aber noch lange nicht, dass Sie nicht flexibel beim Umgang mit dem ArrivalHandler sind. Es handelt sich um ein Interface welches Sie implementieren können wie Sie mögen. Fix ist lediglich, dass der Kontrollfluss beim Aufruf von arrived() startet. Innerhalb von der von Ihnen implementierten arrived()-Methode können Sie dann unterschiedliche Strategien verfolgen. Entweder Sie erledigen alles innerhalb des Kontrollflussess der Methode (synchron) oder Sie führen z.B. eine Zustandsänderung herbei, die aus dem Hauptkontrollfluss des Roboters behandelt wird (asynchrone Verarbeitung). Überlegen Sie welche Vor- und Nachteile sich daraus ergeben könnten.
Das Anstoßen der Kommunikation erfolgt übrigens nicht über den IMessageHandler sondern über den IWlanAdapter (send(..)).
Für den IMessageHandler, der ebenfalls von Ihnen realisiert werden muss, gilt das gleiche wie für den ArrivalHandler.
Donnerstag, 2. Juni 2016
Vorlesung nochmals verschoben.
Die Vorlesung zur Reflexion des Entwurfs musste leider noch einmal verschoben werden. Sie findet jetzt am Mittwoch den 8.6 um 13:30 im Hörsaal 2 statt (Raumänderung beachten).
Mittwoch, 1. Juni 2016
Von Kunden blockierte Taxis
Kunden können per ITaxiAppUserOutput.reportTaxiAvailable() darüber informiert werden, dass ein Taxi bereit steht. Was passiert, wenn der Kunde sich sehr viel Zeit lässt bis er über confirmOrder() das bereitgestellte Taxi bestätigt?
Es steht Ihnen offen hier verschiedene Wege zu gehen. Sie könnten zum Beispiel davon ausgehen, dass der Kunde sich schnell genug meldet oder sie warten eine bestimmte Zeit und wenn sich der Kunde immer noch nicht gemeldet hat, dann vergeben sie das Taxi anderweitig. Was machen Sie dann aber wenn der Kunde das Taxi bestätigt?
Die Entscheidung, die sie hier treffen ist keine Entscheidung über richtig oder falsch, es gibt einfach verschiedene Möglichkeiten die den skizzierten Soll-Zustand realisieren. Wichtig ist, dass Sie getroffen Annahmen dokumentieren. Sie können sich im Grunde genommen regelrecht "austoben". Wie wäre es mit Schwellwerten für die Wartezeit die nicht festliegen sondern über die Betriebszeit gelernt werden? Achten Sie darauf, dass Sie das ganze noch übersichtlich darstellen können. Fangen Sie am besten mit einer einfachen Lösung an. Wenn noch Zeit ist, dann können Sie immer noch Features dazu bauen (eigene Iterationsstufen ausarbeiten).
Es steht Ihnen offen hier verschiedene Wege zu gehen. Sie könnten zum Beispiel davon ausgehen, dass der Kunde sich schnell genug meldet oder sie warten eine bestimmte Zeit und wenn sich der Kunde immer noch nicht gemeldet hat, dann vergeben sie das Taxi anderweitig. Was machen Sie dann aber wenn der Kunde das Taxi bestätigt?
Die Entscheidung, die sie hier treffen ist keine Entscheidung über richtig oder falsch, es gibt einfach verschiedene Möglichkeiten die den skizzierten Soll-Zustand realisieren. Wichtig ist, dass Sie getroffen Annahmen dokumentieren. Sie können sich im Grunde genommen regelrecht "austoben". Wie wäre es mit Schwellwerten für die Wartezeit die nicht festliegen sondern über die Betriebszeit gelernt werden? Achten Sie darauf, dass Sie das ganze noch übersichtlich darstellen können. Fangen Sie am besten mit einer einfachen Lösung an. Wenn noch Zeit ist, dann können Sie immer noch Features dazu bauen (eigene Iterationsstufen ausarbeiten).
Warum mehr als zwei Roboter?
Warum existieren mehr als zwei Roboter in unserem System, wenn immer
nur einer einen Auftrag abarbeiten kann und die anderen dann eventuell
nur rumstehen oder aufladen?
Im Krankenhausszenario wird tatsächlich nur ein Roboter zur Zeit für den Transport eingesetzt. Das bedeutet aber noch lange nicht, dass der soeben für einen Transport eingesetzte Roboter der geeignetste ist einen neuen Transport zu tätigen (eher im Gegenteil, denn wo steht der Roboter bei Auftragsende?). Roboter können ja immer noch fahren und laden während ein Roboter einen Auftrag ausführt. Außerdem werden im Taxiszenario tatsächlich mehrere Aufträge gleichzeitig vergeben.
Im Krankenhausszenario wird tatsächlich nur ein Roboter zur Zeit für den Transport eingesetzt. Das bedeutet aber noch lange nicht, dass der soeben für einen Transport eingesetzte Roboter der geeignetste ist einen neuen Transport zu tätigen (eher im Gegenteil, denn wo steht der Roboter bei Auftragsende?). Roboter können ja immer noch fahren und laden während ein Roboter einen Auftrag ausführt. Außerdem werden im Taxiszenario tatsächlich mehrere Aufträge gleichzeitig vergeben.
Geschäftsprozesse in Geschäftsprozessen
Ist es möglich in Geschäftsprozessen andere Geschäftsprozesse
“aufzurufen” bzw. zu verwenden? Oder widerspricht das einer eventuellen
Forderung, dass alle Geschäftsprozesse auf einer Abstraktionsebene sein
sollen?
Wenn Aktivitätsdiagramme verwendet werden, dann können ganze Geschäftsprozesse einer Aktivität in einem anderen Geschäftsprozess entsprechen. Dies ist eine Modellierungsentscheidung, die Sie treffen können. Hierarchien haben nicht notwendigerweise etwas mit Abstraktionsebenen zu tun.
Wenn Aktivitätsdiagramme verwendet werden, dann können ganze Geschäftsprozesse einer Aktivität in einem anderen Geschäftsprozess entsprechen. Dies ist eine Modellierungsentscheidung, die Sie treffen können. Hierarchien haben nicht notwendigerweise etwas mit Abstraktionsebenen zu tun.
Keine Helfende Person beim Patienten
Was passiert wenn es keine Helfenden beim Patienten gibt?
Es kann davon ausgegangen werden, dass es immer Helfende beim Patienten gibt. Sie können das auch als Annahme vermerken.
Es kann davon ausgegangen werden, dass es immer Helfende beim Patienten gibt. Sie können das auch als Annahme vermerken.
Montag, 30. Mai 2016
Robotino Virtual Machine
Als wir die Robotino-VM ausprobieren wollten, ließ sich die Zip-Datei weder auf Linux noch auf Windows entpacken. Wir vermuten, sie ist beschädigt. Könnte das bitte überprüft werden?
Eine Robotino-VM wurde von uns dieses Semester noch nicht zur Verfügung gestellt.
Eine Robotino-VM wurde von uns dieses Semester noch nicht zur Verfügung gestellt.
Kommunikation
Sollen wie in der Vorstufe Interfaces zwischen Server und Robot verwenden werden, die dann durch
eine Netzwerkbibliothek serialisiert und gemappt werden? Oder wird erwartet, dass wir dieses Mapping selbst (z. B. mit IWlanAdpater) durchführen? Wie weit sollen wir hier abstrahieren? Ist z. B. eine Remote-Call-Bibliothek erlaubt, die die Netzwerkschicht automatisch übernimmt? Wozu benötigen wir dann Message etc.?
Sie sollen die Verwendung des IWlanAdapters und des MessageHandlers modellieren und verdeutlichen wie kommuniziert wird. Haben Sie das modelliert dann können Sie in den anderen Teilen darauf bezug nehmen.
Sie sollen die Verwendung des IWlanAdapters und des MessageHandlers modellieren und verdeutlichen wie kommuniziert wird. Haben Sie das modelliert dann können Sie in den anderen Teilen darauf bezug nehmen.
Zusammengestossene Roboter
Sollen wir bei einem Zusammenstoß davon ausgehen, dass der Roboter kaputt ist und manuelle Wartung
braucht (und somit aus allen folgenden Workflows ausscheidet)? Oder sollen wir (z. B. nach einem Rücksetzen) einfach weiterfahren?
Der Roboter braucht dann manuelle Wartung. Alternativ erreicht das System einen Fehlerzustand (Absturz). Einfach weitermachen wäre zu einfach.
Der Roboter braucht dann manuelle Wartung. Alternativ erreicht das System einen Fehlerzustand (Absturz). Einfach weitermachen wäre zu einfach.
Krankenhausaufträge sequentiell
Gibt es das Interface IHospitalOutput und IHospitalInputHandler für jeden Roboter einmal? Sonst gäbe
es das Problem, dass man nicht weiß, welcher Patient aus welchem Roboter bei Aufruf von IHospitalInputHandler.patientArrived() angekommen ist und somit nicht weiß, welches Vehikel wieder vom Krankenhaus losfahren kann. Das gleiche Problem gibt es mit IHospitalInputHandler.patientOnBoard().
Es gibt immer nur einen Krankentransport auf einmal. Das heisst es wird kein Transport angefragt, bevor der zuletzt ausgelöste nicht schon beendet wurde.
Es gibt immer nur einen Krankentransport auf einmal. Das heisst es wird kein Transport angefragt, bevor der zuletzt ausgelöste nicht schon beendet wurde.
Position
Ist die Klasse Position, die in ITaxiAppUserInputHandler.orderTaxi(source: Position, destination:
Position) verwendet wird, die selbe wie die, die im Roboterpaket definiert ist?
Ja.
Ja.
Verhalten Appcontainer
Liefert IAppContainer.getApps() immer die selben Apps (-> gleiche Anzahl)?
Ja. Wir halten es erstmal einfach.
Ja. Wir halten es erstmal einfach.
Ist die Batterie voll?
Für die Abfrage, ob die Batterie beim Wiederaufladen schon voll ist, gibt es folgende Optionen: (1)
Blockierende Warteschliefe (dann kann allerdings nicht auf Server reagiert werden), (2) Nichtblockierende Schleife in (a) einem zweiten Thread oder (b) per Timer
(3) Wir bekommen ein verbessertes Batterie-Interface mit, was sich über eine Schnittstelle von selbst zurückmeldet. sobald es voll ist.
Das Batterieinterface bleibt so wie es ist. Sie müssen sich dann für eine der Optionen entscheiden. Blockierend ist allerdings keine gute Idee.
(3) Wir bekommen ein verbessertes Batterie-Interface mit, was sich über eine Schnittstelle von selbst zurückmeldet. sobald es voll ist.
Das Batterieinterface bleibt so wie es ist. Sie müssen sich dann für eine der Optionen entscheiden. Blockierend ist allerdings keine gute Idee.
Messages
Wie soll mit einer Message etwas versendet werden, wenn nur IDs enhalten sind?
Für das Versenden werden konkrete Objekte benötigt. Die Klassen dazu dürfen Sie selber modellieren und die dürfen auch eine Payload haben (ja es sind auch verschiedene Implementierungen der Klasse denkbar oder sogar eine Typhierarchie).
Für das Versenden werden konkrete Objekte benötigt. Die Klassen dazu dürfen Sie selber modellieren und die dürfen auch eine Payload haben (ja es sind auch verschiedene Implementierungen der Klasse denkbar oder sogar eine Typhierarchie).
Namensschemainkonsistenzen
ArrivalHandler, Message: Warum beginnen diese im Gegensatz zu allen anderen Interfaces nicht mit
I?
Dafür gibt es keinen spezifischen Grund.
Dafür gibt es keinen spezifischen Grund.
Krankenhausposition
Woher bekommen wir die Position des Krankenhauses?
Die fehlende Konstante im Dokument wurde nachgetragen, es steht eine aktuallisiert Version im Materialienverzeichnis
Die fehlende Konstante im Dokument wurde nachgetragen, es steht eine aktuallisiert Version im Materialienverzeichnis
Was passiert beim Taxifahren bei Zieleinfahrt
Bei Ankunft des Taxis am Ziel: Teilt der Kunde dem System mit, dass er ausgestiegen ist? Oder können
wir einfach abfahren, sobald wir am Zielort sind?
Einfach abfahren.
Einfach abfahren.
Ladungsverluste
Verliert die Roboterbatterie im Falle der
Inaktivität ebenfalls an Ladung?
Nein, es kann davon ausgeganngen werden, dass der Ladungsverlusst zu vernachlässigen ist.
Nein, es kann davon ausgeganngen werden, dass der Ladungsverlusst zu vernachlässigen ist.
Samstag, 28. Mai 2016
Reichweite Batterie
Dürfen wir davon
ausgehen, dass der zu betreuende Raum so begrenzt ist, dass jeder
Roboter ab einem gewissen Mindestbatteriestand alle Aufträge innerhalb
der Stadt erfolgreich ausführen kann?
Fragestellungen rund um die Reichweite erfordern Annahmen, die gemacht werden müssen, da im Beschreibungsdokument dazu keine Angaben vorhanden sind. Sinnvoll ist z.B. davon auszugehen, dass zurückgelegte Strecke und Batterieverbrauch in einem konstanten Verhältnis stehen (obwohl es realistischer wäre z.B. die Beschleunigung mit einzubeziehen). Zusätzlich kann davon ausgegangen werden, dass "die Stadt der Zukunft" immer noch ein physikalische Ausdehnung hat und dass alle Fahrten innerhalb der Stadt getätigt werden. Außerdem wird die Batterie eine bestimmte Kapazität haben. Wenn jeweils Konstanten definiert werden (müssen erstmal nicht belegt sein), dann ergibt sich die Antwort auf die Frage.
Fragestellungen rund um die Reichweite erfordern Annahmen, die gemacht werden müssen, da im Beschreibungsdokument dazu keine Angaben vorhanden sind. Sinnvoll ist z.B. davon auszugehen, dass zurückgelegte Strecke und Batterieverbrauch in einem konstanten Verhältnis stehen (obwohl es realistischer wäre z.B. die Beschleunigung mit einzubeziehen). Zusätzlich kann davon ausgegangen werden, dass "die Stadt der Zukunft" immer noch ein physikalische Ausdehnung hat und dass alle Fahrten innerhalb der Stadt getätigt werden. Außerdem wird die Batterie eine bestimmte Kapazität haben. Wenn jeweils Konstanten definiert werden (müssen erstmal nicht belegt sein), dann ergibt sich die Antwort auf die Frage.
Mittwoch, 25. Mai 2016
Template Reflektion und Nochmalige Terminverschiebung
Am 1.6 kann die Vorlesung wegen eines Konfliktes mit der Belegung der Hörsäle nicht stattfinden. Deswegen ist er jetzt auf den 3.6 verlegt worden.
Der Abgabetermin des Reflektionsdokumentes bleibt erhalten.
Die Vorlage ist immer noch im Materialienordner, es handelt sich allerdings um ein Powerpoint-Template (ModellierungIIReflexionEntwurfTemplate.pptx). Bitte reichen Sie die Abgabe auch als Powerpointfolien basierend auf diesem Foliensatz ein (nicht als pdf).
Der Abgabetermin des Reflektionsdokumentes bleibt erhalten.
Die Vorlage ist immer noch im Materialienordner, es handelt sich allerdings um ein Powerpoint-Template (ModellierungIIReflexionEntwurfTemplate.pptx). Bitte reichen Sie die Abgabe auch als Powerpointfolien basierend auf diesem Foliensatz ein (nicht als pdf).
Donnerstag, 19. Mai 2016
Leistungserfassung in neuem Gewand
Es steht eine aktualisiert Version der Leistungserfassung auf der Lehrveranstaltungsseite bereit. Sie entspricht inhaltlich den in der Einführungsvorlesung vom 15.4 bereits erläuterten Sachverhalten.
VisualParadigm und kollaboratives Arbeiten
Unter der gewohnten Stelle steht eine neue Version von Visual Paradigm zum Download bereit. Dort kann jetzt auch mit VPository kollaborativ gearbeitet werden.
ArrivalHandler vs. IBumperHandler
Wenn der ArrivalHandler nicht an der Komponente zu sehen ist, warum hat dann aber der IBumperHandler, der ebenfalls einem anderen Interface (IBumper) übergeben wird und damit ja auch unterschiedlich implementiert werden kann, trotzdem an der Komponente Robot eine Schnittstelle?
Hier ist vorgesehen, dass eigentlich immer dieselbe Instanz eines IBumperHandler genutzt wird. Das Ganze ist auch so zu verstehen, dass die Komponente, um zu funktionieren, auf ihre als benötigt modellierten Schnittstellen angewiesen ist. Die Modellierung erzwingt zwar nicht diese Semantik, legt diese aber nahe.
Kommunikation in Iteration0
Aus der Aufgabenstellung für die 0. Iteration wurde nicht ganz klar,
inwiefern wir die Kommunikation als gegeben benutzen dürfen oder sie
eben noch weiter spezifizieren müssen.
In der Tat kann der Server in der Vorstufe direkt Aufrufe an den Roboter tätigen und benötigt dafür auch keine Remote Procedure Calls (die übrigens unter Umständen synchron wären). Die Modellierung der Kommunikation soll erst in den späteren Ausbaustufen erfolgen und dann auch über das WLan Interface gehen.
"In
der Vorstufe kann der Server direkt Aufrufe an den Roboter absetzen,
ohne Nachrichten über das WLan versenden zu müssen.” Heißt das, dass wir
nur das WLAN ignorieren sollen oder gar keine Kommunikation modellieren
müssen und zwischen dem Komponenten quasi Remote Procedure Calls
einsetzen können?
ArrivalHandler kein gefordertes Interface der Komponente Robot?
Im Projektdokument wird das Interface ArrivalHandler im vorgegebenen
Komponentendiagramm an der Komponente Robot nicht angeboten. Wir
würden das gerne als angebotene Schnittstelle in unserem Entwurf
anfügen. Ist das in Ordnung?
Nein, denn die Komponente stellt den ArrivalHandler nicht zur Verfügung. Ebenso benötigt die Komponente auch nicht den ArrivalHandler (wenn schon, der naheliegendere Fall). Vielmehr kann bei jedem Aufruf von driveToPosition(...) ein anderer ArrivalHandler angegeben werden, insofern wäre die Modellierung mit einem geforderten Interface nicht richtig.
Nein, denn die Komponente stellt den ArrivalHandler nicht zur Verfügung. Ebenso benötigt die Komponente auch nicht den ArrivalHandler (wenn schon, der naheliegendere Fall). Vielmehr kann bei jedem Aufruf von driveToPosition(...) ein anderer ArrivalHandler angegeben werden, insofern wäre die Modellierung mit einem geforderten Interface nicht richtig.
ArrivalHandler und Nachrichten
Es hat sich die Frage ergeben, ob auch der im
Grunde vorgegebene ArrivalHandler zu den den in Aufgabe 3 u.a.
zu modellierenden "Nachrichten" gehört, auch wenn ArrivalHandler in
keiner der Operationen genutzt wird, die für eigenen
Schnittstellen definiert wurden?
Mit den Nachrichten sollten Instanzen eines ArrivalHandler eigentlich nicht unbedingt zu tun haben. Dies gilt insbesondere für Iteration 0.
Mit den Nachrichten sollten Instanzen eines ArrivalHandler eigentlich nicht unbedingt zu tun haben. Dies gilt insbesondere für Iteration 0.
Mittwoch, 18. Mai 2016
Verhalten der Methode drive[Cautiously]ToPosition(...)
Wie verhält sich die Methode driveToPosition bzw. driveCautiouslyToPosition?
Ein Aufruf der Methode sorgt dafür, dass sich der Roboter direkt auf die angegebene Zielposition zubewegt. Nach dem Aufruf kehrt die Methode sofort zurück und der Roboter kann andere Dinge erledigen.
Ist der Roboter am Zielpunkt angekommen, dann wird die Methode arrived() des Objektes aufgerufen, welches ArrivalHandler implementiert und welches der driveToPosition Methode übergeben wurde.
Wird nach dem Aufruf von driveToPosition (oder driveCautiouslyToPosition) und vor der Ausführung von arrived() die drive(..), driveCatiously(..), driveToPosition(..) oder driveCautiouslyToPosition(..) Methode aufgerufen, dann wird die ursprüngliche Fahrt abgebrochen und die Methode arrived() wird nicht mehr bezüglich des urprünglichen Ziels aufgerufen.
Ein Aufruf der Methode sorgt dafür, dass sich der Roboter direkt auf die angegebene Zielposition zubewegt. Nach dem Aufruf kehrt die Methode sofort zurück und der Roboter kann andere Dinge erledigen.
Ist der Roboter am Zielpunkt angekommen, dann wird die Methode arrived() des Objektes aufgerufen, welches ArrivalHandler implementiert und welches der driveToPosition Methode übergeben wurde.
Wird nach dem Aufruf von driveToPosition (oder driveCautiouslyToPosition) und vor der Ausführung von arrived() die drive(..), driveCatiously(..), driveToPosition(..) oder driveCautiouslyToPosition(..) Methode aufgerufen, dann wird die ursprüngliche Fahrt abgebrochen und die Methode arrived() wird nicht mehr bezüglich des urprünglichen Ziels aufgerufen.
Klassen in Komponentendiagrammen einfügen mit Visual Paradigm
Im Zuge der Entwurfsphase des Modellierungsprojekts wollte unsere
Gruppe in einem Komponentendiagramm eine Klasse einfügen. Leider bietet
uns VisualParadigm keine Möglichkeit dafür. Wir wissen allerdings aus
der Vorlesung, dass dies syntaktisch korrekt sein
müsste. Was ist zu tun?
Wenn links
die Baumansicht mit den Verschiedenen Diagrammen angezeigt wird, dann kann einfach aus einem Klassendiagramm eine bereits definierte Klasse rüber
in ein Komponentendiagramm gezogen werden. Diese Klassen werden dann auch automatisch von dem Werkzeug konsistent gehalten (wenn etwas an der Originalklasse geändert wird, dann ändert sich die Klasse auch in allen Diagrammen in denen sie auftaucht). Das ist auch für die Interfaces zu empfehlen: Ein Interface kann in ein Komponentendiagramm geschoben werden und dann können die Interfaces von Ports referenziert werden.
Samstag, 14. Mai 2016
Interface Implementierungen
Bei
der Bearbeitung der aktuellen Entwurfsphase kam die
Frage auf, ob wir für alle Interfaces noch implementierende Klassen
modellieren müssen, um diese ansprechen zu können? Dieses Vorgehen würde
dem Konzept der Interfaces in Java entsprechen.
Die kurze Antwort lautet: nein.
Die Projektbeschreibung gibt Komponenten vor, die bestimmte Schnittstellen (Interfaces) anbieten, über die die Funktionalität der Komponente angesprochen werden kann. Dabei handelt es sich um UML und nicht um Java-Schnittstellen. Die Komponente, die diese Schnittstelle umsetzt ist als Black-Box modelliert, die diese Funktionalität bereitstellt. Als Nutzer der Komponente muss man sich keine weiteren Gedanken über die Realisierung machen.
Aber: Die Komponenten bieten nicht nur Schnittstellen an, manche benötigen auch eine Instanz, die eine Schnittstelle realisiert. Hier muss eine andere Komponente diese Schnittstelle bereitstellen und dann ist tatsächlich in der internen Repräsentation der anderen Komponente eine Klasse erforderlich, die diese Realisierung vornimmt (z.B. eine Realisierung für IHospitalInputHandler für die Hospital-Komponente).
Freitag, 13. Mai 2016
Verschiebung der Vorlesung für das Feedback der Reflektion und Vorlesungstermine
Es gibt eine Änderung im Vorlesungsplan:
Die Ursprünglich für den 27.5 vorgesehene Vorlesung, in der Ihre Reflexion für den Entwurf besprochen wird, ist auf den 1.6 verschoben worden. Bitte beachten: es bleibt bei dem Abgabetermin für die Reflexion.
Im Materialienordner befindet sich jetzt auch das Template für die Reflexion.
Vorlesungstermine finden NICHT am 18.5, 20.5, 25.5, 27.5 statt.
Am 1.6 findet die Vorlesung zur Reflexion des Entwurfs statt.
Am 3.6 gibt es KEINE Vorlesung.
Die Ursprünglich für den 27.5 vorgesehene Vorlesung, in der Ihre Reflexion für den Entwurf besprochen wird, ist auf den 1.6 verschoben worden. Bitte beachten: es bleibt bei dem Abgabetermin für die Reflexion.
Im Materialienordner befindet sich jetzt auch das Template für die Reflexion.
Vorlesungstermine finden NICHT am 18.5, 20.5, 25.5, 27.5 statt.
Am 1.6 findet die Vorlesung zur Reflexion des Entwurfs statt.
Am 3.6 gibt es KEINE Vorlesung.
Donnerstag, 12. Mai 2016
Funktionsweise von drive(...) aus IDrive
Wenn drive() aufgerufen wird, wird dann unendlich in die an drive()
durch die Parameter übergebene Richtung gefahren oder fährt der Roboter
nur z.B. 10 Meter weit oder 1 Minute?
Der Aufruf von drive(..) sorgt dafür, das sich der Roboter ab sofort mit den angegebenen Parametern bewegt. Um den Roboter wieder zum Stehen zu bringen ist ein expliziter Aufruf von drive(...) mit auf 0 gesetzten Parametern erforderlich.
Der Aufruf von drive(..) sorgt dafür, das sich der Roboter ab sofort mit den angegebenen Parametern bewegt. Um den Roboter wieder zum Stehen zu bringen ist ein expliziter Aufruf von drive(...) mit auf 0 gesetzten Parametern erforderlich.
Handler für Distanzsensoren?
Darf davon ausgegangen werden, dass es zur Komponente IDistanceSensor
einen Handler gibt, der anzeigt, wenn eine kritische Distanz zu einem
Objekt erreicht wurde, sodass man nicht periodisch IDistanceSensor nach
neuen Distanzdaten abfragen muss?
Die periodische Abfrage ist notwendig, es gibt keinen Handler.
Die periodische Abfrage ist notwendig, es gibt keinen Handler.
Mittwoch, 11. Mai 2016
Kommunikation in der Vorstufe und den Ausbaustufen
In der Aufgabenstellung steht, dass man in der Vorstufe davon ausgehen
kann, dass Robot und Server direkt kommunizieren koennen. Muessen dann
fuer die Ausbaustufen die Dinge aus der Beispielanalyse/Beispielentwurf
uebernommen werden oder kann wieder von der direkten
Kommunikation ausgegangen werden?
In den weiteren Ausbaustufen kann nicht mehr von der direkten Kommunikation ausgegangen werden. Server und Roboter müssen dann Nachrichten über die entsprechenden Interfaces austauschen (siehe auch Vorlesung).
driveToPosition modellieren (wie funktioniert die Methode eigentlich)?
In IDrive ist die Methode
driveToPosition vorhanden.Soll die Funktionalität dieser Methode modelliert werden?
Nein, die Methode ist gegeben und ihre Funktionalität steht auch fest. Als Ergänzung zur Beschreibung gilt folgende Erläuterung: Durch den Aufruf von driveToPositon wird der Roboter dazu veranlasst, zu der angegebenen Position zu fahren. Die Methode ist nicht blockierend, das bedeutet, dass der Roboter z.B. weiter auf Dinge reagieren kann. Das Fahren wird nebenläufig ausgeführt. Die Ankunft des Roboters kann durch den ArrivalHandler, der beim Methodenaufruf übergeben wird, festgestellt werden (callback Methode arrived()).
Die Nutzung des Methodenaufrufs und des Handlers ist hingegen zu modellieren.
Gegebene Interfaces Modellieren?
Frage bzgl. des Entwurfsdokumentes zu den Komponentenschnittstellen (Abschnitt 3): Sollen bereits im IST-Zustand der Aufgabenstellung beschriebene Interfaces noch einmal dort modelliert werden (z.B. IDrive etc.)?
Nein, dies sind lediglich Interfaces auf die im Rahmen der eigenen Modellierung zugegriffen wird. Sie sind ja schon modelliert und könnten lediglich wiedergegeben werden (auch nicht notwendig).
Nein, dies sind lediglich Interfaces auf die im Rahmen der eigenen Modellierung zugegriffen wird. Sie sind ja schon modelliert und könnten lediglich wiedergegeben werden (auch nicht notwendig).
Montag, 9. Mai 2016
Kleine Änderung in der Projektbeschreibung (Hospital)
Es gibt eine kleine Anpassung der Projektbeschreibung. Bisher war es nicht möglich den Handler für Eingaben vom Krankenhaus irgendwo anzumelden, sodass dort ein Aufruf stattfinden kann. Die Hospital-Komponente hat jetzt ein zusätzliches Interface wo dies stattfinden kann.
Diese Änderung betrifft erst Phase 1.
Diese Änderung betrifft erst Phase 1.
Reflexion/Protokoll Abgabe
In welcher Form und wo soll das Protokolldokument abgegeben werden?
Das Protokoll soll auch im GIT-Repository abgelegt werden unter den Namen:
mod2016-gruppe[n]-protokoll-analyse.pdf
und
mod2016-gruppe[n]-protokoll-entwurf.pdf
Das Protokoll soll auch im GIT-Repository abgelegt werden unter den Namen:
mod2016-gruppe[n]-protokoll-analyse.pdf
und
mod2016-gruppe[n]-protokoll-entwurf.pdf
Sonntag, 8. Mai 2016
Sourcecode?
Sollen für die Implementierung nur jar-Dateien abgegeben werden oder auch die Quelldateien?
Die Frage kommt noch ein bisschen früh aber lässt sich jetzt schon beantworten. Erwartet wird eine Abgabe mit Quelldateien, die sich fehlerfrei übersetzen lassen.
Die Frage kommt noch ein bisschen früh aber lässt sich jetzt schon beantworten. Erwartet wird eine Abgabe mit Quelldateien, die sich fehlerfrei übersetzen lassen.
Freitag, 6. Mai 2016
Englisch?
Können wir die Abgabe auch komplett in Englisch machen?
Abgaben in Englisch können gerne gemacht werden. ABER: es sollte keinen Mehraufwandt bedeuten. Wenn es gegen Ende des Projektes enger mit der Zeit wird ist es wichtiger, dass der Inhalt stimmt.
Abgaben in Englisch können gerne gemacht werden. ABER: es sollte keinen Mehraufwandt bedeuten. Wenn es gegen Ende des Projektes enger mit der Zeit wird ist es wichtiger, dass der Inhalt stimmt.
Donnerstag, 5. Mai 2016
Systemgrenze der Vorstufe (Analyse)
Laut Aufgabenstellung gibt es explizit ein System Roboter, dass zu
modellieren ist - bedeutet das, dass der Server definitiv nicht Teil des
Systems ist (also außerhalb der Systemgrenzen)?
Für die Vorstufe ist nur das System Roboter zu modellieren, für die folgenden Stufen erweitert sich die Systemgrenze.
Für die Vorstufe ist nur das System Roboter zu modellieren, für die folgenden Stufen erweitert sich die Systemgrenze.
Erklärung zum Analyse-Template
Punkt 4.1 "Systemumgebung" - was genau verteht man darunter? Oder
bedeutet Systemumgebung Hardware- und Softwarumgebung gemeinsam?
Es handelt sich hier um den übergeordneten Abschnitt der folgenden drei Unterabschnitte: Hardwareumgebung, Softwareumgebung und Ressourcenübersicht. Zwischen 4.1 und 4.1.1 wird also lediglich einleitender Text erwartet.
Es handelt sich hier um den übergeordneten Abschnitt der folgenden drei Unterabschnitte: Hardwareumgebung, Softwareumgebung und Ressourcenübersicht. Zwischen 4.1 und 4.1.1 wird also lediglich einleitender Text erwartet.
Wiederverwendung von Grafiken
Dürfen wir für die Vorstufe Grafiken aus dem Projektdokument wiederverwenden?
Gerne dürfen Sie Grafiken aus dem Projektdokument wiederverwenden. Wichtig ist, dass Sie für Ihr Dokument einen Mehrwert bedeuten.
Gerne dürfen Sie Grafiken aus dem Projektdokument wiederverwenden. Wichtig ist, dass Sie für Ihr Dokument einen Mehrwert bedeuten.
Latex Template Analyse
Gibt es ein Latex-Template?
Ist im Materialienordner verfügbar. Solange Sie die inhaltlichen Vorgaben des Templates einhalten (egal ob Word oder Latex), können Sie immer auch mit ihrem eigenen Latex-Template arbeiten.
Ist im Materialienordner verfügbar. Solange Sie die inhaltlichen Vorgaben des Templates einhalten (egal ob Word oder Latex), können Sie immer auch mit ihrem eigenen Latex-Template arbeiten.
Teamwork-Server und Visual Paradigm
Die Version, die uns von Visual Paradigm zu Verfügung steht erlaubt es uns nicht den Teamwork-Server zu benutzen. Gäbe es die Möglichkeit eine Lizenz für eine Version, die uns das ermöglicht zu beschaffen?
Wir sind mit dem Hersteller im Gespräch. Bis jetzt wissen wir nur, dass SVN nicht mehr unterstützt wird und GIT nicht unterstützt werden wird.
Wir sind mit dem Hersteller im Gespräch. Bis jetzt wissen wir nur, dass SVN nicht mehr unterstützt wird und GIT nicht unterstützt werden wird.
Eigene Ladestationen?
Hat jeder Roboter eine eigene Ladestation oder kann jeder Roboter zu jeder Station fahren, sofern sie frei ist?
Jeder Roboter hat seine eigene Ladestation. Die Position bekommt man über das IBattery-Interface.
Jeder Roboter hat seine eigene Ladestation. Die Position bekommt man über das IBattery-Interface.
Mittwoch, 4. Mai 2016
Aktivierung der Ladestation
Muss die Ladestation explizit aktiviert werden, um einen Roboter zu laden, oder passiert dies implizit?
Antwort: Die Roboter werden an der Position der Ladestation automatisch geladen.
Antwort: Die Roboter werden an der Position der Ladestation automatisch geladen.
Abonnieren
Posts (Atom)