Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Рабочее пространство (Workspace)

Что вы узнаете в этом разделе:

  • Что такое рабочее пространство (workspace) в ROS2
  • Структуру директорий workspace
  • Как создать собственное рабочее пространство
  • Как инициализировать workspace для работы
  • Как настроить системное окружение для использования workspace
  • Зачем нужно разделять пакеты по разным workspace

Рабочие пространства и создание ROS2 пакетов

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

Что такое рабочее пространство (Workspace)?

Рабочее пространство (workspace) в ROS2 — это директория (папка), где вы создаете, модифицируете и собираете свои собственные пакеты. Это ваша песочница для разработки. Все пакеты, находящиеся в src директории workspace'а, могут быть собраны вместе с помощью системы colcon.

Аналогия из жизни: Рабочее пространство можно сравнить с вашей личной мастерской или рабочим столом. Это место, где вы храните свои инструменты (пакеты), работаете над проектами и собираете готовые изделия. Как в мастерской есть полки для инструментов (src), место для сборки (build), готовые изделия (install), так и в workspace есть соответствующие директории. Вы можете иметь несколько мастерских (несколько workspace) для разных типов проектов, и каждая из них изолирована от других.

Удобно распределять пакеты ROS при разработке в разные пространства (по сути разные директории), используя необходимую нам логику.

Для робота TurtleBro, в домашней директории /home/pi создано три пространства

microros_ws #Пространство для пакетов касающиеся подсистемы MicroROS
ros_extra_ws #Пространство для "чужих" пакетов, которых нет в репозитории ubuntu, и их необходимо установить из исходников
turtlebro_ws #системные пакеты для робота TurtleBro 

Для удобства в окончание название директории, мы добавляем окончание _ws (сокращение от workspace)

Структура workspace

Типичная структура workspace:

turtlebro_ws/           # Корень рабочего пространства (workspace)
├── build/              # Временные файлы сборки (cmake, make)
├── install/            # Установленные файлы (исполняемые файлы, библиотеки)
├── log/                # Логи и диагностика процесса сборки
└── src/                # Исходный код ваших пакетов (ЗДЕСЬ МЫ РАБОТАЕМ!)
    └── turtlebro/      # Расположение пакета ROS

Для того чтобы система ROS "видела" все созданные рабочие пространства, они должны быть добавлены в системные настройки OS.

Например для подключения пространства turtlebro_ws необходимо выполнить команду

source /home/pi/turtlebro_ws/install/setup.bash

Для перечисленных директорий инициализация всех директорий указана в файле .bashrc, для того чтобы не приходилось каждый раз вводить повторяющиеся команды.

Создадим и настроим собственный workspace

Создание рабочего пространства user_ws

  1. Создайте директорию для workspace: Откройте терминал и выполните:

    mkdir -p ~/user_ws/src
    

    Флаг -p гарантирует, что будут созданы все родительские директории, если их не существует.

  2. Инициализация пустого workspace Хотя мы и не установили ни одного пакета в директорию src, мы можем инициализировать необходимые файлы для пространства, запустив "пустую" сборку пакетов. Выполним команду сборки пакетов.

    cd ~/user_ws
    colcon build
    

    Эта команда создаст базовые файлы конфигурации для colcon.

Важно: Теперь ваше рабочее пространство user_ws готово к созданию пакетов. Все последующие команды по созданию пакетов должны выполняться внутри директории ~/user_ws/src.

Настройка системного окружения

Для подключения созданного рабочего пространства в систему ROS необходимо выполнить команду

cd user_ws
source install/setup.bash