Gazebo Dev Container¶
Предупреждение
Текущая инструкция прeдназначена для пользователей операционной системы Ubuntu и на других системах не проверялась.
Эта инструкция поможет запустить симулятор Gazebo для разработки Clover2 в Visual Studio Code через Dev Container.
Dev Container¶
Dev Container — заранее подготовленная среда разработки внутри Docker, где уже установлены нужные программы. Без него пришлось бы вручную устанавливать ROS 2 Jazzy, Gazebo, MAVROS, PX4-зависимости и инструменты сборки. Dev Container запускает готовую среду внутри Docker.
1. Подготовка¶
Важно
Команды из этого раздела выполняются на вашем компьютере, а не внутри Dev Container. Если вы уже установили Docker, VS Code и расширение Dev Containers, этот раздел можно использовать как проверку.
1.1. Установка Docker¶
Воспользуйтесь документацией по установке Docker.
1.2. Установка Visual Studio Code¶
Скачайте Visual Studio Code с официального сайта и установите версию для вашей операционной системы.
Для Linux скачайте файл .deb для вашей системы, например x64, и выполните:
sudo apt install -f ./путь-до-файла/code_*.deb
1.3. Установка расширения Dev Containers¶
Откройте VS Code.
Нажмите значок Extensions.
Найдите
Dev Containers.Установите расширение от Microsoft.
2. Клонирование проекта¶
Команды из этого раздела выполняются на компьютере, не внутри контейнера.
2.1. Перейти в папку для проектов¶
Например, можно использовать папку ~/projects:
mkdir -p ~/projects
cd ~/projects
2.2. Склонировать clover2-dev¶
Склонируйте репозиторий:
git clone https://github.com/klever-coex/clover2-dev.git
cd clover2-dev
3. Первый запуск Dev Container¶
Команды и действия из этого раздела выполняются на компьютере в VS Code.
3.1. Открыть проект в VS Code¶
Если вы находитесь в папке clover2-dev, можно открыть её командой:
code .
Если команда code не работает, откройте VS Code вручную и выберите папку clover2-dev через меню File -> Open Folder.
3.2. Запустить Dev Container¶
В VS Code:
Нажмите
Ctrl+Shift+P.Введите
Reopen in Container.Выберите команду
Dev Containers: Reopen in Container.Выберите один из вариантов:
clover2-dev:universe-devel;clover2-dev:universe-devel (NVIDIA)— если у вас NVIDIA-видеокарта.
Важно
При первом запуске VS Code скачает необходимые зависимости, это может занять 5-10 минут.
Когда VS Code подключен к контейнеру в левом нижнем углу окна, это помечается.
4. Загрузка зависимостей¶
Теперь нужно скачать исходные коды, из которых собирается симулятор. Команды выполняются внутри Dev Container.
4.1. Файл со списком зависимостей¶
В проекте используется файл:
repos/simulation.yaml
В нём указаны репозитории clover2-sim и clover2:
repositories:
clover2-sim:
type: git
url: https://github.com/klever-coex/clover2-sim.git
version: feature/clover2-dev
clover2:
type: git
url: https://github.com/klever-coex/clover2.git
version: feature/clover2-dev
Оба репозитория будут скачаны в папку src.
4.2. Скачать зависимости¶
В терминале Dev Container выполните:
vcs import src --recursive < repos/simulation.yaml
Важно
Загрузка может занять много времени так как скачивается исходный код PX4.
5. Сборка проекта¶
Сборка подготавливает исходный код и создаёт готовые ROS 2-пакеты. Команды выполняются внутри Dev Container.
5.1. Подключить ROS 2 Jazzy¶
В терминале Dev Container выполните:
source /opt/ros/jazzy/setup.bash
5.2. Собрать workspace¶
В терминале Dev Container выполните:
colcon build --symlink-install
Если все сделанно верно, то вывод в терминале будет выглядить примерно так:
6. Запуск симулятора¶
После сборки нужно подключить собранные пакеты. Команды выполняются внутри Dev Container.
6.1. Подключить собранный проект¶
В терминале Dev Container выполните:
source ./install/setup.bash
Результат: команда обычно ничего не выводит, после неё ROS 2 должен видеть пакеты из workspace.
Проверить можно командой:
ros2 pkg list | grep clover
6.2. Запустить симулятор¶
В терминале Dev Container, где уже выполнено source ./install/setup.bash, выполните:
ros2 launch clover2_sim gz_simple.launch.py
Результат:
в терминале появятся сообщения ROS 2;
должен начаться запуск Gazebo / Gz;
откроется графическое окно симулятора;
процесс не должен сразу завершиться с ошибкой.
7. Повторный запуск¶
После перезагрузки компьютера всё устанавливать заново не нужно.
7.1. Что делать после перезагрузки¶
Откройте VS Code.
Откройте папку
clover2-dev.Выберите
Dev Containers: Reopen in Container.Откройте терминал внутри контейнера.
Подключите собранный проект:
source ./install/setup.bash
После этого можно запускать симулятор:
ros2 launch clover2_sim gz_simple.launch.py
7.2. Когда нужно пересобирать проект¶
Пересборка нужна, если:
вы впервые скачали исходники;
изменился C++-код;
изменились
CMakeLists.txtилиpackage.xml;появились новые ROS 2-пакеты;
команда запуска не видит пакет;
после
vcs importбыли обновлены репозитории.
Для пересборки используйте:
source /opt/ros/jazzy/setup.bash
colcon build --symlink-install
7.3. Когда достаточно только source ./install/setup.bash¶
Достаточно выполнить только:
source ./install/setup.bash
если:
проект уже был собран;
вы просто открыли новый терминал;
вы перезапустили контейнер;
вы хотите снова запустить симулятор без изменения кода.