上一篇文章我们介绍了怎么在ROS中搭建具有Qt 5 GUI架构的程序,本篇我们将进一步介绍怎么在这个架构下进行ROS消息的接收和显示。
ROS消息接收
在ROS中,接收消息一般是用spin()或者spinOnce()两个函数实现的。前者是一个阻塞函数,一运行程序则会等待在该函数处接收消息,后者则在调用之时方能接收到消息。如果写过界面程序的老哥肯定清楚,这种性质的函数是不能写在界面程序中的,否则程序将会处于假死状态。因此在Qt中实现ROS消息的接收需要开辟新的线程来实现,比较主流的方法是将其全部封装在一个类中,我们设计一个类如下:
qnode.h
#ifndef QNODE_H
#define QNODE_H
#include <std_msgs/String.h><