Как создать приложение на основе 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 найдет ваш проиндексированный пакет и добавит их в вашу зависимость.