1. Dokumentation zum Roboterwettbewerb der c’t auf der Systems 2001

    1. Teilnehmer:

Ole Reinhardt

Glückaufstr. 48 / App: 113

57076 Siegen


Tel: 0271-7420433

Florian Boor

Glückaufstr. 52 / App: 013

57076 Siegen


Tel: 0271-7411487


Wir sind beides Studenten der technischen Informatik an der Universität Siegen. Zur Zeit belegen wir noch das 8. Semester. Neben dem Studium arbeiten wir beide gewerblich als Softwareentwickler (Windows / Linux) und beschäftigen uns hobbymäßig mit Elektronik - / Systementwicklung.


Dieser Roboterwettbewerb gibt uns eine einmalige Chance beide Disziplinen (Hardware und Softwareentwicklung) zu kombinieren und im Rahmen dieses Projektes viele neue Dinge zu lernen und damit das Studium ideal durch die Praxis zu ergänzen.


    1. Der Roboter:

Bei dem vorgestellten Roboter handelt es sich um eine eigens für diesen Wettbewerb entworfene Konstruktion. Besondere Vorkenntnisse auf dem Gebiet der Robotik liegen nicht vor.


Bei unserem Roboter handelt es sich um eine Aluminiumkonstruktion, welche durch Schrittmotoren angetrieben wird. Gesteuert wird der Roboter durch zwei Mikrocontroller, welche Sensordaten vorverarbeiten, die Motoren ansteuern und die Daten an den Hauptrechner weiterleiten.


Der Hauptrechner übernimmt die Missionssteuerung. Er sammelt die verschiedenen Sensor-Inputs und entscheidet über das weitere Vorgehen. Über serielle Schnittstellen und Ethernet steht dieser Rechner mit den Sensoren und der Bildverarbeitung in Kommunikation. Die Missionssteuerung ist die eigentliche Intelligenz des Systems. Die verschiedenen Sensoren haben unterschiedliche Prioritäten und beeinflussen daher das Vorgehen des Roboters in vielfältiger Weise. Bei dem Hauptrechner handelt es sich um einen Embedded Rechner (Intel-StrongARM SA1110 Evaluation Board der Firma Keith&Koep GmbH). Als Betriebssystem wird hier Linux eingesetzt.


Neben dem Hauptrechner wird noch ein weitere Rechner mitgeführt. Hierbei handelt es sich um ein Palmax Sub-Notebook (Toshiba Libretto-Clon). Dieser Rechner hat die Aufgabe als Bootserver für den ARM zu dienen und mit seiner USB Schnittstelle den Anschluß für das Auge, die Kamera, des Systems zu stellen. Dieser Rechner wird ebenfalls unter Linux betrieben und verarbeitet die Bilder vor. Eine rudimentäre Bildverarbeitung separiert die Farbinformationen und Klassifiziert den Bildinput. Die Bilder werden anschließend vorverarbeitet dem ARM per NFS zur Verfügung gestellt. Die Kamera besitzt dabei die höchste Priorität des Sensorinputs und ist dabei die primäre Informationsquelle, aus der der Roboter seine Strategien berechnet. Um einen guten Überblick über die Situation zu haben, ist die Kamera auf einem Mast montiert.

Weiterhin sind 10 Infrarot Abstandsensoren, ein Infrarot Entfernungssensor, sowie zwei mechanische Berührungssensoren vorhanden (Mikroschalter mit „Tasthaaren“).


Die Abstandssensoren dienen vorrangig der Kollisionsvermeidung mit den Wänden, ebenso die „Tasthaare“. Der Entfernungssensor wird durch einen Schrittmotor bewegt und dient zum genauen anvisieren des Ziels sowie zum aufspüren von Wänden / Türen.


    1. Technische Daten:

      1. Gesamtsystem:

Abmessungen:


414x290x200mm (LxBxH) ohne Mast. Dieser ist ca. 800mm hoch (vom Untergrund).


Gewicht:


Ca. 4 Kg


Material:


Alu-Profilstangen, Holz, Plexiglas. Komplette Eigenkonstruktion.


Antrieb:


Zwei Antriebsräder, zentrisch unter dem System, angetrieben durch je einen Schrittmotor, ein Stützrad. Differentielle Steuerung.


Geschwindigkeit:


Ca. 0.1 bis 0.5 km / h


Wendekreis:


Kann auf der Stelle wenden. Max. Radius: ca. 50 cm.


Stromversorgung:


Zwei oder drei Blei-Gel Akkus. Damit 12V oder 18V, 4Ah, Stromverbrauch: ca. 3-4 A.


Sensorik:


10x IR-Abstandssensor, 1x IR-Entfernungssensor, 2x Mikroschalter mit „Tasthaaren“,
1 Kamera

Intelligenz:


2x Atmel AVR 90S8515: Steuerung Motoren und Sensorinput


Intel StrongARM: Hauptrechner


Palmax Subnotebook: Kamerasteuerung


Müllaufnahme:


Der Müll kann in einer Kammer des Fahrzeugs gesammelt werden. Eine bewegliche Klappe kann nach oben gezogen werden, der Müll wird durch vorfahren in den Sammelraum aufgenommen, anschließend wird die Klappe gesenkt.


Steuerung der Klappe durch einen Schrittmotor.

      1. Hauptrechner:

System:


