zurück zum Artikel

c't-Bot und c't-Sim

Praxis & Tipps | Projekt

Der c't-Bot liefert einen Einstieg in den Roboterbau und sein Software-Kamerad c't-Sim führt in die Programmierung von Robotern und Simulatoren ein.

c't-Bot

c't-Bots drehen auf der Stelle, spielen mit Kollegen Räuber und Gendarm, sammeln Golfbälle ein und bieten viel Spielraum für eigene Experimente. Wer nicht löten möchte, der erschafft mit c't-Sim virtuelle Roboter, lässt sie im automatisch generierten Labyrinth gegeneinander antreten und transplantiert ihre Intelligenz vielleicht später bei Freunden in reale c't-Bots.

Mit dem Projekt will c't sowohl einen Einstieg in den Roboterbau als auch in die Programmierung von Robotern und Simulatoren unterstützen. Unter Support finden sich Hinweise auf vielfältige Informations- und Austauschmöglichkeiten. Höhepunkt des Projekts war der c't-Sim-Wettbewerb, bei dem virtuelle c't-Bots um die Wette ein Labyrinth mit Fallgruben durchqueren mussten.

Der c't-Bot ist als relativ preiswerte und flexible Plattform für eigene Entwicklungen gedacht. Vielfältige Erweiterungen sowohl der Mechanik als auch der Elektronik sind möglich. Unbestückte Platinen für unsere Basisversion bieten eMedia und Segor electronics [1] an. Komplette Teile- und Mechaniksätze gibt es ebenfalls bei Segor.

Code, Doku und weitere Infos

Zentrale Anlaufstelle: Wiki [2]

Bug-Tracker [3]

Roadmap [4]

Leser-Patches [5]

Installationsanleitung [6]

Dokumentation C-Teil [7]

Dokumentation Java-Teil [8]

Code-Richtlinien [9]

Das Erweiterungsmodul [10] erlaubt es dem c't-Bot per LAN und WLAN zu kommunizieren. Über einen Steckplatz für SD- oder MMC-Karten lässt sich der Speicher des Roboters stark erweitern. Eine Klappe [11] kann das Transportfach verriegeln, so dass der Roboter Gegenstände einsammeln und transportieren kann.

Das Bild des c't-Bot aus c't 02/06 gibt es als Bildschirmhintergrund in verschiedenen Auflösungen zum Download.

Insbesondere Quereinsteigern möchten wir den in das Projekt einführenden c't-Artikel [12] sowie einige weitere ans Herz legen. Danach führt das c't-Bot-Wiki [13] die Ersten Schritte [14]. Viele Fragen beantwortet die FAQ [15]. Kontakt zur Community gibt es über das Forum [16] (das auch eine Suchfunktion bietet). Die Mailingliste ist seit 2014 eingestellt, aber in ihrem Archiv [17] gibt es trotzdem noch wertvolle Informationen.

Der Code für den c't-Bot [18] wird in C programmiert - egal ob für den realen Bot oder den Simulator. So lassen sich komplexe Verhaltensmuster für den Bot zunächst am PC testen. Eine Basisversion des c't-Bot wird gemeinsam weiterentwickelt.

Screenshot

Auch der in Java geschriebene Simulator [19] selbst wird gemeinsam weiterentwickelt. Der c't-Sim kommuniziert mit mehreren virtuellen Robotern, gaukelt ihnen eine Umgebung vor und liefert Sensorwerte zurück.

Zugang zum aktuellen Code bekommt man über Downloads. Leser-Patches [20], die c't-Bot und c't-Sim um neue Funktionen bereichern, sind ausdrücklich erwünscht. Interessante und clevere Erweiterungen, die (noch) nicht Eingang in die offizielle Codebasis gefunden haben, veröffentlichen wir gerne [21].

c't-Artikel erklären Grundlegendes für die Botprogrammierung und die Weiterentwicklung des Sim. Wer zum Einstieg in die Programmierung mehr Anleitung braucht oder Details zu elektronischen Bauteilen nachlesen will, wird bei unserer Sammlung nützlicher Links fündig. Dort gibt es auch Links zu verwandten c't-Projekten.

Im Diskussionsforum [22] kann man über eigene Ideen, Erweiterungen, Software und Probleme beim Aufbau diskutieren. Viele Fragen rund um c't-Sim und c't-Bot werden dort diskutiert und beantwortet — die häufigsten Fragen haben wir zusätzlich noch in einer FAQ [23] gesammelt.

[24]

Noch direkter kommt man per IRC (Internet Relay Chat) mit anderen Bot-Fans in Kontakt. Auf dem Server pizza.de.eu.blitzed.org, Port 6667 trifft man im Kanal #ct-bot meist kompetente Gesprächspartner. Um am Chat teilzunehmen, braucht man eine spezielle Chat-Software wie mIRC [25] für Windows oder Kopete für Linux.

