【问题标题】:How would you implement a ROS subscriber in an existing QT Creator GUI project?您将如何在现有的 QT Creator GUI 项目中实现 ROS 订阅者?
【发布时间】:2021-11-27 21:45:41
【问题描述】:

我在 ubuntu 上为 QT 安装了 ROS 插件,但如果我在项目中创建订阅者节点,则会在 #include "ros / ros.h" 上出现错误 据我了解,我需要使用 catkin 创建一个工作区,但是如何将我已有的项目与工作区合并?

【问题讨论】:

  • 是的,很抱歉这里打错了,当然在代码中是正确的

标签: c++ qt qt-creator ros


【解决方案1】:

如果您已经有一个 catkin 工作区,您只需创建一个新包并在那里构建项目;你可以看到关于那个here的教程。简而言之,您可以在~/<your_workspace>/src 中创建一个依赖于roscpp 这个命令catkin_create_pkg your_new_package std_msgs roscpp 的包。然后,您应该将 .cpp 文件放在 <your_new_package>/src 目录中,将 .hpp 文件放在 <your_new_package>/include 目录中。之后你需要做的就是通过 catkin 和 cmake 构建它。由于 ros 包是使用 cmake 构建的,因此这是通过编辑每个包中的 CMakeLists.txt 文件来完成的。您可以找到有关 here 的更多信息。本质上,您想确保您的源文件被捕获和构建。它可能看起来像这样

cmake_minimum_required(VERSION 2.8.3)
project(your_new_node_name)

## Find catkin and any catkin packages
find_package(catkin REQUIRED COMPONENTS roscpp std_msgs genmsg)

## Generate added messages and services
generate_messages(DEPENDENCIES std_msgs)

## Declare a catkin package
catkin_package()

## Build talker and listener
include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(your_qt_executable src/your_source_file.cpp)
target_link_libraries(your_qt_executable ${catkin_LIBRARIES})
#uncomment this if other deps are needed
#add_dependencies(your_qt_executable some_other_dependency) 

【讨论】:

  • 现在我有了我的工作区、我的包和我的订阅者,如何将所有这些与我现有的 QT 中的 Gui 项目合并?我需要在我的项目中拥有订阅者,但我不明白如何使这成为可能。我试图将 ws 放入项目中,但这个 obv 无法复制。
  • @Nietzsche2meetyou 根据我的回答,你的 gui 项目应该作为一个新包放在你的工作区中,而不是相反。
猜你喜欢
  • 1970-01-01
  • 2016-03-09
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
相关资源
最近更新 更多