ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

PCL_tutorial, how to show the point cloud

asked 2012-11-19 04:27:59 -0500

Pierre gravatar image

updated 2016-10-24 08:36:52 -0500

ngrennan gravatar image

Hello,

I am following the tutorial of PCL with ROS (www.ros.org/wiki/pcl/Tutorials).

When i launch the openni i can see the topic is publishing. But when i try to use it to see the result, nothing happen (only black screen is showed in the rviz window).

What i have to do to show the result?

here is the code i use:

#include <ros/ros.h>
// PCL specific includes
#include <pcl/ros/conversions.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>

#include <pcl/filters/voxel_grid.h>

ros::Publisher pub;

void cloud_cb (const sensor_msgs::PointCloud2ConstPtr& cloud){
sensor_msgs::PointCloud2 cloud_filtered;

 // Perform the actual filtering
pcl::VoxelGrid<sensor_msgs::PointCloud2> sor;
sor.setInputCloud (cloud);
sor.setLeafSize (0.01, 0.01, 0.01);
sor.filter (cloud_filtered);

// Publish the data
pub.publish (cloud_filtered);
}

int main (int argc, char** argv){
// Initialize ROS
ros::init (argc, argv, "my_pcl_tutorial");
ros::NodeHandle nh;

 // Create a ROS subscriber for the input point cloud
ros::Subscriber sub = nh.subscribe ("input", 1, cloud_cb);

// Create a ROS publisher for the output point cloud
pub = nh.advertise<sensor_msgs::PointCloud2> ("output", 1);

// Spin
ros::spin ();
}

Thanks

--Pierre

edit retag flag offensive close merge delete

Comments

Did you add the correct type and the topic you're interested in correctly in Rviz?

Albert K gravatar image Albert K  ( 2012-11-19 05:06:19 -0500 )edit

I think so. I add a pointCloud2. And in the topic i selected the output(sensor_msgs/PointCloud2).

Pierre gravatar image Pierre  ( 2012-11-19 05:16:17 -0500 )edit

What about the topic you subscribe to? If you try to catch the data published by openni node, the topic you subscribe to shouldn't be "input".

Albert K gravatar image Albert K  ( 2012-11-19 05:19:26 -0500 )edit

For the topic i subscribe i just followed the tutorial putting in the terminal: rosrun my_pcl_tutorial example input:=/narrow_stereo_textured/points2

Pierre gravatar image Pierre  ( 2012-11-19 05:26:11 -0500 )edit
2

If you're using openni (assuming you're using the openni_launch files), your input cloud should be /camera/depth/points or /camera/depth_registered/points. Nothing in openni_launch publishes /narrow_stereo_textured/point2. The PCL tutorial assumes you have a stereo vision system that does.

Ed Venator gravatar image Ed Venator  ( 2012-11-19 13:44:33 -0500 )edit

I don't understand, because yesterday i tried it with input:=/camera/depth_registered/points and that produced an error on the openni_launch terminal. But today it works... Thank you so much for your help.

Pierre gravatar image Pierre  ( 2012-11-20 02:26:36 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2014-04-17 10:19:17 -0500

Ken_in_JAPAN gravatar image

Please check this page( http://answers.ros.org/question/15393... ) if you have some trouble. I think that a result on this page is useful for you.

edit flag offensive delete link more
0

answered 2012-11-20 06:11:20 -0500

Pierre gravatar image

Thank you Ed Venator. With input:=/camera/depth_registered/points that work perfectly.

"The PCL tutorial assumes you have a stereo vision system that does." What stereo vision system are you talking about?

edit flag offensive delete link more

Comments

I don't know; it may be that the author of that tutorial was using a stereo vision system of his own creation. I believe that tutorial predates the use of the Kinect in ROS.

Ed Venator gravatar image Ed Venator  ( 2012-11-30 09:12:10 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2012-11-19 04:27:59 -0500

Seen: 4,712 times

Last updated: Apr 17 '14