Die Hilfestellungen für den Aufbau der Hardware und den Zusammenbau der Erweiterung, die über den Inhalt der eigentlich Artikel hinaus sehr nützlich sind, finden Sie inzwischen im Wiki der Trac-Instanz zum Projekt:

Aufbauanleitung und -Hilfen [26]

Erweiterung [27]

Damit kleine Programmierfehler keine großen Folgen haben, lohnt sich der ausführliche Test des Steuercodes, bevor dieser in den Roboter übertragen wird. Dazu bedarf es allerdings einer Umgebung, die den Routinen vorgaukelt, tatsächlich einen Bot zu steuern, der sich durch eine Welt voller Hindernisse bewegt. Eine solche Testumgebung bietet der Roboter-Simulator c't-Sim.

ACHTUNG: Für den c't-Sim-Labyrinthwettbewerb kommt eine spezielle Version des Simulators zum Einsatz. Wie man diese gezielt aus dem CVS auslesen kann, beschreibt ein gesonderter Abschnitt der Installationsanleitung [28].

Für Trainingsläufe haben wir den c't-Sim mit einem Labyrinthgenerator [29] ausgestattet, der auf Knopfdruck jeweils einen neuen, mit den Regeln des Wettbewerbs konformen Parcours erzeugt.

Will man den Simulator möglichst schnell in Gang setzen, braucht man dazu nur eine Java-Laufzeitumgebung nebst der Java-3D-Bibliothek (siehe Installationsanleitung [30]) und die beiden ausführbaren Dateien ct-Bot.exe (Windows) beziehungsweise ct-Bot.elf (Linux) sowie ct-Sim.jar (für beide Plattformen) aus dem Binaries-Zip-Archiv. Die Simulationsumgebung ct-Sim.jar startet man auf der Kommandozeile über:

java -jar ct-Sim.jar

Sie öffnet ein Fenster mit der grafischen Darstellung der (noch leeren) Welt sowie ein zweites, das später für jeden Bot eine Kontrolltafel zeigt. In einer zweiten Konsole startet man den ct-Bot. Dieser meldet sich über eine TCP/IP-Verbindung beim Simulator an, standardmäßig verwendet er die lokale IP (127.0.0.1) auf Port 10001. Sein roter Avatar taucht innerhalb der simulierten Umwelt auf, im anderen Fenster erscheint eine Kontrolltafel, auf der die Zustände der IR-Sensoren und der Motoren sowie Position und Blickrichtung des Bot als Zahlen angezeigt werden. Werte, die der Benutzer zur Laufzeit direkt beeinflussen kann, verfügen außerdem über einen Schieberegler. Wird die Checkbox "setzen" aktiviert, überschreibt der eingestellte Wert den aktuellen Zustand des Bot. Möchte man solche Einstellungen nicht im laufenden Betrieb vornehmen, unterbricht die "Pause"-Taste die Simulation vorübergehend.

[31]

Für Trainingsläufe zum c't-Sim-Wettbewerb haben wir den c't-Sim mit einem Irrgarten-Generator ausgestattet. Dieser liefert frische Herausforderungen, wenn der Bot die Standardstrecken des Simulators bereits mit links absolviert. Ein neues, mit den Regeln des Wettbewerbs konformes Labyrinth erhält man jedesmal, indem man im Sim auf den Menüpunkt Welt/Generieren klickt. Möchte man die Strecke intensiver trainieren, kann man sie über Welt/Speichern unter einem selbst gewählten Dateinamen auf die Festplatte bannen.

Klickt man auf Welt/Generieren, ruft der Simulator die Methode generateParc() auf einem Objekt des Typs ParcoursGenerator auf. Diese lost für sechs Parameter zufällige Werte aus: Breite und Höhe der Rennstrecke sind ebenso variabel wie die Dichte der Hindernisse entlang der Außenwände (wallRoughness) und im Inneren des Labyrinths (innerRoughness). Der Verschnörkelungsfaktor twirling bestimmt, um viele Ecken sich Hindernisse schlängeln dürfen, perforation legt die Häufigkeit von Löchern fest.

Jeder Schritt des Irrgartenbaus ist in eine eigene private Methode ausgelagert. Für Schikanen sorgen roughenWalls() und generateFreeObstacles(). Der Generator bestimmt für Hindernisse zunächst eine zufällige Anfangskoordinate und die Richtung, generateTwirl() zieht anschließend eine Wand durch das Spielfeld. Die Methode bestimmt zufällig eine Wunschlänge für das nächste Segment und prüft anschließend feldweise, ob in der angepeilten Richtung genügend freier Platz vorhanden ist, um die Mauer zu verlängern. Verhindern andere Wände das weitere Wachstum in diese Richtung oder ist die Wunschlänge des Segments erreicht, ruft sich generateTwirl() mit einer zufälligen neuen Richtung rekursiv selbst auf - insgesamt so oft, wie der Wert des Verschnörkelungsfaktors twirling beträgt.

