Scene Parsing: obj-to-pcd and Model RANSACer


Our group has been working on a project to use for classification. As a result we have produced a ROS package, including an obj-to-PCD scanner and a model RANSAC module.

Scanner: As a result of our need to test on many objects, we created an obj-to-PCD scanner. This package takes in obj files (for example from Google Sketch-Up) and returns a PCD file. It can simulate cameras from multiple angles, and noise can be added (both gaussian and simulated Kinect noise). The final output is a version .7 ASCII PCD file.

RANSAC: For our project, we also needed to know the constituent shapes of any given object. For this we started with the built-in random consensus functions in PCL (for planes and spheres). We then added to these functions the ability to also fit cylinders. The package, then, fits the best series of planes, spheres, and cylinders to any given PCD file. The “best fit” defined here as being the series of shapes that leaves the least number of unfit-able points at the end. The RANSAC module has three outputs at the end. The first is a segmented point cloud. This file has two extra fields to each point. The first is a segment ID, telling which group the point belongs to, and the second is a label ID, telling which type of shape the point is part of. The second file is a neighborhood list, which tells which segment groups are neighbors of each other. The final file is an initial parse tree which can be ignored.


Download code and example data set.




Ashutosh Saxenaasaxena at


Caspar Andereggcja58 at
Bill Bestwpb47 at

See Personal Robotics team.