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

Revision history [back]

I made my own solution, for sure far from perfect but is working for my use case. I call my (heavily modified) version of GT-RAIL/rail_segmentation to segment the table and the objects on top. Then, I send the clusters to my heavily modified GT-RAIL/rail_mesh_icp with the following changes:

  • Replace ICP and template matching services with a single action (I convine both nodes into one; ICP Matcher is now an object of template matcher)
  • Load multiple templates, compare the target pointcloud against all (in parallel with OpenMP), and get the best match
  • On ICP matching, I only allow 2D transformation, appropriate for tabletop objects

Here are my changes, both thorp branch: - https://github.com/corot/rail_segmentation - https://github.com/corot/rail_mesh_icp

I didn't bother to PR anything into RAIL repos cause they don't seem maintained anymore, and the changes are too big, and possibly beyond the original purpose of the code.

Btw, to recognize your 3D meshes with rail_mesh_icp you must sample as PCD files (explained in RAIL wiki)

I will post a video

I made my own solution, for sure far from perfect but is working for my use case. I call my (heavily modified) version of GT-RAIL/rail_segmentation to segment the table and the objects on top. Then, I send the clusters to my heavily modified GT-RAIL/rail_mesh_icp with the following changes:

  • Replace ICP and template matching services with a single action (I convine both nodes into one; ICP Matcher is now an object of template matcher)
  • Load multiple templates, compare the target pointcloud against all (in parallel with OpenMP), and get the best match
  • On ICP matching, I only allow 2D transformation, appropriate for tabletop objects

Here are my changes, both thorp branch: - https://github.com/corot/rail_segmentation - https://github.com/corot/rail_mesh_icp

I didn't bother to PR anything into RAIL repos cause they don't seem maintained anymore, and the changes are too big, and possibly beyond the original purpose of the code.

Btw, to recognize your 3D meshes with rail_mesh_icp you must sample as PCD files (explained in RAIL wiki)

I will post a video

I made my own solution, for sure far from perfect but is working for my use case. I call my (heavily modified) version of GT-RAIL/rail_segmentation to segment the table and the objects on top. Then, I send the clusters to my heavily modified GT-RAIL/rail_mesh_icp with the following changes:

  • Replace ICP and template matching services with a single action (I convine both nodes into one; ICP Matcher is now an object of template matcher)
  • Load multiple templates, compare the target pointcloud against all (in parallel with OpenMP), and get the best match
  • On ICP matching, I only allow 2D transformation, appropriate for tabletop objects

Here are my changes, both thorp branch: - https://github.com/corot/rail_segmentation - https://github.com/corot/rail_mesh_icp

I didn't bother to PR anything into RAIL repos cause they don't seem maintained anymore, and the changes are too big, and possibly beyond the original purpose of the code.

Btw, to recognize your 3D meshes with rail_mesh_icp you must sample as PCD files (explained in RAIL wiki)

I will post a video

image description

And the objects in gazebo:

image description