Die Methoden stellen dabei sicher, dass keine Durchgänge schmaler als zwei Felder gebaut werden und dass jedes Bodenfeld im Labyrinth erreichbar ist. Sind die Wände platziert, werden zufällig bestimmte Mauerteile durch Fallgruben ersetzt. Bis hier arbeitet der Generator nur auf der linken Hälfte des Labyrinths, die rechte fügt er durch einfache Spiegelung hinzu, um einen symmetrischen Parcours zu erhalten. Anschließend fügt er noch die Startfelder ein und verpackt das ganze in einen XML-String, mit dem der ParcoursLoader des c't-Sim zurechtkommt.

Zu Testzwecken besitzt die Klasse ParcoursGenerator noch eine eigene main()-Methode, die nacheinander zwanzig Labyrinthe erzeugt und über printParc() auf der Textkonsole ausgibt - der besseren Übersicht wegen ohne XML-Kapselung.

c't 2/2006 [32]: Editorial
Hallo, mein Name ist Benjamin. Ich bin süchtig

c't 2/2006, S. 130 [33]: Spielgefährten
Roboter für Löter, Simulator für Soft-Werker

c't 3/2006, S. 186 [34]: Virtuelle Spielgefährten
Simulator für c't-Bots

c't 4/2006, S. 208 [35]: Hallo Welt!
Aufbau und Inbetriebnahme des c't-Bot

c't 5/2006, S. 224 [36]: Drängelnde Spielgefährten
Kollisionen und Sensoren für den c't-Sim, neues Verhalten für den c't-Bot

c't 6/2006, S. 264 [37]: Nervensystem
Programmierung des c't-Bot von der Pike auf

c't 7/2006, S. 218 [38]: Hohe Schule
c't-Bots bewältigen komplexe Aufgaben

c't 7/2006, S. 223 [39]: An der Leine
Debuggen des c't-Bot über USB

c't 9/2006, S. 222 [40]: Steuermann
Mit einer Drehzahlregelung fährt der c't-Bot geradeaus und mit konstanter Geschwindigkeit

c't 10/2006, S. 236 [41]: Ausgang gesucht!
Komplexe Verhalten für den c't-Bot selbst entwickelt

c't 11/2006, S. 214 [42]: Genesis
c't-Sim: Weltenbau und Netzwerkzuschauer

c't 12/2006, S. 240 [43]: Kammerjäger
Fehlersuche in elektronischen Schaltungen

c't 13/2006, S, 226 [44]: Wo bin ich?
Positionsbestimmung für den c't-Bot

c't 15/2006, S. 210 [45]: Hase und Igel
Roboterwettbewerb im Simulator c't-Sim

c't 19/2006, S. 198 [46]: An der nächsten Ecke links ...
Karten bauen (nicht nur) mit dem c't-Bot

c't 24/2006, S. 52 [47]: Finden oder verlieren
Ganz unterschiedliche Ansätze bewährten sich im c't-Sim-Wettbewerb

c't 2/2007, S. 184 [48]: Außendienstler
Funkmodul, Massenspeicher und Klappe für den c't-Bot

Projektseite
http://www.ct-bot.de [49]

Leserforum
http://www.heise.de/ct/foren/S-c-t-Bot-und-c-t-Sim/forum-89813/list/hs-0/ [50]

Verwandte Projekte

Fan-Seiten

alternative Software

Hardware

Funkmodul

Videos und Bilder vom c't-Bot

Java

C-Umgebung unter Windows

Eclipse-Plugins als zip-Archive

Treiber zum USB-2-Bot-Adapter

Mikrocontroller

Programmieradapter

RC6-Fernbedienungskommandos

Programmierung von SD-/MMC-Karten

C-Programmierung

Java-Programmierung

Java 3D

Java 2 Platform Standard Edition 5.0 API Specification

JDK 5.0 Dokumentation

Java 3D API

Allgemein

Löten

Widerstand

Potenziometer

Photowiderstände (LDR)

Kondensator

Diode

Leuchtdiode

Transistor

ICs im DIL-Sockel: Ein Punkt oder Dreieck markiert PIN 1. Von dort wird gegen den Uhrzeigersinn im Kreis gezählt. Sockel und IC weisen an der Stirnseite bei PIN 1 eine Kerbe auf.

optischer Maussensor

Robotik

Elektronik

Allgemeines

Grey Walter und seine kybernetischen Schildkröten

Rodney Brooks über die Subsumptionsarchitektur

Wer den Code für den Roboter oder den Simulator verändern will, sollte immer auf die aktuelle Version zugreifen. Diese bieten wir per Subversion (SVN) an. Wie man Code aus dem CVS direkt in die Entwicklungsumgebung Eclipse importiert und wie man sich im Code-Repository [175] zurecht findet, beschreibt ein kleines Howto [176].

Das SVN ist erreichbar unter: https://www.heise.de:444/svn/ctbot [177].

