Zeigen Sie die ROS-Anwendung auf Docker mit der GUI auf der Hostseite an

Überblick

Überprüfungsumgebung

Die diesmal überprüfte Umgebung ist wie folgt.

Hardware cpu - AMD Ryzen 9 3900X gpu - Geforce RTX 2060 super ram - 32G

Software os - ubuntu 20.04.1 kernel - Linux define 5.4.0-48-generic docker - 19.03.13 nvidia-driver - 450.66 cuda version - 11.0

Ich habe die Ausgabe von nvidia-smi angehängt.

$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.66       Driver Version: 450.66       CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 206...  Off  | 00000000:0E:00.0  On |                  N/A |
| 38%   40C    P8    11W / 175W |    916MiB /  7979MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

Umweltvereinbarung

Installieren Sie zuerst nvidia-container-runtime.

#passende Einstellungen
$ curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list

# nvidia-container-Laufzeitinstallation
$ sudo apt update
$ sudo apt install nvidia-container-runtime

#Starten Sie den Docker-Dienst neu
$ sudo systemctl restart docker.service

Registrieren Sie dann Ihre UID in der Docker-Gruppe. Ich denke, die Leute, die Docker benutzen, tun es, aber nur für den Fall.

$ sudo usermod -a -G docker `id -un`
$ sudo systemctl restart docker.service

Ausführungsmethode

Erstellen Sie als Nächstes das Docker-Image.

$ git clone https://github.com/chikuta/chikuta-dockerfiles.git
$ cd chikuta-dockerfiles
$ ./docker/ros-bionic-melodic/build-docker-image.bash

Als Nächstes können Sie den Container des erstellten Images starten, indem Sie den folgenden Befehl ausführen. Der Inhalt des Skripts ist ein Wrapping der Verarbeitung um xhost und der Argumente von Docker. Sie können Ihre eigene Umgebung erstellen, indem Sie sie nach Bedarf bearbeiten. Passen Sie sie daher aktiv an.

$ cd chikuta-dockerfiles
$ ./docker/ros-bionic-melodic/run-docker-container.bash

Wenn Sie das Skript ausführen, wird der Terminator gestartet. Da dies eine Terminalanwendung ist, die auf dem Docker-Container ausgeführt wird, werden alle hier ausgeführten Befehle auf dem Docker-Container verarbeitet.

Es ist in Mode, die Konsole von Standardrot auf Blau zu ändern. terminator.png

Die Idee, terminator zu starten, basiert auf der Docker-Datei in shadow-robot. Da es sich bei der Head-Familie um eine übermäßige Spezifikation handelt, die in der Docker-Datei ansible ausgeführt wird, habe ich nur die erforderlichen Teile extrahiert und kompakt zusammengefasst.

Zum Schluss starten wir eine grundlegende GUI-App.

# 1st terminal
$ roscore

# 2nd terminal
$ rviz

# 3rd terminal
$ gazebo

gazebo_rviz.png

Referenz

Recommended Posts

Zeigen Sie die ROS-Anwendung auf Docker mit der GUI auf der Hostseite an
Führen Sie Ubuntu + ROS mit Docker auf dem Mac aus
Zeigen Sie mit Swing ein Bild vom Typ Mat auf der GUI an
Mit Docker erstellte Webanwendung (1)
Die Zeit ist falsch mit der Anwendung, die auf dem Docker-Container gestartet wurde
WordPress mit Docker Compose unter CentOS 8
ubuntu: 20.04 Überlegungsnotiz zur Ausgabe der GUI (Ausgabe xeyes) an die Hostseite im Docker-Container
Schaben mit Puppenspieler in Nuxt auf Docker.
Zeigen Sie API-Spezifikationen mit Laravel + SwaggerUI + Docker an
Stellen Sie die Anwendung mit VPC + EC2 + Docker bereit.
Erstellen Sie eine Umgebung mit Docker unter AWS
Freigeben auf der Hostseite (Windows) und der Gastseite (CentOS 7) mit VirtualBox
Einführung in Rspec mit Ruby on Rails x Docker
Führen Sie JSP Hello World mit Tomcat auf Docker aus
Aktualisieren Sie das Container-Image mit KUSANAGI Runs on Docker
Mit Rails + Docker einfach Hallo Welt anzuzeigen