将传感器数据发布给制图师

时间:2018-09-10 08:45:05

标签: c++ publish sensor ros point-clouds

我正在与Google制图师合作,我有一个RGB相机。我有一个主题,将PointCloud2数据发布到该主题。它是/ ifm3d / camera / cloud,我创建了自己的节点以将数据发布给制图师。制图师有一个主题,points2订阅该主题。但是我的问题是我不知道如何编写代码以将传感​​器数据发布给制图师。这是我的代码:

...
ros::init(argc,argv,"point_cloud_publisher);
ros::NodeHandle nh;

ros::Publisher pub_pointCloud = nh.advertise<sensor_msgs::PointCloud>("/points2",1000); 
sensor_msgs::PointCloud2 cloud;

因此,我有一台相机及其将数据发布到该主题的方法,我不知道如何将其发布到制图师。

1 个答案:

答案 0 :(得分:0)

您所缺少的是订户。为了将相机中的数据发布给制图师,您的节点需要首先订阅该数据。

先看看ROSCPP Publisher/Subscriber Tutorial,然后尝试实现一个简单的示例。您的代码应包含:

1)订阅主题/ifm3d/camera/cloud

订阅者
  

ros :: Subscriber sub = nh.subscribe(“ / ifm3d / camera / cloud”,1000,回调);

2)回调函数,用于对订户接收到的数据进行处理

3)一个发布者,用于发布您从订阅者那里收到的数据(您已经设置好了)

看起来您打算将sensor_msgs::PointCloud2 cloud;用作要发布的云。只需将您从订阅服务器收到的值分配给该回调函数内部的此变量,然后使用以下命令调用您的发布服务器:

  

pub_pointCloud.publish(cloud);