Skip to content

Глава 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 не рекомендуется к запуску.