Installationsanleitung für ct-Bot und ct-Sim
Wer auf seinem (Linux-)System podman oder docker installiert hat, kann alternativ zur manuellen Installation wie in dieser Anleitung beschrieben auch fertige Container-Images verwenden, die bereits alle Tools für die ct-Bot-Entwicklung mitbringen. Eine entsprechende Anleitung ist unter Fertige Container-Images zur Entwicklung zu finden.
I. Entwicklungsumgebung und Java-Laufzeit
1. Java installieren
- Linux: Java SE 8 JDK (OpenJDK) am besten über die Paketverwaltung installieren, empfohlen für ct-Sim ist Version 1.8.
- Debian 10:
sudo apt-get install --no-install-recommends apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common fontconfig wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add - sudo add-apt-repository https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ sudo apt-get update sudo apt-get install adoptopenjdk-8-hotspot
WarningUnter Debian 11 ist die Darstellung des ct-Sim fehlerhaft, z.B. wird die Welt zu dunkel angezeigt. Die Ursache hierfür ist derzeit unbekannt, vermutlich ein Java3D-Problem.
- Debian 12:
sudo apt-get install --no-install-recommends apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common fontconfig mesa-utils libgl1-mesa-glx libgl1-mesa-dri wget -qO - https://repos.azul.com/azul-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee -a /etc/apt/sources.list.d/zulu.list sudo apt-get update sudo apt-get install zulu8-jdk
- RHEL/Rocky 8/9, Fedora:
sudo dnf install java-1.8.0-openjdk libXxf86vm mesa-libGL mesa-dri-drivers
- Debian 10:
- macOS:
- Java SE 8 JDK (OpenJDK) herunterladen und installieren. Getestete Version: jdk8u332-b09.
- Alternativ kann unter macOS auch der Paketmanager Homebrew verwendet werden:
brew tap adoptopenjdk/openjdk brew install adoptopenjdk8
- Windows 10/11:
- Java SE 8 JDK (OpenJDK) herunterladen und installieren. Getestete Version: jdk8u332-b09.
Teilweise funktionert auch ein (Open) JDK in Version 11, das beispielsweise bei Debian in den offiziellen Paketquellen enthalten ist. Allerdings kann Java 11 zu Problemen mit Java3D führen, daher wird das ältere Java 8 (1.8) empfohlen und in dieser Anleitung verwendet.
2. Eclipse installieren
Eclipse herunterladen und installieren, siehe Anleitung zur Einrichtung von Eclipse. Getestete Version: Eclipse 2022‑03.
Alternativ kann auch Visual Studio Code (VSCode) als IDE verwendet werden, zur Installation siehe Anleitung zur Einrichtung von Visual Studio Code und PlatformIO. Schritt III. entfällt dann ebenfalls, weil PlatformIO als Buildsystem verwendet wird.
II. Compiler für simulierte Bots (x86)
- Linux: gcc Toolchain über die Paketverwaltung installieren:
- Debian 10/11/12:
sudo apt-get install build-essential manpages-dev git
- RHEL/Rocky 8/9, Fedora:
sudo dnf groupinstall "Development Tools" sudo dnf install gcc-c++
- Debian 10/11/12:
- macOS: Xcode installieren, im Terminal
xcode-select --install
ausführen, um die Command Line Tools zu installieren. - Windows 10/11:
- msys2 installieren (siehe auch msys2 Installationsanleitung):
- Installer hier herunterladen (
msys2-x86_64-*.exe
) und ausführen. - Als Installationsordner
C:\msys64
verwenden (wie gehen hier von der 64-Bit Version aus).
- Installer hier herunterladen (
- gcc von msys2 installieren:
- MSYS2 MSYS Shell starten.
pacman -Suy
ausführen, um msys2 zu aktualisieren.pacman -S --needed base-devel mingw-w64-x86_64-toolchain make
ausführen, um gcc Toolchain zu installieren.
- Path-Einträge in Eclipse ergänzen:
- In Eclipse
Window
->Preferences
->C/C++
->Build
->Environment
öffnen. - Dann
Select...
->Path
->Edit...
auswählen. - Am Anfang
C:\msys64\usr\bin;C:\msys64\mingw64\bin;
hinzufügen.
- In Eclipse
- Für VSCode oder Commanline-Builds die systemweiten Path-Einträge ergänzen:
- Siehe Umgebungsvariablen in Windows 10 bearbeiten zum Bearbeiten
- Für die Variable
Path
die folgenden Einträge hinzufügen:C:\msys64\usr\bin
undC:\msys64\mingw64\bin
- msys2 installieren (siehe auch msys2 Installationsanleitung):
III. Compiler und Tools für reale Bots (ATmega)
Dieser Schritt ist nicht erforderlich, wenn Visual Studio Code als IDE mit PlatformIO verwendet wird, die nötigen Tools werden in diesem Fall automatisch eingerichtet.
- Linux:
- Debian 10/11/12:
sudo apt-get install gcc-avr avr-libc avrdude
- Fedora:
sudo dnf install avr-gcc-c++ avr-libc avr-libc-doc avrdude
- RHEL/Rocky 8/9: AVR Toolchain for Linux von hier (8-bit Version) herunterladen und z.B. nach
/usr/local/
entpacken. Getestete Version: 3.7.0.
- Debian 10/11/12:
- macOS: AVR Toolchain for Darwin herunterladen (8-bit Version) und entpacken nach
/usr/local/
. Getestete Version: 3.7.0. -
Windows 10/11: AVR Toolchain for Windows herunterladen und installieren. Das Installationsprogramm sollte man dabei explizit als Administrator ausführen (via Kontextmenü), sonst schlägt der Installer einen komischen Installationsort vor anstatt höhere Rechte anzufordern. Getestete Version: 3.7.0.
- Den Pfad zum avr-gcc (Unterverzeichnis
bin
) in Eclipse zum PATH hinzufügen, falls die Toolchain nicht über einen (Linux-) Paketmanager installiert wurde:- In Eclipse
Window
->Preferences
->C/C++
->Build
->Environment
öffnen. - Dann
Select...
->Path
->Edit...
auswählen. - Am Ende
;C:\Program Files (x86)\avr8-gnu-toolchain\bin
(Windows) bzw.:/usr/local/avr8-gnu-toolchain-linux_x86/bin
(Linux) oder:/usr/local/avr8-gnu-toolchain-darwin_x86_64/bin
(macOS) hinzufügen.
- In Eclipse
IV. Code für Bot und Sim importieren
Der Code steht im GIT-Repository zur Verfügung, siehe Import des Codes von GitHub in Eclipse oder Import des Codes von GitHub in VSCode.
V. Installation Testen und nächste Schritte
Evtl. bekommt man in Eclipse Warnings ähnlich der Folgenden angezeigt: Program “arm-linux-gnueabihf-g++” not found in PATH Diese kann man ignorieren, wenn man das zugehörige Target nicht braucht (z.B. Build für Raspberry Pi im Falle von arm-linux-gnueabihf). Um die Warnings zu entfernen kann man die nicht benötigten Configurations in den Projekteinstellungen unter C/C++ Build
-> Manage Configurations...
löschen.
ct-Sim und virtuelle Bots starten
- ct-Sim starten. Hierzu gibt es drei Möglichkeiten:
-
Fertiges ct-Sim Release als jar-Archiv ct-Sim.jar hier herunterladen und von der Kommandozeile mit
java -jar ct-Sim.jar
starten.NoteSind mehrere Java-Versionen auf dem System installiert, muss
java
durch den vollen Pfad zur Java-Version 8 ersetzt werden, z.B./usr/lib/jvm/java-1.8.0/bin/java
.TipDies ist die bevorzugte Methode, wenn der Simulator nicht weiterentwickelt werden soll. Der Sourcecode ist dann nicht erforderlich, daher muss das git-Repository ct-sim nicht geladen werden.
-
In Eclipse klickt man die Datei
ctSim/controller/Main.java
rechts an und wähltRun As
->Application
.TipNach dem ersten Run startet
Strg + F11
die zuletzt ausgeführte Datei. -
Von der Kommandozeile aus wechselt man in das Verzeichnis, in dem Eclipse das ct-Sim-Projekt aufhebt (ein Unterverzeichnis des Eclipse-Workspace, den man bei der Eclipse-Installation angegeben hat). Um den Simulator zu starten, ruft man dort
java ctSim.controller.Main
auf.
Dangerct-Sim ist unter macOS derzeit nicht lauffähig, weil Java3D nicht korrekt unter macOS funktioniert.
-
- Falls nicht schon geschehen, den Code des ct-Bot compilieren: ct-Bot-Projekt markieren und
Project
->Clean
wählen. - ct-Bot starten:
- In Eclipse: Im ct-Bot-Projekt die Datei
Debug-Linux_Mac/ct-Bot
(Linux und macOS) bzw.Debug-W32\ct-Bot.exe
doppelt anklicken. - Auf der Kommandozeile: Wechsel in das Verzeichnis, in dem Eclipse das ct-Bot-Projekt aufhebt, und die genannte Datei ausführen.
- In Eclipse: Im ct-Bot-Projekt die Datei
Die Datei ct-Bot.exe
bzw. ct-Bot
beendet sich zügig wieder, wenn sie keinen Simulator findet, der auf ihren Versuch einer TCP/IP-Verbindung antwortet. Daher ist die Reihenfolge “zuerst Sim, dann Bot” wichtig.
VI. Compiler für Raspberry Pi (optional)
Für Raspberry Pi 2
- Linux (x86_64):
- Toolchain verfügbar auf GitHub:
sudo git clone --depth=1 https://github.com/tsandmann/arm-toolchain-linux.git /usr/local/arm-unknown-linux-gnueabihf
- Toolchain verfügbar auf GitHub:
- macOS (x86_64):
- Toolchain verfügbar auf GitHub:
sudo git clone --depth=1 https://github.com/tsandmann/arm-toolchain-mac.git /usr/local/arm-unknown-linux-gnueabihf
- Toolchain verfügbar auf GitHub:
- Windows 10/11:
- Linaro Toolchain
gcc-linaro-7.1.1-2017.05-i686-mingw32_arm-linux-gnueabihf.tar.xz
von hier herunterladen. - Das Archiv nach
C:\Program Files (x86)\arm-linux-gnueabihf
entpacken.
- Linaro Toolchain
- Den Pfad zum arm-gcc (Unterverzeichnis
bin
) anschließend ebenfalls in Eclipse zum PATH hinzufügen:- PATH-Einträge erweitern um
C:\Program Files (x86)\arm-linux-gnueabihf\bin
(Windows) bzw./usr/local/arm-unknown-linux-gnueabihf/bin
(Linux / macOS) in Eclipse. - In Eclipse
Window
->Preferences
->C/C++
->Build
->Environment
öffnen. - Dann
Select...
->Path
->Edit...
auswählen. - Am Ende
;C:\Program Files (x86)\arm-linux-gnueabihf\bin
(Windows) bzw.:/usr/local/arm-unknown-linux-gnueabihf/bin
(Linux / macOS) hinzufügen.
- PATH-Einträge erweitern um
Für Raspberry Pi 3
- Linux (x86_64):
- Toolchain verfügbar auf Github:
sudo git clone --depth=1 https://github.com/tsandmann/armv8l-toolchain-linux.git /usr/local/armv8l-unknown-linux-gnueabihf
- Toolchain verfügbar auf Github:
- macOS (x86_64):
- Toolchain verfügbar auf Github:
sudo git clone --depth=1 https://github.com/tsandmann/armv8l-toolchain-mac.git /usr/local/armv8l-unknown-linux-gnueabihf
- Toolchain verfügbar auf Github:
- Windows 10/11:
- Linaro Toolchain
gcc-linaro-7.1.1-2017.05-i686-mingw32_armv8l-linux-gnueabihf.tar.xz
von hier herunterladen. - Das Archive nach
C:\Program Files (x86)\armv8l-unknown-linux-gnueabihf
entpacken.
- Linaro Toolchain
- Den Pfad zum arm-gcc (Unterverzeichnis
bin
) anschließend ebenfalls in Eclipse zum PATH hinzufügen:- PATH-Einträge erweitern um
C:\Program Files (x86)\armv8l-unknown-linux-gnueabihf\bin
(Windows) bzw./usr/local/armv8l-unknown-linux-gnueabihf/bin
(Linux / macOS) in Eclipse. - In Eclipse
Window
->Preferences
->C/C++
->Build
->Environment
öffnen. - Dann
Select...
->Path
->Edit...
auswählen. - Am Ende
;C:\Program Files (x86)\armv8l-unknown-linux-gnueabihf\bin
(Windows) bzw.:/usr/local/armv8l-unknown-linux-gnueabihf/bin
(Linux / macOS) hinzufügen.
- PATH-Einträge erweitern um
Autor: Timo Sandmann | Stand: 15.10.2023