Azzera filtri
Azzera filtri

Object recognition from point cloud

2 visualizzazioni (ultimi 30 giorni)
Hall marokey
Hall marokey il 27 Set 2017
Like ORK (object recognition tabletop) available in ROS does MATLAB have any function which identifies objects from pointclouds ( not from images)

Risposte (1)

Paola Donis Noriega
Paola Donis Noriega il 22 Set 2023
Hi Hall,
MATLAB has point cloud processing functionality to help you achieve this workflow. You can detect the table and the objects on the table with a pipeline similar to the following:
1) To detect the table, you can use the pcfitplane function with the referenceVector input set to [0 0 1]. This function detects the dominant plane in the point cloud. If there is another plane with similar orientation that gets detected first (for example: the floor), you can remove that plane and do plane detection a second time. In addition, if you know the general area where the table is located, you can first select the area of interest in your point cloud using the findPointsInROI object function.
2) Once you detect the table, you can define an area of interest around the table and select it using findPointsInROI. In this area of interest, you can remove the detected plane to have a point cloud that just contains the objects on the table.
3) Then, you can segment the point cloud to identify each object. For this step, you can use pcsegdist. Then, use the select object function to get a point cloud of each object.
4) Once you have identified each object, you can find its position and orientation by doing registration between the mesh and the object. First convert the mesh to a point cloud. For 3-D registration, there are many options available in MATLAB. You can start by trying a global registration function like pcregisterfgr. Alternatively (or in addition), you can try using a local registration algorithm like Generalized-ICP to get a more accurate transformation. The G-ICP algorithm is available in the pcregistericp function with the following syntax: pcregistericp(ptCloud1, ptCloud2, Metric="planeToPlane").
I hope this helps.
Paola

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by