我正在与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;
因此,我有一台相机及其将数据发布到该主题的方法,我不知道如何将其发布到制图师。
答案 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);