Affichez l'application ROS sur Docker avec l'interface graphique du côté hôte

Aperçu

Environnement de vérification

L'environnement vérifié cette fois est le suivant.

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

J'ai joint la sortie de nvidia-smi.

$ 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 |
+-------------------------------+----------------------+----------------------+

Arrangement environnemental

Installez d'abord nvidia-container-runtime.

#apt paramètres liés
$ 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-installation d'exécution
$ sudo apt update
$ sudo apt install nvidia-container-runtime

#Redémarrer le service Docker
$ sudo systemctl restart docker.service

Enregistrez ensuite votre UID dans le groupe Docker. Je pense que les gens qui utilisent docker le font, mais juste au cas où.

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

Méthode d'exécution

Ensuite, créez l'image du docker.

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

Ensuite, vous pouvez démarrer le conteneur de l'image construite en exécutant la commande suivante. Le contenu du script est un encapsulation du traitement autour de xhost et des arguments de docker. Vous pouvez créer votre propre environnement en le modifiant selon vos besoins, donc personnalisons-le activement.

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

Lorsque vous exécutez le script, terminator sera lancé. Puisqu'il s'agit d'une application de terminal s'exécutant sur le conteneur docker, toutes les commandes exécutées ici seront traitées sur le conteneur docker.

Il est à la mode de changer la console du rouge par défaut au bleu. terminator.png

L'idée de lancer terminator est basée sur le fichier docker dans shadow-robot. Étant donné que la famille principale est une spécification excessive qui exécute ansible sur le fichier docker, j'ai extrait uniquement les parties nécessaires et je l'ai résumé de manière compacte.

Enfin, lançons une application GUI de base.

# 1st terminal
$ roscore

# 2nd terminal
$ rviz

# 3rd terminal
$ gazebo

gazebo_rviz.png

référence

Recommended Posts

Affichez l'application ROS sur Docker avec l'interface graphique du côté hôte
Exécutez Ubuntu + ROS avec Docker sur Mac
Afficher l'image de type Mat sur l'interface graphique avec Swing
Application Web construite avec docker (1)
L'heure ne va pas avec l'application lancée sur le conteneur Docker
WordPress avec Docker Compose sur CentOS 8
ubuntu: 20.04 Note de considération pour la sortie de l'interface graphique (xeyes de sortie) vers le côté hôte dans le conteneur docker
Grattage avec marionnettiste à Nuxt sur Docker.
Afficher les spécifications de l'API avec Laravel + SwaggerUI + Docker
Déployez l'application avec VPC + EC2 + Docker.
Créer un environnement avec Docker sur AWS
Comment partager côté hôte (Windows) et côté invité (CentOS 7) avec VirtualBox
Présentation de Rspec avec Ruby on Rails x Docker
Exécutez JSP Hello World avec Tomcat sur Docker
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Facile à afficher Hello World avec Rails + Docker