This is an old revision of the document!
Der mobile Roboter ist eine der populärsten Robotorkonstruktionen. Sehr verbreitet sind Sumoroboter, Sportroboter (Fußball, Volleyball usw.), Roboter die Rettungsoperationen simulierern (Feuerbekämpfung, Personen/Objektsuche) und vieles mehr. Für diese Art von Roboter gibt es viele Wettbewerbe weltweit und in Estland. Das gemeinsame Feature all dieser Roboter ist die mobile Plattform, welche unterschiedliche Konstruktionen und Fähigkeiten aufweisen kann, aber die Funktion bleibt die selbe, das kontrollieren des Motors und der einfachen Navigation, welche das Ausweichen von Objekten und Bewegungen zu einem bestimmten Endpunkt einbezieht. Normalerweise wird eine spezifische Funktion hinzugefügt, je nach Vorraussetzungen und Möglichkeiten des Projekts.
Hier können wir uns eine Dokumentation eines typischen mobile Roboterplattform Projekts und die verschiedenen Phasen anschauen.
Plane und konstruiere eine multifunktionelle mobile Roboterplattform mit einfacher Navigationsfunktion mit HomeLab Komponenten. Die Roboterplattform muss eine einfach zu änderne Operationale Funktion haben, wenn sie mit verschiedenen Gadgets ausgerüstet wird:
Der Roboter muss sich in geschlossenn Räumen auf flachen Böden bewegen können.
Das grundlegende Modell des System wird mit einem Blockdiagramm dargestellt. Es beschreibt die Struktur, das Verhalten und andere wichtige Aspekte des Systems. Als Beispiel ist das hierachische Modell des System dargestellt.
Für diese Aufgabe hat das Team die Brainstorming Methode verwendet und 3 vom Konzept verschiedene Vorschläge erstellt. Eine Evaluationsmatrix wurde erstellt und die optimalste Konstruktion wurde gefunden. Der Hauptunterschied der Lösungen ist im Bewegungsschema.
Vereinfachte Evaluationsmatrix:
| Funktion/Lösung | I | II | III | Gewichtungsfaktor |
|---|---|---|---|---|
| Kosten | 3 | 4 | 6 | 0,8 |
| Komplexität im Bau | 2 | 4 | 7 | 0,7 |
| Beweglichkeit | 4 | 8 | 8 | 0,5 |
| Permittivität | 5 | 8 | 2 | 0,3 |
| Andwendbarkeit in Homelab | 5 | 4 | 5 | 0,9 |
| Gewicht | 5 | 6 | 7 | 0,8 |
| Total (mit gewichtungsfaktor) | 19 | 27 | 28 |
Die Evaluationsskala war 1-10 und der Gewichtungsfaktor 0-1. Der Gewichtungsfaktor wurde nach den Anforderungen und Einschränkungen des Systems gewählt. Z.B. war Lösung 2 beweglicher über unebenen Boden, aber dies war nicht in der ursprünglichen Aufgabe gefordert, und daher war der Gewichtungsfaktor niedrig.
Basierend auf die Auswertung, ist die Optimale Lösung für die gegebene Aufagabe eine Plattform auf zwei Rädern mit zwei seperaten Motoren. Die weitere Arbeit besteht in der Entwicklung einer Lösung im realen System.
Die Mechanik wurde so einfach wie möglich gehalten, wobei das Prinzip der Modularität gefolgt wurde. Die Front/Heckstossstange bestehen aus einem identischen Modul. Die Elektronik hat drei Module, welche übereinander platziert werden, “allowing simple ribakaabelühendusi”, während sichergestellt wird, dass man die Module einfach auswechseln kann. Die Motoren wurden vom HomeLab Kit gewählt: Motoren mit einem inetgrierten Reducer und Coder, welche direkt mit den Aktuator des Motors verbunden sind. Modellflugzeugräder wurden benutzt, da sie sehr leicht und robust sind. Um die Konstruktion zu vereinfachen sind Boden und Dachplatte identisch. Die Platten haben Löcher, damit unterschiedliche Geräte an der Dachplatte angeschlossen werden können. Ausser der Elektronik passt eine Batterie zwischen den Platten.
Die Stossstangen des Roboters werden seperat verarbeitet und sind mit Berührungs- und Linienfolgesensoren ausgestattet. Die Stossstange wird aus einem PCB. Die Linienfolgesensoren werden direkt auf die Stosstange der Bodenplatte gelötet. Berührungssensoren (microsensoren) werden zwischen den Stossstangenplatten gepacht und mit einem Gummistück an der Front geschützt. Das Gummistück absorbiert den Aufprall und gleichzeitig kann indentifiziert werden, woher der Aufprall kam.
Die Elektronik des Systems ist in einem Prinzipsschema und Elektronischem Plan mit PCB-Aufbau-Plan beschrieben.
Als Beispiel werden die Linienfolgesensoren und die dazugehörigen PCB-Aufbau Pläne der Stossstange des Roboters gezeigt.
Das Kontrollsystem des Roboters, leitet sich von einem Verhaltensmodell ab und ist nach der Funktionaliät, Anforderungen und Einschränkungen der ursprünglichen Aufgabe gesetzt. Von dem Verhaltensmodell des Systems wird ein spezifisches Kontrollprogramm entworfen, welches die Basis für den Softwareprogrammcode ist. Alle drei Level (Verhaltensmodell-Algorihtmus-Quellcode) müssen konsistent sein.
Der Algorithmus beschreibt die Kontrolllogik des System und wird als Blockdiagramm dargestellt. Eine Elemente und Beschreibungen ihrer verhältnisse reichen um einen einfachen Algorithmus zu erstellen. Wenn der Algorithmus für den Roboter richtig zusammengestllt ist, ist es sehr einfach darus ein Kontrollprogramm zu erstellen. Hauptsächlich werden zwei verschiedene Objekte im Algoritmus genutzt: ein Rechteck mit runden Ecken, welche eine Aktivität darstellen, und ein kleiner Diamant für die Kontrolle einer Kondition, gefolgt von einem Start weiterer Aktivtäten, je nach Resultat der Kontrolle.
Bedeutung der Symbole die im Algoritmus verwendet werden:
| Symbol | Bedeutung | 0 | 1 | -1 |
|---|---|---|---|---|
| M1 | linker Motor | Stop | rotiert im Uhrzeigersinn | rotiert gegen den Uhrzeigersinn |
| M2 | rechter Motor | stop | rotiert im Uhrzeigersinn | rotiert gegen den Uhrzeigersinn |
| F | erster mittlerer Berührungssensor | kein Signal | Signal | |
| FR | erster rechter Berührungssensor | kein signal | Signal | |
| FL | erster linker Berührungssensor | kein signal | Signal | |
| d | reference |
Simple navigation
#include <homelab/module/motors.h> #include <homelab/pin.h> #include <homelab/delay.h> // Defining bumper pins pin front = PIN(C, 0); pin frontleft = PIN(C, 1); pin frontright = PIN(C, 2); // // Mainprogram // int main(void) { // Initiating motors 0 and 1 dcmotor_init(0); dcmotor_init(1); // Sensor pins as inputs pin_setup_input_with_pullup(front); pin_setup_input_with_pullup(frontleft); pin_setup_input_with_pullup(frontright); // Endless cycle while (true) { // Clockwise motor startup dcmotor_drive(0, 1); dcmotor_drive(1, 1); // Controlling the middle sensor signal if (pin_get_value(front)) { // Reversal of the motors dcmotor_drive(0, -1); dcmotor_drive(1, -1); // Paus 1 second sw_delay_ms(1000); // Left motor clockwise startup dcmotor_drive(0, 1); // Paus 2 seconds sw_delay_ms(2000); } // Controlling the left sensor signal else if (pin_get_value(frontleft)) { // Reversal of right motor dcmotor_drive(1, -1); // Paus 2 seconds sw_delay_ms(2000); } // Controlling the right sensor signal else if (pin_get_value(frontright)) { // Reversal of left motor dcmotor_drive(0, -1); // Paus 2 seconds sw_delay_ms(2000); } } }
Die Roboterplattform die im Projekt gebautwurde ist zum größten Teil aus Plastik, ausser der Motorbefestigung, welche aus Aluminium ist. Elektronische module wurden auf einander platziert, die Batterie liegt lose zwischen den Platten. Die Stossstangen wurden aus PCBs gebaut und schwarz angestrichen. Die Dachplatte des Roboter ist flach und erlaubt das anbringen von verschiedenen benötigten Geräten. Ein einfaches Radar wurde installiert, welches aus einem kleinen RC servomotor und einem IR-Sensor besteht. Als zweite Lösung wurde ein intelligentes Kameramodul installiert, was beim Lösen visueller Probleme hilft. Beide Lösungen werden in den folgenden Bildern gezeigt. Ein einfacher Manipulator wurde als drittes Gerät getestet, dessen Komponenten mit standard Servomotoren betrieben werden, mit einem seriellen Interface um die Aktuatoren zu kontrollieren.
Die Kostenkalkulation enthält die Kosten für die Komponenten und den Zusammenbau
Tabelle der Komponentenkosten
| Komponent | Mark | Anzahl | Preis | Kosten |
|---|---|---|---|---|
| Motor | M LE149.6.43 | 2 | 500.- | 1000.- |
| Microcontroller | uC ATmega128 | 1 | 900.- | 900.- |
| Motors actuator board | Actuator Board v1.2 | 1 | 700.- | 700.- |
| Power plate | TP | 1 | 500.- | 500.- |
| Line following sensors | LFS QRD1114 | 8 | 30.- | 240.- |
| Touch sensors | TS Microswitch | 8 | 25.- | 200.- |
| Hull plate | ABS | 4 | 50.- | 200.- |
| PCB blank | 2 | 50.- | 100.- | |
| Motor mountings profile | Al-L | 2 | 10.- | 20.- |
| Wheel | 60/10 mm | 2 | 30.- | 60.- |
| Battery | NI-MH 9,6 V | 1 | 350.- | 350.- |
| Different cables | 10 | 20.- | 200.- | |
| Nuts-bolts | 1 | 50.- | 50.- | |
| Other acsessories | 1 | 100.- | 100.- | |
| Total | 4620.- |
Kosten in EEK.
Berechnete Arbeits und Produktionskosten für ein einzelnes Modell.
| Arbeit | Zeit (h) | Preis | Kosten |
|---|---|---|---|
| Milling construction details | 1 | 300.- | 300.- |
| Milling PCBs (bumpers) | 0,5 | 500.- | 250.- |
| Construction of the robot | 0,5 | 250.- | 125.- |
| Building bumpers (soldering components) | 1 | 300.- | 300.- |
| Programming | 5 | 300.- | 1500.- |
| Compiling documentation | 3 | 250.- | 750.- |
| Total | 11 | 3225.- |
Vorraussichtlier Preis für den Roboter 7845.-
Die Kostenkalkulation des Roboter ist geschätzt, da dies ein Lehrprojekt ist und die meiste Arbeit und Konstruktion in größeren Volumen und ohne Bezahlung erledigt wird. Daher spiegelt der berechnete Arbeitsaufwand keine realen Situationen wieder.
Das mechatronische System(Roboter) ist als Teamarbeit mit einem straffem Zeitplan und Budget entstanden, es hat die meisten signifkanten Features des Projekts. Die Die Schlüsselaktivitäten des Projekts waren: Zeitplan erstellen, Teamarbeitplanen und managen, Budget-Berechnungen und Zubehör besorgen, die Reports an den Supervisor, Präsentation und Dokumentation des Ergebnisses. Der Projektreport enthält Arbeitsgruppen, Zeit von Meetings, Projektplan (am besten in einem Gantt Diagramm), Ressourcenverteilung (inkl. Personalverteilung), geplantes und aktuelles Budget. Zum Beispiel ein einfacher Actionplan als Gantt Diagramm.
Die Kostenrechnunge zeigte dass die Produktionkosten des Roboters sehr hoch sind, besonders wenn man nur mit einer Kopie rechnet. Die Kosten blieben jedoch im Rahmen. Prouktionskosten könnten durch optimierung des Materials und der Komponeten reduziert werden, und durch das bauen mehrerer Roboter (Kosten/Stk.). Während des Projekts lernten wir, wie man ein Mechatronisches System plant, es baut und testet. Das erste Mal, dass wir so eine Erfahrung machten.
Am Ende der Arbeit ist eins klar geworden: Damit der Roboter richtig Funktioniert, muss mehr Zeit für das Testen eingeplant werden, insbesondere das Testen der Software. Unterschiedliche Module funktionieren nicht immer einwandfrei zusammen, auch wenn sie in seperaten Experimenten funktionieren. Dies zeigt, dass die Integration von Modulen in ein System eine echte Herausvorderung ist, und mehr Zeit und Ressourcen sollten dafür eingeplant werden.
Abschließend, glauben wir, dass das Projekt sehr interessant und lehrreich war, es gab uns ein Blick ein das Design und die Konstruktion von integrierten Systemen,