-
Notifications
You must be signed in to change notification settings - Fork 1
Setup Docker (Deutsch)
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.
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.
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.
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 mitsh. Sollte das bei euch der fall sein, startet bash einfach mit dem befehlbash.
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.
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.0To be completed.