Intel StrongARM SA1110 Evaluation Board „Trizeps“ der Firma Keith & Koep GmbH (http://www.keith-koep.com).


206 Mhz, 32 MB RAM, 16 MB Flash, (Display wird im Wettbewerb entfernt).


Betriebssystem:


ARM-Linux, Kernel 2.2.9, Filesystem und Kernel werden über das Netz vom Bildverarbeitungsrechner bezogen.


Anbindung:


2x RS232 zur Sensor und Motorsteuerung


1x Ethernet 10 mBit zum Bildverarbeitungsrechner


Aufgaben:


Missionssteuerung, Vereinen aller Inputs, berechnen der Strategien.

      1. Bildverarbeitungsrechner:

System:


Palmax Sub-Notebook (http://www.palmax.de)


233 Mhz Pentium MMX, 128 MB Ram, 2 GB Platte


Betriebssystem:


Mandrake Linux 7.2, Kernel 2.2.17


Anbindung:


USB-Kamera, Ethernet zum Hauptrechner.


Aufgaben:


Kamerasteuerung, Bildverarbeitung, Bootserver für den ARM

      1. Motorsteuerung:

System:


Atmel AVR 90S8515 Mikrocontroller, 8 Mhz. Es wird nur das interne Flash und RAM genutzt.


Betriebssystem:


Keines, proprietäre Programme, in AVR-GCC (GCC-Compiler für AVR) geschrieben.


Weitere Hardware:


Zwei Motortreiber ICs ULN 2801, eine RS 232 Schnittstelle


Aufgaben:


Steuerung von bis zu 4 unipolaren Schrittmotoren. Rückmeldung der Motorposition und Empfang von Steuerbefehlen über die RS232.


Da im System insgesamt 5 Schrittmotoren verwendet werden, wird der Klappenmotor und der Motor des Entfernungssensors über eine kleine Schaltelektronik gemultiplext.


      1. Sensorsteuerung:

System:


Atmel AVR 90S8515 Mikrocontroller, 8 Mhz. Es wird nur das interne Flash und RAM genutzt.


Betriebssystem:


Keines, proprietäre Programme, in AVR-GCC (GCC-Compiler für AVR) geschrieben.


Weitere Hardware:


Eine RS 232 Schnittstelle, 18 Digitale I/O für Sensoren und Steuerung des Multiplexers für die Motoren, 1x 8Bit Input von D/A Wandler, welcher die Analog-Ausgaben des Entfernungssensors aufbereitet.

Aufgaben:


Auswertung der Sensorinputs, Vorverarbeitung und Weiterleitung bei Änderung der Inputs, Berechnung der Abstandswerte des Entfernungssensors, Multiplexingsignal für den Schrittmotor-Multiplexer.


      1. IR-Abstandssensoren:

10 Sensoren, basierend auf dem Sharp IS471F IR-Sensor. Fremdlicht- und farbunabhängig


8 davon als Abstandssensor konfiguriert, je vier vorne und 4 hinten, zwei weitere als Lichtschranken im Sammelraum für den Müll.


Die Sensoren sind auf dem Rahmen montiert, zwei Stück an der beweglichen Frontklappe.


      1. IR-Entfernungssensor:

Ein Sensor Sharp GD2D12. Entfernungssensor auf Basis einer CCD-Zeile. Fremdlicht- und farbunabhängig.


Der Entfernungssensor ist beweglich auf einem Schrittmotor montiert.


Sichtwinkel ca. 120° (durch den Motor ansteuerbar).


Reichweite: 10cm – 80 cm.


Der Sensor befindet sich zentrisch an der Frontklappe. Der Motor wird mit dem Klappenmotor gemultiplext.


      1. Mikroschalter „Tasthaare“:

Zwei Mikroschalter mit verlängerten Tastfahnen dienen als mechanisch Abstandssensoren.


Montage seitlich vorne. Einsatz zur Kollisionsvermeidung bei Drehbewegungen.


      1. Kamera:

Phillips ToUCam professional. Montiert auf 80 cm hohem (vom Boden) Kameraturm, Drehbar auf Schrittmotor montiert. Rundumblick möglich. Blick ca. 45° nach unten.


Sensor:


CCD-Sensor, Auflösung 640 x 480 Pixel bei 60 Bildern / sek.


Anbindung:


USB zum Palmax Sub-Notebook.

Verarbeitung:


Farbseparation, Segmentierung, Klassifizierung.


Aufgaben:


Erstellen einer Umgebungskarte. Suche nach „roten“ und „blauen“ Bereichen. Zentrierung der Motorachse auf die direkte Route zum Ziel. Ggf. suche nach „Türen“ und Hindernissen.


Hauptinput für die Missionssteuerung.


      1. Müllaufnahme:

Bereich von 13cm x 25cm des Roboters, Umrahmt vom Alu-Rahmen des Roboters. Vorne offen, durch bewegliche Klappe geschlossen.


Klappe durch Schrittmotor zu öffnen. Dieser Motor wird gemultiplext mit dem Entfernungs-Sensor-Motor.


Müll wird durch öffnen der Klappe und vor- / zurückfahren aufgenommen / abgelegt.


      1. Stromversorgung:

Blei-Gel-Akkus 12V-18V, evtl. externe Stromversorgung (aus Gewichtsgründen).


Zwei bis drei Stück, je 6V / 4 Ah.


Der Palmax Rechner besitzt seine eigene Akku-Versorgung.


Maximale Stromaufnahme des Systems: ca. 3-4A => Laufzeit mind. 30-45 min.















Anlage: 19 JPEG-Bilder. Ansichten des Roboters.

1 JPEG: Bild aus Sicht des Entfernungssensors