ros multi topics sub
来源:互联网 发布:仿爱奇艺网站源码asp 编辑:程序博客网 时间:2024/06/05 16:13
#include "ros/ros.h"
#include "std_msgs/String.h"
//#include <boost/thread.hpp>
#include <thread>
class multiThreadListener
{
public:
multiThreadListener()
{
sub = n.subscribe("chatter1", 1, &multiThreadListener::chatterCallback1,this);
sub2 = n.subscribe("chatter2", 1, &multiThreadListener::chatterCallback2,this);
}
void chatterCallback1(const std_msgs::String::ConstPtr& msg);
void chatterCallback2(const std_msgs::String::ConstPtr& msg);
private:
ros::NodeHandle n;
ros::Subscriber sub;
ros::Subscriber sub2;
};
void multiThreadListener::chatterCallback1(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
ros::Rate loop_rate(0.5);//block chatterCallback2()
loop_rate.sleep();
}
void multiThreadListener::chatterCallback2(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "multi_sub");
multiThreadListener listener_obj;
ros::AsyncSpinner spinner(2); // Use 2 threads
spinner.start();
ros::Rate loop_rate(10);//block chatterCallback2()
while(ros::ok())
{
std::cout<<"----------------"<<std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
return 0;
}
#include "std_msgs/String.h"
//#include <boost/thread.hpp>
#include <thread>
class multiThreadListener
{
public:
multiThreadListener()
{
sub = n.subscribe("chatter1", 1, &multiThreadListener::chatterCallback1,this);
sub2 = n.subscribe("chatter2", 1, &multiThreadListener::chatterCallback2,this);
}
void chatterCallback1(const std_msgs::String::ConstPtr& msg);
void chatterCallback2(const std_msgs::String::ConstPtr& msg);
private:
ros::NodeHandle n;
ros::Subscriber sub;
ros::Subscriber sub2;
};
void multiThreadListener::chatterCallback1(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
ros::Rate loop_rate(0.5);//block chatterCallback2()
loop_rate.sleep();
}
void multiThreadListener::chatterCallback2(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "multi_sub");
multiThreadListener listener_obj;
ros::AsyncSpinner spinner(2); // Use 2 threads
spinner.start();
ros::Rate loop_rate(10);//block chatterCallback2()
while(ros::ok())
{
std::cout<<"----------------"<<std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
return 0;
}
阅读全文
0 0
- ros multi topics sub
- (四)理解ROS topics
- ROS学习笔记五:理解ROS topics
- ROS学习笔记10 话题(topics)实例
- 第七节--ROS操作系统---理解ROS话题topics
- ROS, Pioneer, Multi-computer, interconnection
- 利用cv_bridge与ROS的SUB通信
- Topics
- ros:(3)ROS话题:『ROS Topics』『rqt_graph』『ROS Messages』『rqt_plot』
- sub
- Sub
- dict in dict : sort and filter dict by sub-dict value in multi condition
- oral topics
- Topics English
- Programming Topics
- Verification Topics
- RabbitMQ Topics
- multi-
- Android_侧滑页面需要添加的属性
- 2
- 3
- mysql安装及其备份
- 如何保存Windows聚焦的锁屏壁纸
- ros multi topics sub
- 神经网络初探:什么是神经网络?
- 4
- 函数的参数
- 5
- 前台页面直接打印2
- Broadcast Receiver
- 6
- 7