Установка Rasberry Pi OS
Ubuntu для Raspberry Pi доступна здесь.
Установка Docker
Настроим репозиторий apt
для Docker для Debian (не для Ubuntu).
# Добавление официального GPG ключа Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Добавление репозитория в источники Apt:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Установим последнюю версию Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Проверим успешность установки, запустив образ hello-world
:
sudo docker run hello-world

Установка ROS2
Официальные Docker-образы ROS 2 можно найти здесь.
Мы можем выбрать из вариантов ros-core
, ros-base
или perception
. Здесь дополнительная информации об этих дистрибутивах.
ros-core
— самый минимальный вариант, включает только базовые компоненты и библиотеки ROS 2, необходимые для запуска. Содержит минимальный набор инструментов и библиотек.ros-base
— средний вариант, включаетros-core
и добавляет общие библиотеки и инструменты, но без графических инструментов и компонентов для восприятия.perception
— наиболее полный из перечисленных вариантов. Включаетros-base
и добавляет библиотеки для работы с восприятием (компьютерное зрение, обработка сенсорных данных, SLAM и т. д.).
Загрузка и запуск образа:
sudo docker pull ros:jazzy-perception

запуск:
sudo docker run -it ros:jazzy-perception

Чтобы выйти из контейнера, введем терминале команду exit
:
exit
Подключение к запущенному контейнеру из двух терминалов
В первом терминале запустим контейнер:
sudo docker run -it --name ros_container ros:jazzy-perception
--name ros_container
— задает имя контейнера какros_container
Во втором (третьем, четвертом и т. д.) терминале подключимся к этому же контейнеру:
sudo docker exec -it ros_container bash
Проверка работы ROS 2
# Обновим список пакетов
apt update
# Установим демонстрационные пакеты
apt install -y ros-jazzy-demo-nodes-cpp
В каждом терминале запустим команды ROS 2. Например:
Терминал 1 (запуск издателя):
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
Терминал 2 (запуск подписчика):
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp listener
Другие команды Docker
Запуск контейнера:
sudo docker start ros_container
Остановка контейнера:
sudo docker stop ros_container
Удаление контейнера:
sudo docker rm ros_container
Проверка статуса контейнеров (в том числе остановленных):
sudo docker ps -a
Чтобы увидеть только запущенные контейнеры:
sudo docker ps
***