Inhalt
©2004/2005 by Dominik S. Herwald | http://www.dsh-elektronik.de/
d.herwald@dsh-elektronik.de
Kurzbeschreibung
Das Robotersystem A.R.C.ROBOT ( Autonomous or RadioControlled ROBOT ) ist in den Jahren 2003 - 2004 als universelle Entwicklungsplattform für zahlreiche Anwendungen und Experimente auf dem Forschungsgebiet der Robotik entwickelt worden.

Der Roboter verfügt über einen embedded PC und kann per Wireless LAN von jedem netzwerkfähigen Computer aus gesteuert werden. Der embedded PC übernimmt die High-Level Steuerung und ein per RS232 angebundener Mikrocontroller steuert ein Netzwerk aus beliebig vielen weiteren Controllern an, die die Echtzeitsteuerung übernehmen. Die Steuerungssoftware auf dem PC wurde nahezu komplett mit Java entwickelt. Es gibt auch eine komplexe Client PC Steuerungssoftware über die sich die Telemetriedaten des Roboters anzeigen und auswerten lassen. Hier kann auch das Videobild einer auf dem Roboter angebrachten Webcam dargestellt werden und der Roboter direkt gesteuert werden.

Das Projekt befindet sich noch in der Entwicklungsphase, jedoch ist der Roboter bereits voll Funktionsfähig. Was vor allem noch fehlt ist die KI. D.h. der Roboter kann momentan "nur" mit einem PC gesteuert werden. Dabei ist jedoch darauf zu achten, das es sich hier um keine direkte Fernsteuerung handelt. Man sendet dem Roboter nur kurze Befehlssequenzen und er führt diese aus. (z.B. lässt der Befehl "move(1000,20,fw)" den Roboter mit 8 cm/s 1000mm geradeaus fahren.)

[...]
Bei dieser Seite handelt es sich um keine komplette Beschreibung des Projekts, eher um eine kleine Zusammenfassung mit den wichtigsten Informationen, einigen Fotos und Videos.
Technische Daten
Allgemeines
Dimensionen (lxbxh) 25x28x50 [cm]
Gewicht ca. 6 Kg (inkl. Akku)
Material Aluminium (mehrere Kreisrunde Platformen, viele Teile sind Spezialanfertigungen (ausgelasert bzw. gefräst) )
Rechner und Controller PC104 Embedded PC: Lippert AT CRR2 mit 200MHz National Geode GX1, 128MB RAM, 1 GB SanDisk Compact Flash Karte im IDE Modus, 10/100MBit LAN, 2x USB 1.1, VGA, Sound, 2x RS232, LPT, etc. und ein zusätzlicher PC104 PCMCIA Controller.

Der Rechner steuert über RS232 einen PIC16F877 an, der wiederum den I2C-Bus kontrolliert. An diesem können beliebig viele weitere Komponenten angeschlossen werden. Momentan sind nur zwei weitere PICs am Bus angeschlossen (Ultraschallscanner und Motorcontroller)
Kommunikation Intern: Single Master I2C und RS232
Extern: Wireless LAN 802.11b (max. 11MBit/s, Orinoco Classic Gold PCMCIA Karte mit externer Antenne) - Roboter kann von beliebigem Rechner mit LAN Interface (PC, PDA o.ä.) gesteuert werden. In einer Büroumgebung mit flächendeckender WLAN Versorgung kann sich der Roboter frei bewegen.
User Interface auf dem Roboter Grafik LCD Display, 320x240x2px (Hitachi SP14Q002) mit eigener Steuerungselektronik (Epson S1D13305 Controller). Direkt am LPT Port des embedded PC angeschlossen. Angesteuert wird es von einer ebenfalls selbstentwickelten Grafik-Bibliothek. (kann einfache geometrische Formen und SW Bilder zeichnen und verfügt über ähnliche Komponenten wie das Java AWT: Labels, Buttons, Borders, Card Layouts, etc.) Die Darstellung ist momentan noch etwas langsam, denn der LPT ist aus Java heraus nicht gut anzusteuern. Werde ich vermutlich demnächst durch einen externen Grafik Controller beheben.

