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

Model Free 3D Object Detection & tracking PCL

asked 2016-09-30 04:59:27 -0500

ramanan1991 gravatar image

I have a task where i am asked to track parcels(carton boxes) of different dimensions moving on a conveyor

I am using Asus Xtion pro camera mounted on top of a conveyor in any inclined angle and also i have been asked to use Point cloud data to detect & track the object on the conveyor

I have read so many model-based methods where we need to create a model of the object to be detected and then we perform keypoints extraction,feature mapping and so many other concepts between the scene and the model. Since i am using Boxes of different dimensions, i definitely need a model of each of them to match with the scene. I don't want a model based tracker because, i need to create separate models of a box of all dimensions that my tracker will track.

My question : Is there a model free object tracker that works on point Clouds to detect object in the scene, gives their 6DOF and track them? My target object is just a box and i want to eliminate all other things in the scene.

Thanks in advance

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-09-30 06:14:11 -0500

Airuno2L gravatar image

updated 2016-09-30 06:19:32 -0500

There are some tools in the Point Cloud Library that could be useful.

If the pose of the sensor is fixed and known, you could start by throwing away any points that aren't of interest like the background or any areas that don't contain the conveyor or objects using a passthrough filter.

Then you can detect the plane that belongs to the conveyor surface and throw those points away using plane segmentation.

After that you should be left with a point cloud that (roughly) only contains points that belong to objects on the conveyor. In order to group the points of individual objects into their own smaller point clouds you could use Euclidean Cluster Extraction. If everything goes right, you should be left with a bunch of little point cloud, each of which belongs to a single object on the conveyor.

I don't know if you need to, but if you do, you could probably then try and fit a box shape to each cloud - by that I don't mean compare a bunch of box models to the clouds, I mean assume that each cloud is a box and try to figure out what the dimensions of the boxes are using some of the tools in the sample consensus library. I don't know if there is a function specialized in fitting box shapes in Point Cloud Library, but you could probably do something like try to find the planes that make up the sides of the box, and make your own function that takes a few planes as inputs and outputs the height, width, and length of boxes, and even the X,Y,Z position of the center of the box and the box's orientation. Or maybe this is as simple as finding the oriented bounding box of the small point clouds(but keep in mind the sensor wouldn't see all sides of the box), you could probably find an oriented bounding box code on the internet somewhere.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-09-30 04:59:27 -0500

Seen: 4,158 times

Last updated: Sep 30 '16