Как создать приложение на основе ROS2 вне рабочей области

Я создал приложение qt, которое можно собрать с помощью cmake. Мое приложение использует какой-то сервис ros2, поэтому мне нужно собрать его с помощью ros. Для этого мне нужно поместить мой код в ros2_ws/src/. Я хочу избежать этой вещи. Я хочу собрать приложение из любой папки (без помещения в ros2_wc) с помощью инструмента ament. Как мне это сделать?

1 ответ

Если вы хотите сделать это, вам нужно собрать ROS2 как обычно и создать следующий скрипт:

. install/local_setup.bash

Затем вы можете вызвать вашу команду сборки, используя ament из нужного вам каталога.

cd <dir>
ament build --force-cmake-configure ...

Для тех, кто использует новый инструмент сборки ros2: colcon

Вы можете оставить свои собственные ~/ros2_ws и поместить приложение QT в другое ~/ros2_overlay_ws,

Например, если ваше новое приложение QT зависит от какой-либо службы или сообщения, расположенного в оригинале ~/ros2_wsВы могли бы пойти в ~/ros2_ws и беги colcon build, После завершения компиляции, пожалуйста, не забудьте импортировать и переиндексировать ваши пакеты с помощью следующей команды: source ~/ros2_ws/install/setup.bash, Это будет переиндексировать ваши пакеты ros2 на текущем терминале.

Теперь иди в ~/ros2_overlay_ws/ и поместите ваше приложение QT в ~/ros2_overlay_ws/src а потом беги colcon build, colcon найдет ваш проиндексированный пакет и добавит их в вашу зависимость.

Другие вопросы по тегам