Zusätzlich ein standart 2x16 character LCD direkt am Haupt Mikrocontroller
Stromversorgung
Stromverbrauch min. (alle nicht notwendigen System abgeschaltet, Motoren aus): etwa 1A;
avg. (motoren an, 10cm/s flacher Untergrund, Display (aber auf min. Helligkeit) und Webcam an): etwa 1,6A;
max. (alle Systeme an, Display helligkeit auf max., Motoren vollast + leichte Steigung, Ultraschallscanner an): 2,0-2,5A;
Akkus 12V NiCd Akkupack (10 Zellen), 5Ah; Laufzeit bei mittlerer Last des Roboters etwa 1,5h. Gewicht: 1,8Kg
DC/DC Wandler Step-Down Wandler 12V->5V mit LT1074. Max. 5A (theoretisch, ist aber leider nur auf Lochraster aufgebaut und der Kühlkörper ist nicht allzugroß, also schätze ich eher mal 3-4A max.)
Antrieb
Antriebsart Differentialantrieb. Die beiden Antriebsräder sind auf zweifach Kugelgelagerten 6mm Wellen montiert und über eine 1:2 Untersetzung mit den Motoren verbunden. Damit der Roboter nicht umkippt, verfügt er vorne und hinten über je ein kleines Stützrad.
Räder Aluminium, 10cm Durchmesser, Adapter für verschiedene Motorwellen
Motoren RB35 12V Getriebekopfmotoren (1:50), max. 120UpM (unbelastet!), max. 90 Ncm
Drehgeber HP/Agilent HEDS5600 (modifiziert, ohne Gehäuse), 360CPR quadrature encoded (entspricht also 1440CPR. Bei oben genannten Rädern also eine Auflösung von 0,2mm)
H-Brücken National Semiconductor LMD18200 (3A, 12-50V, mit current sensing)
Controller Eigens entwickelter dual Motorcontroller (PIC16F876). Regelkreissystem mit drei PID Reglern die die Geschwindigkeit der Antriebsräder unabhängig von Untergrund, Gewicht, Fertigungstoleranzen und Batteriepegel steuern können. Die Geschwindigkeitsdifferenz beider Räder wird konstant gehalten um genaue Kurvenradien und Geradeausfahrt zu ermöglichen. Gesteuert wird der Controller per I2C-Bus. Die zurückgelegte Distanz wird für jedes Rad ermittelt (Genauigkeit: 0,2mm + Fehler wg. Radschlupf) und es können relativ genau zuvor festgelegte Distanzen zurückgelegt werden.
Max. Geschwindigkeit etwa 30 cm/s, gedrosselt auf 24cm/s damit die Regelung gut funktioniert
Min. Geschwindigkeit 1-2 cm/s lässt sich noch recht genau einregeln
Sensoren
Nahbereichs-Sensorik 2 Stoßstangen vorne und hinten mit je zwei Mikroschaltern

8 Sharp IS471 IR Objektsensoren rund um den Roboter angeordnet

4 Sharp GP2D120 IR Sensoren mit 30cm Reichweite und Analogausgang
Ultraschallscanner Dual 180° Ultraschallscanner, zwei Devantech SRF08 Ultraschallsensoren mit max. 6m Reichweite rotierbar auf Schrittmotoren befestigt. Ein Scanzyklus dauert etwa 2 Sekunden und sendet pro Scanner 12 Pings aus.
Webcam Logitech Quickcam Express (ohne Gehäuse) mit USB Schnittstelle. Max. Auflösung 352x288px
Übertragen werden jedoch nur 200x168px @ 5fps denn der Rechner auf dem Roboter ist sonst nicht schnell genug zum Transkodieren des Videostreams von RGB nach JPEG_RTP... und der hat ja auch noch anderes zu tun. Naja - immerhin ist der Rechner ziemlich stromsparend, dafür das es ein x86 System ist.
Geplante zusätzliche Sensoren 4 LDR Sensoren, 4-8 stationäre Ultraschallsensoren, Linientracer mit 5-10 CNY70, Bakensystem
Software
Betriebssystem Roboter: Linux (Slackware 9.1, Kernel 2.4)
Client: Beliebig (Java fähig)
verwendete Programmiersprachen Embedded PC: Java 1.4.2
Client PC: Java 1.4.2
Mikrocontroller: Pascal
Komplexität Insgesamt etwa 25.000 Zeilen Quellcode (davon etwa 3.000 für die Mikrocontroller und 22.000 (mehr als 200 Klassen) für die Java Software)
Roboter Architektur

