如何从工作区外部构建基于 ROS2 的应用程序
Posted
技术标签:
【中文标题】如何从工作区外部构建基于 ROS2 的应用程序【英文标题】:How to build ROS2 based application from outside of workspace 【发布时间】:2018-09-04 10:49:50 【问题描述】:我创建了一个可以通过 cmake 构建的 qt 应用程序。我的应用程序使用了一些 ros2 服务,所以我需要用 ros 构建它。为此,我需要将我的代码放在 ros2_ws/src/ 下。我想避免这件事。我想使用 ament 工具从任何文件夹(不放在 ros2_wc 下)通过应用程序构建。我该怎么做?
【问题讨论】:
【参考方案1】:如果你想这样做,你需要像往常一样构建 ROS2,并获取以下脚本:
. install/local_setup.bash
然后你可以使用你想要的目录中的 ament 调用你的构建命令。
cd <dir>
ament build --force-cmake-configure ...
【讨论】:
【参考方案2】:对于那些正在使用新的 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 将找到您的索引包并将它们添加到您的依赖项中。
【讨论】:
以上是关于如何从工作区外部构建基于 ROS2 的应用程序的主要内容,如果未能解决你的问题,请参考以下文章