Глава 6. Работа с модулем SVCAM на ОС Windows
Для начала работы нам потребуется установить Docker Desktop – это приложение для работы с контейнерами (https://www.docker.com). Так как образ, который в дальнейшем мы будем использовать, написан на Ubuntu, то понадобится WSL.
WSL (Windows Subsystem for Linux) - это функциональность Windows, позволяющая запускать среду Linux непосредственно в Windows, без необходимости использования виртуальной машины или двойной загрузки. WSL обеспечивает возможность запуска файловой системы Linux, а также командной строки и графических приложений Linux вместе с обычными приложениями Windows. Docker самостоятельно установит WSL при отсутствии, однако мы рекомендуем использовать Windows 11 для корректной работы.
После установки потребуется найти необходимый контейнер на Docker Hub, вводим в поисковую строку: thetwelfthmoon/svcam_turtlebot_com:latest

Рис.10 Поиск контейнера
Далее необходимо нажать кнопку «Pull» для загрузки образа на вашу систему. После загрузки статус образа изменится на «Run» (рис.11)

Рис.11 Загруженный образ
Теперь перейдем к работе с командной строкой. Введем команду:
docker ps -a
В выводе отображается список всех контейнеров (в т. ч. выключенных и не запустившихся), которые доступны пользователю (рис.12). Необходим столбец «CONTAINER_ID», который соответствует названию существующего образа.

Рис.12 Существующие контейнеры в системе пользователя
Введем команду для запуска контейнера:docker start «CONTAINER_ID»

Рис.13 Запуск контейнера
Далее необходимо зайти в запущенный контейнер:
docker exec -it «CONTAINER_ID» /bin/bash

Рис.14 Вход в контейнер
Чтобы выйти из контейнера, необходимо ввести команду:
exit
После входа имя пользователя в командной строке изменится. Обратите внимание, что образ «svcam_turtlebot_com» предназначен для систем с архитектурой amd64 — это 64-битная архитектура, используемая в большинстве современных настольных и серверных процессоров от Intel и AMD. Она отличается от архитектуры arm64, которая часто встречается в мобильных устройствах и одноплатных компьютерах вроде Raspberry Pi. В случае установки на Raspberry Pi необходимо загружать образ с названием «svcam», в следующем разделе разберем детальнее.
Для лучшего восприятия информации и получения изображения, мы можем воспользоваться утилитой RViz - 3D визуализатор в ROS. Однако, мы работаем в Docker на ОС Windows, поэтому нам потребуется сервер, который сможет открывать графический интерфейс для Linux-подобных систем.
Установим X-сервер на Windows, после его установки потребуется выбрать некоторые параметры при запуске, а именно:
"Multiple windows"
"Start no client"
"Disable access control"
"Native OpenGL"
После запуска VcXsrv, должно быть открыто окно на панели задач — это значит, X-сервер активен.
При запуске контейнера вводим команду:docker run -it --rm -e DISPLAY=host.docker.internal:0.0 -v /tmp/.X11 unix:/tmp/.X11-unix noetic
Либо внутри контейнера прописываем команду:
export DISPLAY=host.docker.internal:0.0
В случае запуска контейнера на amd64 с ОС Linux установка X-сервер – не требуется
В случае запуска контейнера на arm64 на маломощных микрокомпьютерах RViz не рекомендуется к запуску.