Hier ist die Architektur des Roboters grob in einem Diagramm dargestellt. Im Hintergrund sind die Abstraktionsebenen zu sehen.
Fotos

Der Roboter, etwa einen halben Meter hoch...

... und 25cm Durchmesser



Die Webcam des Roboters

Die Antriebsräder haben 10cm Durchmesser und sind recht schwer...

So wurden die Motoren von den Rädern entkoppelt (in einer früheren Version waren sie direkt an den Rädern angebracht)

Eines der Stützräder und im Vordergrund eine der Stoßstangen

Unter den Messing Abdeckungen in der Mitte befinden sich die ...

... extrem hochauflösenden Drehgeber. Auf diesem Foto sieht man eine 500CPR Version ;) (im Roboter sind 360er)

Der Motor Controller. Auf dem PIC wurde ein sehr kompliziertes Regelkreissystem implementiert, welches den Gleichlauf der Antriebsräder ermöglicht.

Eines der 12V 5Ah NiCd Akkupacks. Diese sehr schweren Akkus können leicht...

... ausgetauscht werden.

Drei der Infrarotsensoren. Oben zwei IS471 und unten ein GP2D120

Hier sieht man die "Intelligenz" des Roboters: links das Mainboard mit dem Haupt Mikrocontroller und einem weiteren, rechts der embedded PC mit PCMCIA WLAN Karte. Im Vordergrund ist ausserdem der DC/DC Wandler zu sehen.

Der Ultraschallscanner aus der Vogelperspektive. Man erkennt hier sehr gut wie mit vier kleinen Gabellichtschranken die Rotation kontolliert wird.

Das Grafik Display des Roboters. Die Grafikroutinen mussten selbst entwickelt werden (angefangen bei Linien und Ellipsen zeichnen...)

Zusätzlich gibt es eine komplette Grafikbibliothek die ähnlich wie das Java AWT aufgebaut ist.

Auch die Steuerungselektronik wurde selbst gebaut. (bis auf die kleine Platine mit Epson Controller und RAM - könnte man ja sonst nicht auf der Lochrasterplatine unterbringen)

Einer der ersten Tests des Rechners mit dem Display am LPT Port. Unter dem Display sieht man hier noch das alte Funkmodem.
Java Client PC Software - Screenshots

Die Software ist als MDI organisiert und Modular ausgelegt. Jedes der Module wird in einem eigenen Fenster dargestellt. Alle Sensordaten werden z.B. im Modul "WatchWindow" aufgelistet, einige davon werden im Modul "Robot" visualisiert, der Roboter kann über das Modul "Remote" gesteuert werden usw. usf.

Ein Simulator gehört ebenfalls zur Software. Auf dem Screenshot erkennt man eine etwas vereinfachte Version des Roboters, der gerade eine Route geplant hat und diese nun abfährt. (Das soll der reale Roboter später auch mal können...) Die Karte kann direkt im Simulator erstellt und editiert werden.
Fahrtest Videos
Hier finden Sie einige (ältere) Videos des Roboters. Er wurde während den Aufnahmen per WLAN vom Client PC aus gesteuert.
Diese Videos zeigen hauptsächlich die Funktionsweise des Regelungssystems. (z.B. in Video 2)

