Рабочее пространство (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
-
Создайте директорию для workspace: Откройте терминал и выполните:
mkdir -p ~/user_ws/srcФлаг
-pгарантирует, что будут созданы все родительские директории, если их не существует. -
Инициализация пустого workspace Хотя мы и не установили ни одного пакета в директорию
src, мы можем инициализировать необходимые файлы для пространства, запустив "пустую" сборку пакетов. Выполним команду сборки пакетов.cd ~/user_ws colcon buildЭта команда создаст базовые файлы конфигурации для
colcon.
Важно: Теперь ваше рабочее пространство user_ws готово к созданию пакетов. Все последующие команды по созданию пакетов должны выполняться внутри директории ~/user_ws/src.
Настройка системного окружения
Для подключения созданного рабочего пространства в систему ROS необходимо выполнить команду
cd user_ws
source install/setup.bash