Skip to content

Setup Docker (Deutsch)

isiko edited this page Apr 29, 2022 · 3 revisions

Docker Setup

Da ROS nur schwerlich auf Windows läuft, gibt es ein Dockerimage, womit eine Art abgespeckte Virtuelle Maschiene erschaffen werden kann, was allerdigns für die ROS entwicklung vollkommen ausreichend ist. Alles was du dafür brauchst findest du im docker-repo Repository. Nach dem du Docker und Docker-Compose installiert hast folge am besten dem Quickstart Guide. Falls du danach noch Probleme oder fragen hast schau in den folgenden Abschnitten nach.

Builden

Im normalfall sollte compose das Image builden wenn du das erste mal einen container startest. Falls du das Image aus irgendeinem Grund neu builden willst, kanns du das mit dem befehl docker-compose build machen. 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 exec -it field_robot bash kann auf die Konsole des Containers zugegriffen werden. 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. Wenn ihr das Terminal via Console öffnet ist das erstmal egal.

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 (X-Server)

Docker-container sind normalerweise auf eine Befehlszeile beschränkt, können also keine GUIs anzeigen (abgesehen von Webservern). Eine Lösung um dies zu umgehen ist das nutzen einer X-Server implementation. Unter Ubuntu ist soetwas schon installiert und es muss nichts konfiguriert werden, unter Windows muss noch eine Implementation installiert werden und die DISPLAY Umgebungsvariable im compose file angepasst werden, dies hat dann z.B. den wert DEINE_LOKALE_IP:0.0.

To be completed.

Clone this wiki locally