ROS订阅一个节点信息
时间: 2024-05-15 13:19:03 浏览: 147
ros_fuse_point_cloud:[ROS] 提供节点订阅多个点云并将它们融合为一个
好的,关于ROS订阅一个节点信息,我们可以通过ros::NodeHandle中的subscribe()函数来实现。具体步骤如下:
1. 定义一个callback函数,用于接收消息并处理。
2. 在NodeHandle中调用subscribe()函数,指定topic和队列的长度,同时将callback函数作为参数传入。
3. 程序需要进入ROS循环才能处理消息,可以使用ros::spin()让程序持续运行。
代码示例:
```c++
void callback(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, "listener"); // 初始化节点
ros::NodeHandle n; // 创建节点句柄
ros::Subscriber sub = n.subscribe("chatter", 1000, callback); // 订阅chatter话题
ros::spin(); // 进入ROS循环
return 0;
}
```
在这个例子中,callback函数用于接收std_msgs::String类型的消息,ROS_INFO用于打印消息内容。订阅的话题是“chatter”,队列长度为1000。运行程序后,当有节点发布chatter话题时,callback函数将被调用。
阅读全文