Docker의 ROS 응용 프로그램을 호스트 측 GUI로 표시
개요
검증 환경
이번 검증한 환경은 다음과 같습니다.
Hardware
cpu - AMD Ryzen 9 3900X
gpu - Geforce RTX 2060 super
램 - 32G
소프트웨어
os - 우분투 20.04.1
커널 - Linux define 5.4.0-48-generic
docker - 19.03.13
nvidia-driver - 450.66
cuda version - 11.0
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 |
+-------------------------------+----------------------+----------------------+
환경 정비
먼저 nvidia-container-runtime을 설치합니다.
# apt 関連設定
$ 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-runtimeインストール
$ sudo apt update
$ sudo apt install nvidia-container-runtime
# docker service の再起動
$ sudo systemctl restart docker.service
그런 다음 docker group에 자신의 UID를 등록합니다. docker 를 사용하고 있는 사람은 하고 있다고 생각합니다만 생각을 위해.
$ sudo usermod -a -G docker `id -un`
$ sudo systemctl restart docker.service
실행 방법
그런 다음 docker 이미지를 빌드합니다.
$ git clone https://github.com/chikuta/chikuta-dockerfiles.git
$ cd chikuta-dockerfiles
$ ./docker/ros-bionic-melodic/build-docker-image.bash
그런 다음 다음 명령을 실행하여 빌드된 이미지의 컨테이너를 시작할 수 있습니다. 스크립트의 내용은 xhost 주위의 처리와 docker의 인수를 랩핑한 것입니다. 필요에 따라 편집을 하면 자신의 환경을 만들 수 있어 적극적으로 커스터마이즈합시다.
$ cd chikuta-dockerfiles
$ ./docker/ros-bionic-melodic/run-docker-container.bash
스크립트를 실행하면 terminator가 시작됩니다. 이것은 docker 컨테이너상에서 움직이고 있는 터미널 어플리케이션이 되기 (위해)때문에, 여기에서 실행한 명령은 모두 docker 컨테이너상에서 처리됩니다.
콘솔을 기본 빨간색에서 파란색으로 변경하는 것이 세련된군요.
terminator를 시작하는 아이디어는 shadow-robot의 dockerfile을 참조합니다. 본가는 dockerfile상에서 ansible을 실행하는 과잉의 사양이므로 필요한 곳만을 추출해 컴팩트하게 정리했습니다.
마지막으로 기본 GUI 앱을 시작해 봅시다.
# 1st terminal
$ roscore
# 2nd terminal
$ rviz
# 3rd terminal
$ gazebo
참고
Reference
이 문제에 관하여(Docker의 ROS 응용 프로그램을 호스트 측 GUI로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/chikuta/items/a62cd1d8d945f9b826b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)