Die Videos wurden mit einer älteren Digitalkamera erstellt und sind deshalb jeweils immer nur 40 Sekunden lang (320x240 @ 15fps ) und jeweils etwa 2,7 MB groß. (Zum Download die Links rechts anklicken und "Ziel speichern unter" wählen!)

Video 1 ( Fahrtest; gleicher Bodenbelag )
Video 2 ( Fahrtest; verschiedene Bodenbeläge - hier sieht man gut wie die elektronische Regelung unterschiedliche Belastungen beider Antriebsräder ausgleicht und die Geschwindigkeit möglichst konstant hält)
Video 3 ( " )
Video 4 ( " )
Video 5 ( älteres Video - Roboter ohne Antenne und Kamera )

1. Platz beim Roboternetz.de Wettbewerb 2005
Die größte deutsche Robotik Community Roboternetz.de hatte Ende 2004 bzw. Anfang 2005 einen Roboterwettbewerb ausgeschrieben, bei dem alle User aus 36 Teilnehmern den Sieger wählen konnten. Das war dann mit 26% der Stimmen der A.R.C.ROBOT :-)

Rechts seht ihr die Urkunde.
c't Wettbewerb "Mach Flott den Schrott"
Dieser Wettbewerb war eigentlich nicht für Roboter gedacht (weshalb ich auch keinen Preis gewonnen habe). Es ging jedoch darum aus alten Computerteilen bzw. "Hightech Resten" neue und sinnvolle Dinge zu kontruieren. Deshalb passte mein Roboter mit seinem Linux PC und vielen Teilen aus alten Computern doch relativ gut zu dem Wettbewerb und ich meldete ihn einfach mal an. Und der A.R.C.ROBOT kam auch sehr gut bei den Usern von Heise Online an, denn bei 169 Beiträgen insgesamt ist er unter die ersten 30 gekommen, die dann auf der CeBIT 2005 vorgestellt wurden.

Da ich keine Zeit hatte den Roboter zur CeBIT zu bringen, ist ein Reporter vom HR vorbeigekommen und hat ein kleines Video vom A.R.C.ROBOT gedreht. (übrigens hat der Reporter im Video wohl versehentlich aus 50%, 75% gemacht...)
Dies wurde dann auf einem großen Plasma Bildschirm in einer Endlosschleife auf dem Heise Stand zusammen mit zwei weiteren Projekten die nicht zur CeBIT kommen konnten gezeigt. Auch bei der Preisverleihung war es auf einer großen Leinwand zu sehen und die ersten 35 Sekunden wurden sogar am 19.3.2005 um 12:30 Uhr im Fernsehen bei CT Magazin TV auf HR gezeigt! (Hier gibt es die komplette Sendung als Real Stream.)

Das Video ist eine Minute lang und kann in stark komprimierter Form hier heruntergeladen werden:

--- A.R.C.ROBOT c't VIDEO ---
( Kamera: Sony 16:9 DV Kamera; komprimiertes Video: 500x288px, DVD MPEG, 58 Sekunden, 7.9MB)

Mit freundlicher Genehmigung des c't Magazins.
Zeitungsartikel
Ein Anreiz zur Konstruktion des Roboters war (unter anderem - macht ja schließlich auch ne menge Spaß ;) ) auch die sog. "Besondere Lernleistung". Diese Arbeit ist ähnlich der normalen Facharbeit, nur viel umfangreicher und die Bewertung fließt mit in die Abiturwertung ein. Meine Lehrer waren natürlich recht beeindruckt von dem Roboter und auch der Arbeit von Johannes Steins und haben deshalb gleich einen kleinen Pressetermin arrangiert. Nebenstehend sieht man das Ergebnis ;) (Artikel aus dem "Westfälischen Volksblatt")
Copyright
©2004/2005 by Dominik S. Herwald | http://www.dsh-elektronik.de/
d.herwald@dsh-elektronik.de