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

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

Установка 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. Здесь дополнительная информации об этих дистрибутивах.
1. ros-core — самый минимальный вариант, включает только базовые компоненты и библиотеки ROS 2, необходимые для запуска. Содержит минимальный набор инструментов и библиотек.
1. ros-base — средний вариант, включает ros-core и добавляет общие библиотеки и инструменты, но без графических инструментов и компонентов для восприятия.
1. 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
sudo docker exec -it ros_container

Проверка работы 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

Содержание

  1. Установка
    - Установка на Windows и Ubuntu
    - Установка на Raspberry Pi
  2. Ключевые концепции:
    - Нода, топик, издатель, подписчик, сервисы и действия
    - Пакеты, рабочие пространства, наложение
    - Практикум: cоздаем систему издатель-подписчик
    - Практикум: управляем двигателем с помощью Raspberry Pi