Знакомство с ROS2. Часть 1. Установка на Raspberry Pi

@

Установка Rasberry Pi OS

Ubuntu для Raspberry Pi доступна здесь.

Установка Docker

Настроим репозиторий apt для Docker для Debian (не для Ubuntu).

Bash
# Добавление официального 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

Bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Проверим успешность установки, запустив образ hello-world:

Bash
sudo docker run hello-world

Установка ROS2

Официальные Docker-образы ROS 2 можно найти здесь.

Мы можем выбрать из вариантов ros-core, ros-base или perception. Здесь дополнительная информации об этих дистрибутивах.

  1. ros-core — самый минимальный вариант, включает только базовые компоненты и библиотеки ROS 2, необходимые для запуска. Содержит минимальный набор инструментов и библиотек.
  2. ros-base — средний вариант, включает ros-core и добавляет общие библиотеки и инструменты, но без графических инструментов и компонентов для восприятия.
  3. perception — наиболее полный из перечисленных вариантов. Включает ros-base и добавляет библиотеки для работы с восприятием (компьютерное зрение, обработка сенсорных данных, SLAM и т. д.).

Загрузка и запуск образа:

Bash
sudo docker pull ros:jazzy-perception

запуск:

Bash
sudo docker run -it ros:jazzy-perception

Чтобы выйти из контейнера, введем терминале команду exit:

Bash
exit

Подключение к запущенному контейнеру из двух терминалов

В первом терминале запустим контейнер:

Bash
sudo docker run -it --name ros_container ros:jazzy-perception
  • --name ros_container — задает имя контейнера как ros_container

Во втором (третьем, четвертом и т. д.) терминале подключимся к этому же контейнеру:

Bash
sudo docker exec -it ros_container bash

Проверка работы ROS 2

Bash
# Обновим список пакетов
apt update

# Установим демонстрационные пакеты
apt install -y ros-jazzy-demo-nodes-cpp

В каждом терминале запустим команды ROS 2. Например:

Терминал 1 (запуск издателя):

Bash
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker

Терминал 2 (запуск подписчика):

Bash
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp listener

Другие команды Docker

Запуск контейнера:

Bash
sudo docker start ros_container

Остановка контейнера:

Bash
sudo docker stop ros_container

Удаление контейнера:

Bash
sudo docker rm ros_container

Проверка статуса контейнеров (в том числе остановленных):

Bash
sudo docker ps -a

Чтобы увидеть только запущенные контейнеры:

Bash
sudo docker ps

***

Содержание

  1. Установка
  2. Ключевые концепции: