Willkommen bei ct-Bot und ct-Sim

ct-Bot und ct-Sim gehören zusammen und sind ein Roboterprojekt, das von der Zeitschrift c't Anfang des Jahres 2006 gestartet und in einer Reihe von 16 Artikeln beschrieben wurde. Das Ziel des ct-Bots war und ist dabei, möglichst Vielen den Zugang zu dem spannenden Thema der Robotik zu eröffnen. Das Projekt besteht aus zwei Teilen: Dem eigentlichen Roboter ct-Bot und dem dazu passenden Simulator ct-Sim.

Seit Projektstart ist um das Projekt eine Community entstanden, welche das Projekt weiterhin pflegt auch nach dem Erscheinen des letzten c't-Artikels im Jahr 2011. Derzeit bemüht sich ein Kreis aus Projektbegeisterten um eine Neuorganisation des Projekts. So sind der Quelltext und die gesamte Dokumentation auf die GitHub-Plattform umgezogen, mit dem Ziel den Projektumfang und das entstandene Wissen auch langfristig zu erhalten und frei zugänglich zu machen. In Absprache mit dem Heise Verlag, als ursprünglicher Initiator des Projekts, wurde die Projektdokumentation inzwischen größtenteils unter die CC-BY-SA-Lizenz gestellt. Die zusammengetragenen Inhalte werden derzeit neu aufbereitet und aktualisiert. Darüber hinaus gibt es Pläne und erste Ansätze für eine aktualisierte Version des ct-Bots auf der Basis zeitgemäßer Hard- und Software.

Community und Support

Chat/Instant Messenger

Tip

Da Matrix und Slack synchronisiert sind, zeigen sie dieselben Inhalte und können nach persönlicher Präferenz gewählt werden.

Forum

Unter www.ctbot.de ist das Community-Forum zum ct-Bot und zu verwandten Themen zu finden. Es besteht bereits seit der Anfangszeit des Projekts und enthält somit nicht nur Support zum ct-Bot sowie aktuelle Diskussionen zur Zukunft des Projekts, sondern auch die zugehörige Historie.

Anleitungen und Dokumentation

Projektdokumentation

Derzeit befindet sich die Projektdokumentation in Überarbeitung (siehe auch Diskussion im Forum). Im Zuge dieser werden sowohl sämtliche Informationen des ehemaligen Trac-Wikis als auch des Community-Wikis in eine gemeinsame Projektdokumentation portiert. Temporär sind die Inhalte des ehemaligen Trac-Wikis von Heise zusätzlich als Archiv verfügbar. Außerdem existiert noch ein Community-Wiki, dessen noch nicht portierte Inhalte unter wiki.ctbot.de verfügbar bleiben.

Ein paar grundlegende Informationen und Anleitungen für Neueinsteiger sind direkt hier auf der Projektwebseite zu finden, das Menü links gruppiert sie in chronologischer Reihenfolge als Empfehlung für Einsteiger. Einen guten Überblick über das gesamte Projekt geben außerdem die c't-Artikel.

Tip

Um mal direkt auszuprobieren, wie das Ganze so geht (auch ohne Geld auszugeben), helfen die ersten Schritte weiter.

Für detaillierte Dokumentationen inkl. technischer Details, Spezifikationen und Erläuterung sei auf das Dokumentationsprojekt verwiesen, dort werden derzeit die im Laufe der Zeit seit Projektbeginn entstandenen Dokumentationen neu aufbereitet.

Alte Projektdokumentation

Source Code

Der Quellcode des Projekts ist unter GPL lizensiert und in Git-Repositories auf GitHub verfügbar. Für den ct-Bot ist er in C geschrieben – sowohl für den realen ct-Bot als auch einen Virtuellen im Simulator. So lassen sich komplexe Verhaltensmuster für den Bot zunächst am PC testen. Der in Java geschriebene Simulator ct-Sim kommuniziert mit mehreren virtuellen Robotern, gaukelt ihnen eine Umgebung vor und liefert Sensorwerte zurück.

Das Software-Framework des ct-Bot erfüllt sehr unterschiedliche Anforderungen:

  • Die Programmierung des Roboters soll möglichst einfach sein, indem von der Komplexität der typischen Mikrocontroller-Programmierung wie Interrupts, I/O-Ports, Timer, PID-Regler abstrahiert wird.
  • Alle Sensorwerte stehen als globale Variablen zur Verfügung, die automatisch aktualisiert werden. Einfache Funktionen ermöglichen den Zugriff auf die Aktuatoren.
  • Der Source Code ist plattformunabhängig, sodass er sowohl im Simulator auf einem PC als auch dem realen Bot läuft, ohne dass man ihn manuell anpassen muss.
  • Einmal entwickelte Unterprogramme (im Framework Verhalten genannt), von ganz rudimentären wie bot_turn() bis zu komplexen wie bot_solve_maze(), lassen sich weiterverwenden und in andere Routinen einbauen.

Offizielle Code-Repositories

  • ct-Bot Code-Repository auf GitHub
  • ct-Sim Code-Repository auf GitHub

Weitere Repositories

  • ct-bot-hw enthält alles zur Hardware des ct-Bots:
    • Im Ordner v1 finden sich die Design-Dateien des originalen ct-Bots und die gehörigen Datenblätter.
    • Im Ordner v2 ist die Entwicklung einer neuen Hardware-Revision des ct-Bots zu finden, die derzeit in Planung ist.
  • ctbot-atmega enthält eine vollständige Neuentwicklung in C++ einer reduzierten Basis-Firmware für die Grundfunktionalität eines realen ct-Bots. Nähere Informationen finden sich in der Readme-Datei.
  • ctbot-teensy enthält eine vollständige Neuentwicklung des Frameworks in C++ für einen realen Bot, der mit einem Teensy 4.1 ARM-Mikrocontroller ausgestattet ist. Nähere Informationen finden sich in der Readme-Datei.
  • ctbot-viewer enthält einen neu entwickelten Remote-Viewer für den ct-Bot, derzeit noch im Beta-Stadium. Nähere Informationen finden sich in der Readme-Datei.

License: CC BY-SA 4.0
Autoren: Benjamin Benz, Timo Sandmann | Bild: ct-Bot ohne Kabel von Peter Recktenwald (CC BY-SA 3.0) | Stand: 08.10.2021