This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| de:projects:wheeled_robot [2011/08/20 17:30] – wittkoepper | de:projects:wheeled_robot [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Mobile Roboterplattform ====== | ||
| + | Der mobile Roboter ist eine der populärsten Robotorkonstruktionen. Sehr verbreitet sind Sumoroboter, | ||
| + | |||
| + | Nachfolgend werden eine Dokumentation eines typischen Projekts für eine mobile Roboterplattform sowie die verschiedenen Projektphasen dargestellt. | ||
| + | |||
| + | ===== Ursprüngliche Aufgabe ===== | ||
| + | |||
| + | Planen und konstruieren Sie eine multifunktionale mobile Roboterplattform mit einfacher Navigationsfunktion unter der Verwendung von HomeLab Komponenten. Die Roboterplattform muss eine einfach zu ändernde operationale Funktion besitzen, wenn sie mit verschiedenen Gadgets ausgerüstet wird: | ||
| + | * Manipulator | ||
| + | * Radar | ||
| + | * Kamera | ||
| + | Der Roboter muss sich in geschlossenen Räumen auf flachen Böden bewegen können. | ||
| + | |||
| + | ==== Voraussetzungen ==== | ||
| + | |||
| + | * Maximale Abmessung: 20 cm x 20 cm x 20 cm | ||
| + | * maximales Gewicht: 2 kg | ||
| + | * Höchstgeschwindigkeit: | ||
| + | * volle Selbstständigkeit | ||
| + | |||
| + | ==== Einschränkung ==== | ||
| + | |||
| + | * Muss überwiegend aus HomeLab Komponenten bestehen | ||
| + | * Kostengrenze: | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Grundlegendes Modell des Systems | ||
| + | |||
| + | 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 nachfolgend das hierarchische Modell des System abgebildet. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Designlösungen ===== | ||
| + | |||
| + | Für diese Aufgabe hat das Team eine Brainstorming-Methode verwendet und drei vom Konzept völlig unterschiedliche Vorschläge erstellt. Es wurde eine Evaluationsmatrix erstellt und so die optimale Konstruktion gefunden. Der größte Unterschied der drei Lösungen liegt im Bewegungsschema. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | Vereinfachte Evaluationsmatrix: | ||
| + | |||
| + | ^ Funktion/ | ||
| + | |Kosten | ||
| + | |Komplexität im Bau | 2 | 4 | 7 | 0,7 | | ||
| + | |Beweglichkeit | ||
| + | |Permittivität | ||
| + | |Anwendbarkeit in Homelab | 5 | 4 | 5 | 0,9 | | ||
| + | |Gewicht | 5 | 6 | 7 | 0,8 | | ||
| + | ^Total (mit Gewichtungsfaktor) ^ 19^27^ 28^ ^ | ||
| + | |||
| + | Die Evaluationsskala umfasst Werte von 1 bis 10 und der Gewichtungsfaktor liegt zwischen 0 und 1. Der Gewichtungsfaktor wird nach den Anforderungen und Einschränkungen des Systems ausgewählt. So ist beispielsweise Lösung 2 beweglicher auf unebenen Boden, dieses war jedoch nicht in der ursprünglichen Aufgabe gefordert, daher ist der Gewichtungsfaktor niedrig. | ||
| + | |||
| + | Basierend auf der Auswertung, ist die optimale Lösung für die gestellte Aufgabe eine Plattform auf zwei Rädern mit zwei separaten Motoren. Die weitere Arbeit besteht in der Entwicklung der gewählten Lösung in ein reales System. | ||
| + | < | ||
| + | |||
| + | ===== Mechanik ===== | ||
| + | |||
| + | Die Mechanik wurde so einfach wie möglich gehalten, wobei dem Prinzip der Modularität gefolgt wurde. Front- und Heckstossstange sind identische Module. Die Elektronik beseteht aus drei Modulen, welche übereinander platziert werden und mit einfachen Flachbandkabeln verbunden werden. Darüber hinaus wird so sicher gestellt, dass die Module relativ einfach ausgewechselt werden können. | ||
| + | Die Motoren entstammen dem HomeLab kit: Motoren mit einem integrierten Drehzahlminderer und Coder, welche direkt mit den Antrieb des Motors verbunden sind. Es wurden Modellflugzeugräder benutzt, da diese 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. Neben der Elektronik passt auch eine Batterie problemlos zwischen den Platten. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | Die Stoßstangen des Roboters werden separat geplant und sind mit Berührungs- und Linienfolgesensoren ausgestattet. Die Stoßstange wird aus PCBs hergestellt und verfügt dadurch über Elektrizität. Die Linienfolgesensoren werden direkt auf die Stoßstange der Bodenplatte gelötet. Berührungssensoren (Mikroschalter) werden zwischen den Stoßstangenplatten platziert und mit einem Gummistück an der Front geschützt. Das Gummistück absorbiert den Aufprall und ermöglicht gleichzeitig zu identifizieren, | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Elektronik ===== | ||
| + | |||
| + | Die Elektronik des Systems ist in einem Prinzipsschema und Schaltplan mit PCB-Aufbau-Plan beschrieben. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | Als Beispiel werden die Schaltpläne der Linienfolgesensoren sowie die dazugehörigen PCB-Aufbau Pläne der Stoßstange des Roboters gezeigt. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Kontrollsystem ===== | ||
| + | |||
| + | Das Kontrollsystem des Roboters, leitet sich von einem Verhaltensmodell ab und ist an Funktionalität, | ||
| + | Aus dem Verhaltensmodell des Systems wird ein spezifisches Kontrollprogramm entworfen, welches wiederum die Basis für den Softwareprogrammcode ist. | ||
| + | Alle drei Ebenen (Verhaltensmodell-Algorihtmus-Quellcode) müssen miteinander vereinbar sein. | ||
| + | |||
| + | ==== Algorithmus ==== | ||
| + | |||
| + | Der Algorithmus beschreibt die Kontrolllogik des System und wird als Blockdiagramm dargestellt. Einige Elemente und Beschreibungen der Verhältnisse genügen, um einen einfachen Algorithmus zu erstellen. Wenn der Algorithmus für den Roboter richtig zusammengestellt ist, kann daraus sehr einfach ein Kontrollprogramm erstellt werden. | ||
| + | Grundsätzlich werden zwei verschiedene Objekte in einem Algorithmus genutzt: ein Rechteck mit runden Ecken, zur Darstellung einer Aktivität sowie ein kleiner Diamant zur Kontrolle einer Bedingung, gefolgt von einem Start weiterer Aktivitäten, | ||
| + | |||
| + | Bedeutung der im Algorithmus verwendeten Symbole: | ||
| + | |||
| + | ^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|Bezug| | | | | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ==== Quellcode | ||
| + | |||
| + | Einfache Navigation | ||
| + | <code c> | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | // Definieren der Stoßstangenpins | ||
| + | pin front = PIN(C, 0); | ||
| + | pin frontleft | ||
| + | pin frontright = PIN(C, 2); | ||
| + | |||
| + | // | ||
| + | // Hauptprogramm | ||
| + | // | ||
| + | int main(void) | ||
| + | { | ||
| + | // Starten von Motor 0 und 1 | ||
| + | dcmotor_init(0); | ||
| + | dcmotor_init(1); | ||
| + | |||
| + | // Sensorpins als Inputs | ||
| + | pin_setup_input_with_pullup(front); | ||
| + | pin_setup_input_with_pullup(frontleft); | ||
| + | pin_setup_input_with_pullup(frontright); | ||
| + | |||
| + | // Endlosschleife | ||
| + | while (true) | ||
| + | { | ||
| + | // Motorstart im Uhrzeigersinn | ||
| + | dcmotor_drive(0, | ||
| + | dcmotor_drive(1, | ||
| + | | ||
| + | // Kontrolle des mittleren Sensorsignals | ||
| + | if (pin_get_value(front)) | ||
| + | { | ||
| + | // Umkehr der Motoren | ||
| + | dcmotor_drive(0, | ||
| + | dcmotor_drive(1, | ||
| + | |||
| + | // Pause 1 Sekunde | ||
| + | sw_delay_ms(1000); | ||
| + | |||
| + | // Start des linken Motors im Uhrzeigersinn | ||
| + | dcmotor_drive(0, | ||
| + | |||
| + | // Pause 2 Sekunden | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | |||
| + | // Kontrolle des linken Sensorsignals | ||
| + | else if (pin_get_value(frontleft)) | ||
| + | { | ||
| + | // Umkehr des rechten Motors | ||
| + | dcmotor_drive(1, | ||
| + | |||
| + | // Pause 2 Sekunden | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | |||
| + | // Kontrolle des rechten Sensorsignals | ||
| + | else if (pin_get_value(frontright)) | ||
| + | { | ||
| + | // Umkehr des linken Motors | ||
| + | dcmotor_drive(0, | ||
| + | |||
| + | // Pause 2 Sekunden | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Gebrauchsfertige Lösung ===== | ||
| + | |||
| + | Die in diesem Projekt gebaute Roboterplattform besteht zum größten Teil aus Plastik, außer der Motorbefestigung, | ||
| + | Als zweite Lösung wurde ein intelligentes Kameramodul installiert, | ||
| + | |||
| + | [{{ : | ||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Kostenkalkulation ===== | ||
| + | |||
| + | Die Kostenkalkulation enthält die Kosten für die Komponenten und die Produktion des Roboters | ||
| + | |||
| + | Tabelle der Komponentenkosten | ||
| + | |||
| + | ^Komponent^Marke^Anzahl^Preis^Kosten^ | ||
| + | |Motor|M LE149.6.43|2|500.-|1000.-| | ||
| + | |Mikrocontroller|uC ATmega128|1|900.-|900.-| | ||
| + | |Motorenantriebsplatine|Actuator Board v1.2|1|700.-|700.-| | ||
| + | |Power plate|TP|1|500.-|500.-| | ||
| + | |Linienfolgesensoren|LFS QRD1114|8|30.-|240.-| | ||
| + | |Berührungssensoren|TS Microswitch|8|25.-|200.-| | ||
| + | |Gehäuseblech|ABS |4|50.-|200.-| | ||
| + | |PCB Rohteil| |2|50.-|100.-| | ||
| + | |Motorenbefestigungsprofil|Al-L |2|10.-|20.-| | ||
| + | |Reifen|60/ | ||
| + | |Batterie|NI-MH 9,6 V|1|350.-|350.-| | ||
| + | |Kabel| |10|20.-|200.-| | ||
| + | |Muttern| |1|50.-|50.-| | ||
| + | |Weiteres Zubehör| |1|100.-|100.-| | ||
| + | ^ Total ^ ^ ^ ^ 4620.- ^ | ||
| + | Kosten in EEK. | ||
| + | |||
| + | Geschätzte Arbeits- und Produktionskosten für ein einzelnes Modell. | ||
| + | |||
| + | ^Arbeit^Zeit (h)^Preis^Kosten ^ | ||
| + | |Fräsen der Bauteile|1|300.-|300.-| | ||
| + | |Fräsen der PCBs (Stoßstangen)|0, | ||
| + | |Bau des Roboters|0, | ||
| + | |Bau der Stoßstangen (löten der Komponenten)|1|300.-|300.-| | ||
| + | |Programmierarbeit|5|300.-|1500.-| | ||
| + | |Erstellen der Dokumentation|3|250.-|750.-| | ||
| + | ^Total^ 11 ^ ^ 3225.- ^ | ||
| + | |||
| + | Vorraussichtliche Kosten des Roboters **7845.-** | ||
| + | |||
| + | Die Kostenkalkulation des Roboters basiert auf geschätzten, | ||
| + | |||
| + | ===== Projektmanagement ===== | ||
| + | |||
| + | Das mechatronische System (Roboter) ist in Gruppenarbeit mit straffem Zeitplan und Budget entstanden, und besitzt damit die wichtigsten Eigenschaften eines Projektes. | ||
| + | Die Schlüsselaktivitäten des Projekts waren: Erstellung des Zeitplans, Planung und Management der Gruppenarbeit, | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Fazit ===== | ||
| + | |||
| + | Die Kostenrechnung hat gezeigt, dass die Produktionkosten des Roboters sehr hoch sind, besonders wenn man nur mit einem Exemplar rechnet. Die Kosten blieben jedoch im anfänglich gesetzten Rahmen. Die Prouktionskosten könnten durch Optimierung des Materials und der Komponeten sowie durch gleichzeitige Fertigung mehrerer Roboter wesentlich reduziert werden. | ||
| + | Während des Projekts ist deutlich geworden, wie ein mechatronisches System geplant, gebaut und getestet wird. | ||
| + | |||
| + | Am Ende der Arbeit ist eines klar geworden: Damit der Roboter richtig funktioniert, | ||
| + | Unterschiedliche Module funktionieren nicht immer einwandfrei zusammen, auch wenn dieses in einzelnen Experimenten klappt. Dadurch wird deutlich, dass die Integration von Modulen in ein System eine echte Herausforderung darstellt, und hierfür mehr Zeit und Ressourcen eingeplant werden sollten. | ||
| + | |||
| + | Abschließend hoffen wir, dass das Projekt sehr interessant und lehrreich war und einen Einblick in das Design und die Konstruktion von integrierten Systemen geben konnte. | ||
| + | |||
| + | ===== Genutzte Quellen und Materialien ===== | ||
| + | |||
| + | - Allgemeines Benutzerhandbuch des HomeLab http:// | ||
| + | - Datenblatt des ATmega128 | ||
| + | - Dudziak, R., Köhn, C., Sell, R., Integrated Systems & Design, TUT Press, 2008 | ||
| + | - Friendenthal, | ||
| + | - Perens, A. Project Management, Külim, 1999 | ||
| + | - Bräunl, T. Embedded Robotics, Springer-Verlag, | ||