Wir empfehlen, den Code für c't-Bot und c't-Sim aus dem SVN zu benutzen — dieser befindet sich stets auf dem neuesten Stand. Falls Sie nicht auf das SVN zugreifen können (etwa weil Ihr Rechner durch eine Firewall vom Internet abgeschottet ist, welche die notwendigen Ports geschlossen hält), können Sie auf den Code aus Zip-Archiven zurückgreifen. Solche Archive bringen wir allerdings nur bei umfangreicheren Änderungen auf den neuesten Stand, nicht für jedes kleine Bugfix, deshalb ist der Code im Zip-Archiv eventuell älter als jener im SVN.

Wenn Sie trotzdem auf das Zip-Archiv zugreifen wollen oder müssen, laden Sie es sich über unser Webfrontend [178] auf den eigenen Rechner und packen es aus. Nach dem Start von Eclipse kann unter dem Menüpunkt "File/Import" die Option "Existing Project into Workspace" ausgewählt werden. Als "root directory" muss dann der Ordner "ct-Sim" oder "ct-Bot" angeben werden.

Der Sourcecode für den Roboter liegt in den Dateien ct-bot-XX.zip, der für den Simulator in ct-Sim-XX.zip. In binaries-xx.zip finden sie fertig übersetzte Binaries für Mikrocontroller, Windows und Linux.

Test-Programm, um spontanen Resets auf die Schliche zu kommen (reset-test.zip) [179]

Vorlage Rad-Encoder-Scheiben (vorlage_radencoder_scheiben-01.zip) [180]

Das Rennen ist gelaufen: Der im Sommer angekündigte c't-Sim-Wettbewerb wurde vom 18. bis 20. Oktober 2006 ausgetragen und hier online live übertragen. Wer das Turnier verpasst hat, kann sich über einen Klick auf das jeweiligen Ergebnis im Spielplan [181] eine Wiederholung einzelner Matches anschauen.

Ergebnisse

1. Platz und Turniersieger: Martin Henschke, Team Willy, Roboter n++
2. Platz: Josef Schützenberger, Team austro-bot, Roboter austro-bot
3. Platz: Ralph-Dieter Wetzel, Team CreyBax, Roboter CreyBot

Rückblick auf den Turnierablauf

Vorrunde [182] mit 26 Einzelläufen

1. Runde [183] und 2. Runde [184] mit 18 Matches

Finalrunden [185] mit 8 Matches

Simulierte c't-Bots traten in einem K.o.-Turnier mit Vorrunde gegeneinander an. In jeder Runde mussten sie binnen weniger Minuten ein anderes Labyrinth bewältigen - ohne sich zu verirren, steckenzubleiben oder in einen Abgrund zu stürzen. Nur diejenigen, deren Bots alle Parcours-Varianten erfolgreich durchqueren konnten, hatten eine Chance auf den Gewinn eines der drei von der c't-Redaktion ausgelobten c't-Bot-Bausätze.

[187]Vorrunde am 18.10.2006 ab 15 Uhr

Team-Nr. Teamname Botname Ergebnis Rang Freilos
1 Menzelfr Frankis 40 sek [189] 7
2 Elsperger Harry 1.81 meter [190] 21
3 austro-bot austro-bot 36 sek [191] 5 X
4 Willy n++ 35 sek [192] 4 X
5 Caver Caver 66 sek [193] 12
6 Wolfpack Alphawolf 3.19 meter [194] 24
7 mazeracer mazeracer1 222 sek [195] 18
8 Blackbird Golem Forges (BGF) Silicon Elemental 1.49 meter [196] 20
9 curious-george curious george 102 sek [197] 15
10 Hush Puppies Highlander 24 sek [198] 2 X
11 Faluzure Silver 3.16 meter [199] 23
12 WgGroup Fridolin 109 sek [200] 16
13 Die Klaustrophoben Klaus 38 sek [201] 6
14 bluero bluebot 3.72 meter [202] 27
15 Chillmaster Chillmaster 19 sek [203] 1 X
16 Buggy Buggy 50 sek [204] 10
17 Jakob Jakobi jj1 75 sek [205] 13
18 Pathfinder Pathfinder 42 sek [206] 8
19 Kheperaner Volksbot 3.19 meter [207] 25
20 NARF - Nur Anfänger Rotieren Falschrum BrainBot 32 sek [208] 3 X
21 Brainbug Brainbug 228 sek [209] 19
22 a man and his droid droid 2.66 meter [210] 22
23 Crabot soney 44 sek [211] 9
24 Robinho robinho_slow 199 sek [212] 17
25 Blade Blade 81 sek [213] 14
26 CreyBax CreyBot 54 sek [214] 11
27 RollingRosi RollingRosi 3.19 meter [215] 26

[216]1. Runde am 19.10.2006 ab 15 Uhr

