Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Object detection server? #4

Open
corot opened this issue Sep 26, 2020 · 4 comments
Open

Object detection server? #4

corot opened this issue Sep 26, 2020 · 4 comments

Comments

@corot
Copy link

corot commented Sep 26, 2020

Question: did you develop, or do yo plan to do an object detection server?
With current services you can check the fitting of a segmentated pointcloud (extracted with rail_segmentation) to a know mesh. But would make sense to provide an object detection action server that fits each segmentated pointcloud to all the known objects and assigns the best fit (if above a threshold)? That's what the old ORK tabletop did, and was very convenient, but current code doesn't work on melodic. I'm surprise that I cannot find something similar.

@adaruna3
Copy link
Collaborator

Hi Jorge,

The pipeline does not have an object detection server built in. However, if you look at 6.2 in the Wiki, you can see that you can integrate the pipeline with an object detector. Specifically, the initial_estimate argument for the match_template service calls can be provided and updated. The argument could be provided by an object detector, as you had in mind, so that the initial estimate can change with each call.

Note that although such as object detector might detect multiple objects, each instance of template_matcher_node is only matching to a single model (source) pointcloud. Therefore, to get the full functionality you mentioned, you would need to have a template_matcher_node instance for each object type.

I will improve the code so that you can match a different model (source) pointcloud to the target pointcloud with each service call, removing the need for multiple instances of template_matcher_node. However, I will need to consider whether to include a full object detection server, as such a server remains out-of-scope of a mesh matching package.

I will close once I incorporate the functionality I mentioned.

Thanks!
Angel

@corot
Copy link
Author

corot commented Nov 26, 2020

The pipeline does not have an object detection server built in. However, if you look at 6.2 in the Wiki, you can see that you can integrate the pipeline with an object detector. Specifically, the initial_estimate argument for the match_template service calls can be provided and updated. The argument could be provided by an object detector, as you had in mind, so that the initial estimate can change with each call.

Yep, that's what I had in mind; but as u said, very awkward to have so many template matchers running!

Note that although such as object detector might detect multiple objects, each instance of template_matcher_node is only matching to a single model (source) pointcloud. Therefore, to get the full functionality you mentioned, you would need to have a template_matcher_node instance for each object type.

I will improve the code so that you can match a different model (source) pointcloud to the target pointcloud with each service call, removing the need for multiple instances of template_matcher_node. However, I will need to consider whether to include a full object detection server, as such a server remains out-of-scope of a mesh matching package.

Yes, something like loading all the templates on in input directory and label the objects after the file name w/o extension would be great. I volunteer as beta-tester! 🖐️ 😄

Thanks!!!

@corot
Copy link
Author

corot commented Dec 26, 2020

Merry Christmas! Is there any work in progress on the multiple templates loading?

@corot
Copy link
Author

corot commented Dec 26, 2020

Btw, I modified ICP to only allow planar transformation (for tabletop objects) by using a TransformationEstimation2D.
Would it make sense to add an option to the ICPMatch service to indicate the possible transformations? (2D, 3D, 6D...)
I can open a PR if so

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants