C++ 如何在现有的QT Creator GUI项目中实现ROS发布者和订阅者?
目前,我有一个用QT Creator编写的模拟器GUI,它模拟机器人的运动,我想将其与ROS集成,以便它能够实际控制机器人 如何将ROS发布者和订阅者节点写入QT Creator项目C++ 如何在现有的QT Creator GUI项目中实现ROS发布者和订阅者?,c++,qt,ros,C++,Qt,Ros,目前,我有一个用QT Creator编写的模拟器GUI,它模拟机器人的运动,我想将其与ROS集成,以便它能够实际控制机器人 如何将ROS发布者和订阅者节点写入QT Creator项目 提前谢谢 好吧,你可以看看包装 基本上,逻辑是在Gui后面运行一个QThread节点(Gui类的私有成员)。它将负责处理所有ROS逻辑(订阅、发布、服务服务器/客户端…),然后使用适当的方法将该数据中继到父Qt Gui 对于ROS项目中的Qt,最简单的方法将取决于Qt构建包和您的CMakelists,下面是一个使用
提前谢谢 好吧,你可以看看包装 基本上,逻辑是在Gui后面运行一个QThread节点(Gui类的私有成员)。它将负责处理所有ROS逻辑(订阅、发布、服务服务器/客户端…),然后使用适当的方法将该数据中继到父Qt Gui 对于ROS项目中的Qt,最简单的方法将取决于Qt构建包和您的CMakelists,下面是一个使用Gui创建节点的简短设置:
rosbuild_prepare_qt4(QtCore QtGui QtXml) # Add the appropriate components to the component list here
# Sections
file(GLOB QT_FORMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui)
file(GLOB QT_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.qrc)
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/*.h include/*.hpp include/msg-pack-include/*.h)
QT4_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
QT4_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
QT4_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
# Sources
file(GLOB_RECURSE QT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS src/*.cpp)
# Binaries
add_executable(qt_gui_node ${QT_MOC_HPP} ${QT_SOURCES} ${QT_RESOURCES_CPP} ${QT_FORMS_HPP})
target_link_libraries(qt_gui_node ${QT_LIBRARIES} ${catkin_LIBRARIES})
如果您想要一种更简洁的方式,您只需在项目中的名为cmake的文件夹中复制/粘贴,然后将其包括在CmakeList中,如下所示:
include(cmake/qt-ros.cmake.in)
希望这有帮助,至少是一个启动点
干杯,非常感谢Vtik,您的建议非常有用!