1. Установка ROS 2 Jazzy

Инструкция курса для нативной Ubuntu 24.04, Windows с WSL 2 и Docker-окружения из репозитория.

<p><strong>Целевая платформа:</strong> ROS 2 Jazzy Jalisco для 64-разрядной Ubuntu 24.04 (Noble).</p>

Системные требования

Нативная UbuntuUbuntu 24.04 LTS, amd64 или arm64, права администратора и подключение к интернету.
Windows WSLWindows 11 либо Windows 10 версии 2004/сборки 19041 или новее, включенная виртуализация и права администратора.
DockerХост Ubuntu с X11 или XWayland. Видеокарта NVIDIA необязательна.

Debian-пакеты ROS 2 Jazzy предназначены для Ubuntu 24.04. Не используйте эти команды без изменений в Ubuntu 22.04 или другом дистрибутиве Linux.

Способ A: нативная Ubuntu 24.04

1. Проверьте операционную систему

source /etc/os-release
echo "$PRETTY_NAME"
dpkg --print-architecture

Версия должна быть Ubuntu 24.04 (Noble). Поддерживаются архитектуры amd64 и arm64.

2. Настройте локаль UTF-8

sudo apt update
sudo apt install -y locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale

3. Подключите репозиторий Ubuntu Universe

sudo apt install -y software-properties-common
sudo add-apt-repository universe

4. Установите официальную конфигурацию apt-репозитория ROS

sudo apt update
sudo apt install -y curl

export ROS_APT_SOURCE_VERSION="$(curl -s \
  https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest \
  | grep -F 'tag_name' | awk -F'"' '{print $4}')"

curl -L -o /tmp/ros2-apt-source.deb \
  "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"

sudo dpkg -i /tmp/ros2-apt-source.deb

5. Обновите Ubuntu и установите ROS 2

sudo apt update
sudo apt upgrade -y
sudo apt install -y ros-jazzy-desktop ros-dev-tools

6. Установите пакеты симуляции и управления для курса

sudo apt install -y \
  ros-jazzy-ros-gz \
  ros-jazzy-gz-ros2-control \
  ros-jazzy-ros2-control \
  ros-jazzy-ros2-controllers \
  ros-jazzy-joint-state-publisher-gui \
  ros-jazzy-xacro \
  ros-jazzy-cv-bridge \
  python3-colcon-common-extensions \
  python3-numpy \
  python3-opencv \
  python3-rosdep

7. Инициализируйте rosdep

sudo rosdep init
rosdep update

Если rosdep init сообщает, что файл источников уже существует, не удаляйте его: выполните rosdep update.

8. Настройте автоматическую загрузку окружения ROS

echo 'source /opt/ros/jazzy/setup.bash' >> ~/.bashrc
source ~/.bashrc

9. Проверьте установку

Терминал 1

ros2 run demo_nodes_cpp talker

Терминал 2

source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener

Узел listener должен непрерывно выводить сообщения, полученные от talker.

Способ B: Windows с WSL 2

WSL 2 запускает Ubuntu в управляемой виртуализированной среде Linux. ROS устанавливается внутри Ubuntu тем же способом, что и при нативной установке.

1. Установите WSL и Ubuntu 24.04

Откройте PowerShell от имени администратора:

wsl --update
wsl --list --online
wsl --install -d Ubuntu-24.04

Если система запросит перезагрузку Windows, выполните ее. Запустите Ubuntu 24.04 и создайте пользователя Linux и пароль.

2. Проверьте использование WSL 2

В PowerShell:

wsl --list --verbose

Если Ubuntu использует версию 1, преобразуйте ее:

wsl --set-version Ubuntu-24.04 2

3. Обновите Ubuntu

Выполните в терминале Ubuntu/WSL:

sudo apt update
sudo apt upgrade -y

4. Установите ROS 2 внутри WSL

В терминале Ubuntu выполните шаги 2–8 из раздела «Способ A». Не выполняйте команды Linux apt в PowerShell.

5. Храните рабочую область в файловой системе Linux

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

Для ускорения сборки и отслеживания файлов храните рабочие области ROS в домашней директории WSL, а не в /mnt/c. Из Windows файлы доступны по пути \\wsl$\Ubuntu-24.04\home\USERNAME.

6. Проверьте консольные и графические приложения

ros2 run demo_nodes_cpp talker
rviz2

Актуальная версия WSL поддерживает графические приложения Linux через WSLg. Если RViz2 не открывается, выполните в PowerShell wsl --update, затем wsl --shutdown и снова запустите Ubuntu.

Ограничения WSL

  • Для USB- и последовательных устройств требуется дополнительная настройка подключения устройств Windows к WSL.
  • Обнаружение узлов между Windows, WSL, виртуальными машинами и другими компьютерами может потребовать настройки брандмауэра или зеркального сетевого режима.
  • Для интеграции оборудования с жесткими временными требованиями предпочтительна нативная Ubuntu.

Способ C: Docker-окружение курса

Репозиторий содержит настроенный образ и скрипты в каталоге docker_ros2/. ROS устанавливается внутрь образа и не изменяет пакеты ROS на хосте.

Поддерживаемый хост

Скрипты предназначены для хоста Ubuntu с X11 или XWayland. Пользователь контейнера получает UID/GID пользователя хоста, а весь репозиторий подключается в /workspace.

1. Установите Docker

bash docker_ros2/docker_install.bash

Для хоста NVIDIA с установленным рабочим драйвером NVIDIA:

bash docker_ros2/docker_install.bash --nvidia

После установки выйдите из сеанса пользователя и войдите снова, чтобы применить членство в группе docker.

2. Соберите образ курса

bash docker_ros2/docker_build.bash

Образ получает тег itmo/ros2-course:jazzy. Его конфигурация находится в docker_ros2/Dockerfile.

3. Запустите окружение

Процессор или интегрированная графика:

bash docker_ros2/docker_run.bash

Графика NVIDIA:

bash docker_ros2/docker_run.bash --nvidia

Доступ к физическому оборудованию включается явно:

bash docker_ros2/docker_run.bash --hardware

4. Откройте дополнительный терминал контейнера

Пока контейнер работает, выполните в другом терминале хоста:

bash docker_ros2/docker_new.bash

5. Соберите пакеты курса

Внутри контейнера:

cd /workspace
rosdep update
rosdep install --from-paths . --ignore-src --rosdistro jazzy -y
colcon build --symlink-install
source install/setup.bash

Файлы Docker-окружения

ФайлНазначение
Docker READMEПолная инструкция по использованию, оборудованию, NVIDIA и устранению ошибок.
DockerfileОписание образа Ubuntu, ROS 2, Gazebo, управления и зависимостей курса.
docker_install.bashУстановка Docker Engine и опционального NVIDIA Container Toolkit.
docker_build.bashСборка образа курса.
docker_run.bashСоздание и запуск постоянного контейнера, настройка GUI и устройств.
docker_new.bashДополнительная интерактивная оболочка в работающем контейнере.

Итоговая проверка

Выполните в выбранном окружении ROS:

echo "$ROS_DISTRO"
ros2 --help
ros2 doctor --report
ros2 pkg prefix ros_gz_sim
ros2 pkg prefix gz_ros2_control
colcon list

Переменная ROS_DISTRO должна содержать jazzy. Две команды pkg prefix подтверждают установку интеграции Gazebo, необходимой для курса.

Официальные источники

Инструкция курса ROS 2 Jazzy · Для другой версии операционной системы сверяйтесь с актуальной документацией поставщика.