Dieses Dokument beinhaltet eine Bestandsaufnahme des Gesamtprojektes anhand der angelegten Userstories. Der Projektfortschritt bzw. der Teilprojektfortschritt wird entsprechend angegeben. Des Weiteren wird der Inhalt des Github-Repositories analysiert und die Zugehörigkeit der Module zu den jeweiligen Userstories angegeben.
Inhalt
0. Allgemeines
1. Userstories
1.1 Laborablauf zeitlich darstellen
1.2 Laborablauf geometrisch darstellen
1.3 Automatische Beschriftung Deckel durchführen
1.4 Automatisches Be- und Entladen Zentrifuge umsetzen
1.5 Entladestation Tubes umsetzen
1.6 Sliding Rail als Transportmittel realisieren
1.7 Sensorik bereitstellen
2 GIT-Analyse
0. Allgemeines
Ziel der Agile Roboticsystems Challenge ist primär Praxiserfahrung in der Projektarbeit eines interdisziplinären Umfelds zu sammeln. Alle Teilnehmer werden zu Beginn durch eine mehrwöchige Einarbeitungsphase auf den gleichen fachlichen Stand gebracht. Diese Einarbeitung umfassen Workshops und Schulungen zu relevanten Themen wie bspw. SCRUM, 3D-Druck, Robotik, Bilderkennung und Biochemie (Lifescience). Danach besteht die Aufgabe darin den Laborprozess der Plasmidisolation nach und nach zu automatisieren. Dazu wurden und werden zusammen mit den Professoren und dem betreuenden Personal Teilaufgaben (Userstories) definiert, welche in sogenannten Sprints bearbeitet werden sollen.
Um diesen Fortschritt der einzelnen Userstories und des Gesamtprojekts im Rahmen dieser Bestandsaufnahme verstehen zu können, wird dies anhand folgender Stufen eingeschätzt:
Abgeschlossen / Automatisiert
Prototypisch umgesetzt
In Entwicklung
Nicht umgesetzt
Trello-Link: https://trello.com/b/OMIEkbWQ/die-hei%C3%9Fen-k%C3%B6pfe
1. Userstories
Der Projektfortschritt und die Vollständigkeit wird geordnet anhand der in Trello angelegten Userstories des Productbacklogs betrachtet.
1.1 Laborablauf zeitlich darstellen
Der besprochene Ablauf von manuellen, automatischen und halb-automatischen soll sprachlich und/oder als Ablaufdiagramm (s. ablaufdiagramm.png (942×1084) (strippenstrolch.de), bzw. Zustandsdiagramm [AVR UML Tutorial] (avr-uml.de)
Module/Arbeitsschritte sind u.a.:
- Laserdruck
- Klebepunkte a) pritt b) lack
- Halterung, Transport
- Zentrifuge be/entladen
- Entladestation
Fortschritt: Abgeschlossen, Verbesserungspotential
Das Ablaufdiagramm wurde mit draw.io erstellt und ist in github zu finden.
1.2 Laborablauf geometrisch darstellen
Module/Arbeitsschritte: s. Story 1
das bestehende System zur Reproduzierbarkeit muss um die neuen Module erweitert werden.
Weiterhin sind strukturelle Verbesserung zu vermessen und einzutragen
- Haltepunkte des sliding rail kit, wo ist seine Null-Position
- dito für die Roboterarme
Null-Punkte (home) sind auf der realen Laborstraße bspw. als rote Punkt Markierung anzubringen; dann können die Roboter vor dem Einschalten an dieser Position (manuell) platziert werden
Fortschritt: Abgeschlossen, Verbesserungspotential
Der Laborplan wurde mit Fusion 360 umgesetzt und ist auf github zu finden. Es sind weiterhin noch Bezeichnungen für die einzelnen Stationen und Roboter einzupflegen. Des Weiteren sind die Bewegungsradien an die tatsächlichen Reichweiten der Roboter anzupassen (im Plan ist dies nur schematisch dargestellt).
Abbildung 1: Kurzer Auszug aus der geometrischen Laborplanung
1.3 Automatische Beschriftung Deckel durchführen
Der Lasercutter soll ausgedruckte Micro-QR-Codes ausschneiden, die dann der Dobot Light aufnehmen und auf der Unterseite mit Kleber versehen soll. Dann soll er diese auf die Tubes (auf der Sliding-Rail) drücken.
Fortschritt: Prototypisch umgesetzt
Innerhalb des Repositories sind zwei Ordner mit relevanten Daten zu finden. Diese enthalten einerseits eine strukturierte Druckvorlage mit Beispielcodes sowie den relevanten NC-Code des Lasercutters sowie Teach-In-Beispiele für den Dobot Lite. Eine vollwertige automatisierte Lösung an dieser Stelle fehlt jedoch. Eine Teach-In Sequenz für den Dobot Light ist vorhanden, diesbezüglich müsste jedoch eine automatische Ansteuerung seitens der Prozesssteuerung realisiert werden. Die Demo ist aber lediglich für einen einzigen QR-Code umgesetzt. Ebenfalls wichtig wäre die Anbindung an die vorliegende Datenbank der GUI-Prozesssteuerung (SQL-Lite Datenbank), da aktuell die Generierung microQR-Codes nicht gesteuert erfolgt.
1.4 Automatisches Be- und Entladen Zentrifuge umsetzen
Der Vorgang der Entnahme eines Tubes (von einer vordefinierten Stelle in der Zentrifuge) und Ablegen auf dem Rack auf dem sliding rail ist umzusetzen.
Physik:
- Positionierung (s. Story 2)
- fester Fuß
- sucker pump Spitze ggfs. modifizieren
Software:
- sucker pump ansteuern
- Armsteuerung
Fortschritt: In Entwicklung
Es wurde die Entnahme eines Tubes aus der Zentrifuge prototypisch realisiert. Die praktische Umsetzung weist jedoch Mängel bezüglich der Entnahmegenauigkeit und des geplanten Standfußes auf – dies gilt es dringend zu bedenken und zu verbessern. Des Weiteren ist dieser Ansatz nur schwer auf weitere Tubes in der Zentrifuge erweiterbar. Das Repository enthält die entsprechenden Teach-In Dateien sowie die erstellten Programmdateien und Demonstrationsvideos. Die Readme-Dateien beschreiben den aktuellen Entwicklungsstand sowie den beschriebenen Sachverhalt äußerst detailliert.
Es soll zukünftig der Entnahmevorgang überarbeitet werden. Dazu gehören das Verbessern des Standfußes (um Toleranzen durch den Endeffektor zu reduzieren) und der Entnahmeposition. Die Entnahmekonfiguration der Tubes sowie die Stopp-Position der Zentrifuge ist dabei fest vorgegeben, die Anzahl der Tubes jedoch flexibel. Dazu soll eine geeignete Implementierung entworfen werden die mit Hilfe einfacher Teach-Ins diese Funktion realisiert. Die Ablage der Tubes soll in das Rack des Sliding Rails erfolgen (Ansteuerung erforderlich). Weitere Verbesserungen und Anpassungen diesbezüglich werden ggfs. iterativ in den Sprints besprochen und geplant.
Abbildung 2: Beispiel des Entladevorgangs
1.5 Entladestation Tubes umsetzen
Umsetzen der Tubes vom Rack des Slidingrail in eine geeignete Vorrichtung. Dort sollen die Deckel entfernt werden, um die Weiterverarbeitung zu ermöglichen. Die Deckel sollen entsorgt und die die offenen Tubes wieder auf das Rack aufgeladen werden.
Wichtig: Drehmoment durch Abdrehen der Deckel muss abgefangen werden
Existierende Single-Tube Klemme benutzen.
Iteratives Klemmen und Abdrehen der Deckel
Fortschritt: Abgeschlossen, Verbesserungspotential
Der physische Aufbau der Klemmvorrichtung ist vollständig abgeschlossen. Es wurde eine Platine entworfen, welche die Spannung und die Ansteuerung des magnetischen Aktors regelt. Es wurde außerdem eine ausführliche Dokumentation erstellt, welche die Verwendung dieser Vorrichtung beschreiben. Die Platine wurde mittels einer 3D-gedruckten Halterung und der entsprechenden Legoadapter auf der Grundplatte der Laborstraße befestigt. Diese Dateien samt Schaltplan und Dokumentation sind in dem Repository zu finden. Außerdem ist ein Beispielcode vorhanden, der die Ansteuerung über das GPIO des Dobot Magician auf dem SlidingRail demonstriert.
Abbildung 3: Aufbau der Klemmvorrichtung
Abbildung 4: Schaltplan
1.6 Sliding Rail als Transportmittel realisieren
Abzudecken sind “Haltepunkte” s. Story 2,
Physik:
- zusätzliche Legoplatten
- Lego adapter
- Halterung
Haltepunkte:
- Laser Cutter/Dobot Lite
- Saugschwein/Mülleimer
- Elephant, Sensoren
- Home Koordinaten s. Story 2
Akezpanzkrtiterien:
- revisionierbar
Fortschritt: Abgeschlossen, Verbesserungspotential
Es wurden eine geeignete Haltevorrichtung für das SlidingRail entworfen, sodass es an der Grundplatte der Laborstraße befestigt werden konnte. Dies geschah mit den bereits bekannten Legoadaptern. Die Positionierungen der einzelnen Komponenten ist bereits durch den geometrischen Laborplan (siehe Punkt 1.2) realisiert. Auch die Ansteuerung sowie die Endlagenerkennung sind realisiert. Der Teach-In-Code ist in dem Repository zu finden.
1.7 Sensorik bereitstellen
Sensor, der die Ankung des sliding rail erkennt und an den Mini-PC und an den Elephant-Roboter meldet
a) Lichtschranken
b) Whisker
Fortschritt: Nicht umgesetzt
An dem Nullpunkt des SlidingRails ist bereits ein Endlagenschalter angebracht und elektrisch verschaltet. Mittels der geeigneten Adressierung kann man diesen auslesen und programmatisch verarbeiten. Die Meldung an den Mini-PC muss jedoch noch realisiert werden. Ein geeigneter Kommunikationsablauf muss folglich noch entwickelt werden.
2. GIT-Analyse
Repository: https://github.com/Prof-Adrian-Mueller/Agile_Roboticsystems_Laborstrasse.git
Branch: agile_roboticsystems_challenge_2024
Der aktuellste Branch des Projektrepositories wurde durch einen Merge von main (wo sich die neuesten Dokumentation und Projektdateien befanden) und von u_qt_gui (wo die neuste Version der grafischen Nutzeroberfläche der Laborautomation zu finden ist) erzeugt.
Die neuerstellten Projektdateien befinden sich in dem Ordner „ASS“. Alle weiteren Dateien und Ordner im Homeverzeichnis des Branches unterliegen der GUI-Software der Laborstraße.
In der folgenden Tabelle wird die Ordnerstruktur des „ASS“-Teils erläutert. Für eine detaillierte Beschreibung empfiehlt es sich die zugehörigen Readme-Dateien der entsprechenden Module zu lesen.
Ordner | Beschreibung | Zugehörige Userstory |
Adjustable_QR_Reader-main | Extrahierter Pythoncode aus der GUI-Software, erkennt und visualisiert microQR-Codes via Webcam | - |
Deckel_abschrauben | Teilprojektordner, leer | 6 |
Dokumentation | Ablaufdiagramm, Laborlayout | 1, 2 |
Klebepunkte | Druckvorlage, Beispiel microQR-Codes | 4 |
Klebepunkte_entnehmen&loesen | Teach-In-Code für das Applizieren der microQR-Codes, NC-Code des Lasercutters | 4 |
Klemmvorrichtung | 3D-Dateien, Schaltplan und Installationshilfen, Dokumentation für die Klemmvorrichtung, Beispielcode für das Ansteuern der Klemmvorrichtung | 6 |
LegoAdapter | 3D-Dateien für die Legoadapter zur Fixierung der Komponenten an der Grundplatte der Laborstraße | universell |
Plattform auf Slidingrail | Entwurf der Adapter-komponenten zur Fixierung des Dobots und des Tuberacks auf dem SlidingRail | 7 |
SlidingRailAnsteuerung | Teach-In-Code für das Bewegen des SlidingRails an die genannten Haltepunkte | 7 |
ZentrifugeBe_Entladen | Beispielcode zum Teach-In des 6-Achsen-Roboters für das Be- und Entladen der Zentrifuge, genaue Teilprojektbeschreibung in den Readme-Dateien (kein Dobot – anderes Robotersystem) | 5 |
miniPC Softwarestand:
Home/Desktop/Dobot – Software und Dateien der Abschluss-Demo
Home/Desktop/CV Test – Testscript für Objekterkennung
Home/Desktop/AnweisungGUILaborstraße.txt – Anweisungen für das alte GUI-System
Home/Desktop/QR Reader – extrahierter microQR Reader
Home/Fujitsu/IdeaProjects/AgileRoboticSystemsLabortrasse – alter Projektordner
Alles python-Projekte lassen sich mit pycharm auf dem Labor-PC ausführen. Ein bestehendes Problem ist aber die Tatsache, dass die microQR-Verfolgung über die installierte Deckenkamera in der GUI-Software nicht funktioniert. Hier sind noch entsprechende Nacharbeiten nötig.