Match Team 1 Bot 1 Ergebnis 1 Team 2 Bot 2 Ergebnis 2 Match-Sieger
2 Crabot soney 1.7 meter Blackbird Golem Forges (BGF) Silicon Elemental 29.5 sek Silicon Elemental [218]
4 Jakob Jakobi jj1 57.4 sek Wolfpack Alphawolf 2.3 meter jj1 [219]
6 CreyBax CreyBot 33.1 sek a man and his droid droid 3.2 meter CreyBot [220]
7 Menzelfr Frankis 179.6 sek mazeracer mazeracer1 3.6 meter Frankis [221]
8 curious-george curious george 130.8 sek RollingRosi RollingRosi 2.3 meter curious george [222]
10 Buggy Buggy 26.1 sek Elsperger Harry 0.5 meter Buggy [223]
11 Die Klaustrophoben Klaus 3.2 meter Robinho robinho_slow 112.8 sek robinho_slow [224]
12 Blade Blade 41.0 sek Kheperaner Volksbot 2.3 meter Blade [225]
14 Caver Caver 65.5 sek Faluzure Silver 2.1 meter Caver [226]
15 Pathfinder Pathfinder 32.9 sek Brainbug Brainbug 2.6 meter Pathfinder [227]
16 WgGroup Fridolin 1.9 meter bluero bluebot 2.2 meter Fridolin [228]

[229]2. Runde am 19.10.2006 ab 15.30 Uhr

Match Team 1 Bot 1 Ergebnis 1 Team 2 Bot 2 Ergebnis 2 Match-Sieger
1 Chillmaster Chillmaster 2.8 meter Blackbird Golem Forges (BGF) Silicon Elemental 35.7 sek Silicon Elemental [231]
2 austro-bot austro-bot 33.8 sek Jakob Jakobi jj1 3.2 meter austro-bot [232]
3 NARF - Nur Anfänger Rotieren Falschrum BrainBot 1.6 meter CreyBax CreyBot 21.6 sek CreyBot [233]
4 Menzelfr Frankis 3.2 meter curious-george curious george 1.5 meter curious george [234]
5 Hush Puppies Highlander 36.1 sek Buggy Buggy 2.3 meter Highlander [235]
6 Robinho robinho_slow 2.3 meter Blade Blade 80.3 sek Blade [236]
7 Willy n++ 37.7 sek Caver Caver 2.6 meter n++ [237]
8 Pathfinder Pathfinder 47.4 sek WgGroup Fridolin 3.9 meter Pathfinder [238]

[239]Finalrunden am 20.10.2006 ab 15 Uhr

Viertelfinale ab 15 Uhr

Match Team 1 Bot 1 Ergebnis 1 Team 2 Bot 2 Ergebnis 2 Match-Sieger
1 Blackbird Golem Forges (BGF) Silicon Elemental 1.8 meter austro-bot austro-bot 58.6 sek austro-bot [241]
2 CreyBax CreyBot 44.6 sek curious-george curious george 5.1 meter CreyBot [242]
3 Hush Puppies Highlander 6.6 meter Blade Blade 245.5 sek Blade [243]
4 Willy n++ 42.4 sek Pathfinder Pathfinder 0.8 meter n++ [244]

Halbfinale ab 15.15 Uhr

Match Team 1 Bot 1 Ergebnis 1 Team 2 Bot 2 Ergebnis 2 Match-Sieger
1 austro-bot austro-bot 31.6 sek CreyBax GreyBot 4.8 meter austro-bot [246]
2 Blade Blade 4.9 meter Willy n++ 4.4 meter n++ [247]

Spiel um 3. Platz ab 15.30 Uhr

Match Team 1 Bot 1 Ergebnis 1 Team 2 Bot 2 Ergebnis 2 Match-Sieger
1 CreyBax CreyBot 94.2 sek Blade Blade 3.4 meter CreyBot [249]

Finale ab 15.45 Uhr

Match Team 1 Bot 1 Ergebnis 1 Team 2 Bot 2 Ergebnis 2 Match-Sieger
1 austro-bot austro-bot 5.1 meter Willy n++ 75.1 sek n++ [251]

Die umfangreiche FAQ haben wir in einen eigenen Beitrag ausgelagert [252].


URL dieses Artikels:
http://www.heise.de/-284119

