Установка 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***