Skip to content

Setup Docker (Deutsch)

isiko edited this page Apr 17, 2022 · 3 revisions

The content of this page relies on Pull request #37. Until that is merged, refer to this Repo.

Docker Setup

Da ROS nur schwerlich auf Windows läuft, gibt es ein Dockerimage. Damit kann eine Art abgespeckte Virtuelle Maschiene erschaffen werden, was allerdigns für die ROS entwicklung vollkommen ausreichend ist.

Voraussetzungen

Um dieses gut nutzen zu können, installiere bitte Docker und Docker-Compose. Danach navigiere mit einer Befehlszeile zu dem Ordner in dem dieses Repository installiert ist, und dann in den Unterordner /dev_ws.

Builden

Mit dem befehl docker-compose build kann das Image gebuildet werden. Dies dauert meist ein paar Minuten, da hier auf einem Ubuntu Image alles installiert wird was für die Entwicklung benötigt wird.

Erschaffen eines Containers

Mit dem befehl docker-compose up -d wird ein neuer Container erschaffen, welcher wie oben schon genannt, einer Virtuellen Maschiene gleich kommt. Über die Docker Desktop GUI oder mit dem befehlt docker attach field_robot kann auf die Konsole des Containers zugegriffen werden, wobei wir ersteres Empfehlen. Eure ROS Entwicklungs Umgebung (also den dev_ws Ordner) findet ihr im Container als /field_robot ordner.

Wichtig: ROS funktioniert nur mit bash, die Docker GUI startet ein neues Konsolen Fenster allerdings meist mit sh. Sollte das bei euch der fall sein, startet bash einfach mit dem befehl bash.

Eigenheiten unter Windows

Da Windows und GNU/Linux ein anderes Dateisystem verwenden, kann ROS eure Dateien die unter Windos bearbeitet wurden nicht im Container ausführen, leider auch nicht die Gebuildete Version, auch wenn der rest des Betriebssystems sie ohne Probleme verwenden kann. Um die die gebuildeten Datein für ROS nutzbar zu machen, kann folgender Befehl verwendet werden:

find ./install/ -type f -exec dos2unix {} \;

Dies geschied mittels des dos2unix packages, welches im Image enthalten sein sollte. Ansonsten kann es mit apt install -y dos2unix nachinstalliert werden.

Nutzen von GUIs

Docker-container sind normalerweise auf eine Befehlszeile beschränkt, können also keine GUIs anzeigen (abgesehen von Webservern). Um dies zu umgehen kann auf dem Host System eine X-Server Implementation installiert werden. Dann muss in dem /dev_ws Ordner eine datei mit dem Namen .env angelegt werden, in welcher die DISPLAY variable definiert wird. der Inhalt sieht dann z.B. so aus:

DISPLAY=192.168.178.49:0.0

To be completed.

Clone this wiki locally