Links in diesem Artikel:
[1] http://www.segor.de/
[2] http://www.heise.de/ct/projekte/machmit/ctbot/wiki
[3] http://www.heise.de/ct/projekte/machmit/ctbot/report
[4] http://www.heise.de/ct/projekte/machmit/ctbot/roadmap
[5] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Patches
[6] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Installationsanleitung
[7] http://www.heise.de/ct/projekte/ct-bot/doc/ct-bot/
[8] http://www.heise.de/ct/projekte/ct-bot/doc/ct-sim/
[9] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Coderichtlinien
[10] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/ct-Bot-Erweiterung
[11] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/ct-Bot-Erweiterung
[12] https://www.heise.de/ct/artikel/Spielgefaehrten-290274.html
[13] http://www.heise.de/ct/projekte/machmit/ctbot/wiki
[14] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/FirstSteps
[15] https://www.heise.de/ct/artikel/FAQ-fuer-c-t-Bot-und-c-t-SIM-291940.html
[16] http://www.heise.de/ct/foren/S-c-t-Bot/forum-89813/list/
[17] http://www.heise.de/ct/newsletter/archiv/ct-bot-entwickler/
[18] http://www.heise.de/ct/projekte/ct-bot/doc/ct-bot/
[19] http://www.heise.de/ct/projekte/ct-bot/doc/ct-sim/
[20] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Patches
[21] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Patches
[22] http://www.heise.de/ct/foren/go.shtml?list=1&forum_id=89813
[23] https://www.heise.de/ct/artikel/FAQ-fuer-c-t-Bot-und-c-t-SIM-291940.html
[24] 
[25] http://www.mirc.co.uk/
[26] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/ct-Bot-Hardware
[27] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/ct-Bot-Erweiterung
[28] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Installationsanleitung
[29] #labyrinthgenerator
[30] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/Installationsanleitung
[31] 
[32] http://www.heise.de/ct/artikel/Hallo-mein-Name-ist-Benjamin-Ich-bin-suechtig-290260.html
[33] https://www.heise.de/ct/artikel/Spielgefaehrten-290274.html
[34] https://www.heise.de/ct/artikel/Virtuelle-Spielgefaehrten-290294.html
[35] https://www.heise.de/ct/artikel/Hallo-Welt-290314.html
[36] https://www.heise.de/ct/artikel/Draengelnde-Spielgefaehrten-290334.html
[37] https://www.heise.de/ct/artikel/Nervensystem-290376.html
[38] https://www.heise.de/ct/artikel/Hohe-Schule-290392.html
[39] http://www.heise.de/ct/artikel/An-der-Leine-290394.html
[40] https://www.heise.de/ct/artikel/Steuermann-290434.html
[41] https://www.heise.de/ct/artikel/Ausgang-gesucht-290460.html
[42] https://www.heise.de/ct/artikel/Genesis-290480.html
[43] https://www.heise.de/ct/artikel/Kammerjaeger-290506.html
[44] https://www.heise.de/ct/artikel/Wo-bin-ich-290526.html
[45] https://www.heise.de/ct/artikel/Hase-und-Igel-290566.html
[46] http://www.heise.de/ct/artikel/An-der-naechsten-Ecke-links-290662.html
[47] http://www.heise.de/ct/artikel/Finden-oder-verlieren-290750.html
[48] https://www.heise.de/ct/artikel/Aussendienstler-290830.html
[49] http://www.ct-bot.de
[50] http://www.heise.de/ct/foren/S-c-t-Bot-und-c-t-Sim/forum-89813/list/hs-0/
[51] https://www.heise.de/ct/artikel/Netz-Schalter-284123.html
[52] https://www.heise.de/ct/artikel/c-t-COM-auf-LAN-Adapter-284121.html
[53] https://www.heise.de/ct/artikel/Musik-Transporter-284171.html
[54] http://www.ctbot.de
[55] http://www.alternativesdenken.de/roboland/ibot2.html
[56] http://mad-kow.de/index.php?show=atqSSeJC
[57] http://www.henkessoft.de/Roboter/Roboter.htm
[58] http://www.42degrees.de/apra.jsp
[59] http://www.mathematik.uni-marburg.de/~rodionov/index.php?entry=2&subentry=4
[60] http://ct-bot.teschpfad.de
[61] http://www.tu-ilmenau.de/fakia/START.4513.0.html
[62] http://www.roboternetz.de/wissen/index.php/C't-Bot
[63] http://techwww.in.tu-clausthal.de/Projekte/Fussballroboter/ctbot/Einleitung.htm
[64] http://www.srz.tu-dresden.de/index.php?Seitenauswahl_global=Schuelerbereich&Seitenauswahl_lokal=Kursangebot&Nr=10
[65] http://www.lfbs.rwth-aachen.de/users/global/SA_DA/Studienarbeit_bluebot.pdf
[66] http://swe.uni-duisburg-essen.de/en/members/schmidt/ctbot/index.php
[67] http://wwwcs.uni-paderborn.de/cs/ag-klbue/de/courses/ss07/pg_maeusezoo/index.html
[68] http://wiesolator.de/index.php?area=Robotik&topic=ct-Bot
[69] http://sourceforge.net/projects/nanovm
[70] http://vehikel.sourceforge.net/
[71] http://www.emedia.de/bin/hw.pl
[72] http://www.segor.de/L1Bausaetze/ct-robot.shtml
[73] http://www.lantronix.de
[74] http://www.lantronix.com/pdf/WiPort_UG.pdf
[75] http://www.lantronix.com/device-networking/utilities-tools/device-installer.html
[76] http://ltxfaq.custhelp.com/cgi-bin/ltxfaq.cfg/php/enduser/std_adp.php?p_sid=nq4Ctech&p_lva=&p_faqid=943&p_created=1075227796&p_sp=cF9zcmNoPSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9NzgxJnBfcGFnZT01&p_li=
[77] http://youtube.com/watch?v=-AMo10Cc9L0
[78] http://java.sun.com/j2se/1.5.0/download.jsp
[79] http://www.eclipse.org/downloads/
[80] https://java3d.dev.java.net/binary-builds.html
[81] http://www.mingw.org/download.shtml#hdr2
[82] http://www.mingw.org/download.shtml#hdr2
[83] ftp://sources.redhat.com/pub/pthreads-win32/
[84] http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc
[85] http://download.eclipse.org/tools/cdt/releases/eclipse3.1/dist/3.0.1/
[86] http://home.gna.org/eclox/
[87] http://ftdichip.com
[88] http://ftdichip.com/Drivers/D2XX.htm
[89] http://ftdichip.com/Drivers/VCP.htm
[90] http://bleyer.org/jd2xx/
[91] http://jd2xx.dev.java.net/servlets/ProjectDocumentList
[92] http://www.dest-unreach.org/socat
[93] http://www.mikrocontroller.net/articles/AVR_Eclipse
[94] http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
[95] http://www.mikrocontroller.net/articles/AVR-Simulation
[96] http://www.elektronik-projekt.de/wiki2/index.php/WinAVR_Tutorial
[97] http://www.kreatives-chaos.com/index.php?seite=avrgcc
[98] http://www.rowalt.de/mc/index.htm
[99] http://www.mikrocontroller.net/tutorial/
[100] http://www.mikrocontroller.net/articles/Pony-Prog_Tutorial
[101] http://www.avr-asm-tutorial.net/avr_de/index.html
[102] http://www.mikrocontroller.net/articles/AVR_Fuses
[103] http://www.mikrocontroller.net/articles/AVR_In_System_Programmer
[104] http://palmavr.sf.net/fc/
[105] http://www.eecs.berkeley.edu/~mseeman/resources/macmicro.html
[106] http://www.mikrocontroller.net/articles/AVR_In_System_Programmer
[107] http://www.nongnu.org/avrdude/
[108] http://www.lancos.com/prog.html
[109] http://www.xs4all.nl/~sbp/knowledge/ir/rc6.htm
[110] http://www.xs4all.nl/~sbp/knowledge/ir/ir.htm
[111] http://www.ulrichradig.de/home/index.php/avr/mmc-sd
[112] http://www.alldatasheet.net/datasheet-pdf/pdf/98499/HITACHI/HB28E016MM2.html
[113] http://www.roboternetz.de/wissen/index.php/C-Tutorial
[114] http://cplus.about.com/od/beginnerctutoria1/l/blctut.htm
[115] http://crasseux.com/books/ctutorial/
[116] http://de.wikibooks.org/wiki/C-Programmierung:_Einfache_Ein-_und_Ausgabe
[117] http://www.uni-koeln.de/rrzk/kurse/unterlagen/ckurs/ck4.html
[118] http://java.sun.com/docs/books/tutorial/
[119] http://www.gailer-net.de/tutorials/java/java-toc.html
[120] http://www.javacoffeebreak.com/tutorials/gettingstarted/index.html
[121] http://www.addison-wesley.de/Service/Krueger/javabuch.htm
[122] http://www.javabuch.de/download.html
[123] http://www.tutego.com/javabuch/
[124] http://www.boku.ac.at/javaeinf/jein.html
[125] http://www.programmierkurs-java.de/
[126] http://java3d.j3d.org/
[127] http://java3d.j3d.org/tutorials/index.html
[128] http://www.micg.et.fh-stralsund.de/Java3D/java3D.htm
[129] http://java.sun.com/developer/onlineTraining/java3d/
[130] http://www-gs.informatik.tu-cottbus.de/~wwwgs/cg2_uebun.htm
[131] http://java3d.virtualworlds.de/books.php
[132] http://www.javadesktop.org/forums/thread.jspa?forumID=55&threadID=14860&messageID=97981#97981
[133] http://java.sun.com/j2se/1.5.0/docs/api/
[134] http://java.sun.com/j2se/1.5.0/docs/index.html
[135] http://download.java.net/media/java3d/javadoc/1.4.0-latest/index.html
[136] http://www.elexs.de
[137] http://www.elektronik-kurs.de/online/index.html
[138] http://www.b-kainka.de/hobbyel.htm
[139] http://www.elektronik-kompendium.de
[140] http://www.kreatives-chaos.com
[141] http://www.mikrocontroller.net
[142] http://www.sn.schule.de/~gyfloeha/rt/rt.html
[143] http://www.mikrocontroller.net/articles/L%F6ten_%28praktisch%29
[144] http://www.wagener-net.de/seite42.htm
[145] http://www.elexs.de/loet1.htm
[146] http://de.wikipedia.org/wiki/Widerstand
[147] http://www.okaphone.nl/calc/widerstand.shtml
[148] http://de.wikipedia.org/wiki/Potentiometer
[149] http://www.elektronik-kompendium.de/sites/bau/0110301.htm
[150] http://de.wikipedia.org/wiki/LDR
[151] http://de.wikipedia.org/wiki/Kondensator_%28Elektrotechnik%29
[152] http://www.elektronik-kompendium.de/sites/praxis/kzkond.htm
[153] http://de.wikipedia.org/wiki/Diode
[154] http://de.wikipedia.org/wiki/Leuchtdiode
[155] http://de.wikipedia.org/wiki/Transistor
[156] http://www.roboternetz.de/phpBB2/viewtopic.php?p=60367#60367
[157] http://home.comcast.net/~maccody/robotics/croms-1/croms-1.html
[158] http://www.avagotech.com/products/document-results.jsp?catId=5233
[159] http://sprite.student.utwente.nl/~jeroen/projects/mouseeye/
[160] http://www.roboternetz.de
[161] http://www.roboterwelt.de
[162] http://www.elektronik-projekt.de
[163] http://www.the-starbearer.de
[164] http://www.electronicsplanet.ch
[165] http://www.mikrocontroller.net
[166] http://www.avrfreaks.net
[167] http://www.lugbz.org/documents/smart-questions_de.html
[168] http://www.uni-leipzig.de/netikett.htm
[169] http://de.wikipedia.org/wiki/Netiquette
[170] http://personal.pitnet.net/usr/gasperi/walter.htm
[171] http://en.wikipedia.org/wiki/Walter_Grey_Walter
[172] http://people.csail.mit.edu/brooks/papers/AIM-864.pdf
[173] http://www.atmel.com
[174] http://www.robotest.de/?RoboTest_2008
[175] http://www.heise.de/ct/projekte/machmit/ctbot/browser
[176] http://www.heise.de/ct/projekte/machmit/ctbot/wiki/SVNUndEclipse
[177] https://www.heise.de:444/svn/ctbot/
[178] http://www.heise.de/ct/projekte/machmit/ctbot/browser/ziped-releases
[179] https://www.heise.de/ct/downloads/04/2/5/8/6/2/4/reset-test.zip
[180] https://www.heise.de/ct/downloads/04/2/5/8/6/2/4/vorlage_radencoder_scheiben-01.zip
[181] #spielplan
[182] #spielplan_vorrunde
[183] #spielplan_ersterunde
[184] #spielplan_zweiterunde
[185] #spielplan_finale
[186] 
[187] 
[188] http://www.heise.de/ct/projekte/ct-bot/sim-contest/labyrinthe/Final_Vorrunde.xml
[189] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;1
[190] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;2
[191] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;3
[192] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;4
[193] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;5
[194] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;6
[195] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;7
[196] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;8
[197] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;9
[198] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;10
[199] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;11
[200] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;12
[201] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;13
[202] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;14
[203] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;15
[204] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;16
[205] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;17
[206] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;18
[207] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;19
[208] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;20
[209] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;21
[210] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;22
[211] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;23
[212] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;24
[213] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;25
[214] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;26
[215] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?-1;27
[216] 
[217] http://www.heise.de/ct/projekte/ct-bot/sim-contest/labyrinthe/Final_1Runde.xml
[218] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;2
[219] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;4
[220] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;6
[221] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;7
[222] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;8
[223] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;10
[224] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;11
[225] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;12
[226] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;14
[227] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;15
[228] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?16;16
[229] 
[230] http://www.heise.de/ct/projekte/ct-bot/sim-contest/labyrinthe/Final_2Runde.xml
[231] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;1
[232] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;2
[233] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;3
[234] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;4
[235] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;5
[236] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;6
[237] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;7
[238] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?8;8
[239] 
[240] http://www.heise.de/ct/projekte/ct-bot/sim-contest/labyrinthe/Final_Viertel.xml
[241] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?4;1
[242] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?4;2
[243] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?4;3
[244] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?4;4
[245] http://www.heise.de/ct/projekte/ct-bot/sim-contest/labyrinthe/Final_Halb.xml
[246] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?2;1
[247] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?2;2
[248] http://www.heise.de/ct/projekte/ct-bot/sim-contest/labyrinthe/Final_3terPlatz.xml
[249] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?0;1
[250] http://www.heise.de/ct/projekte/ct-bot/sim-contest/labyrinthe/Final_Finale.xml
[251] http://www.heise.de/ct/projekte/ct-bot/sim-contest/media/replayer.html?1;1
[252] https://www.heise.de/ct/artikel/FAQ-fuer-c-t-Bot-und-c-t-SIM-291940.html