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

ORK replacement package?

asked 2019-06-16 14:42:08 -0600

jorge gravatar image

updated 2019-06-18 10:05:19 -0600

Hi, ORK looks dead, and so I was thinking to switch to another 3D object recognition package. I saw this same question but it's 8 years old, so I ask again.

I have identified so far plenty of ROS packages that recognize objects from 2D images, and some of them complement it with depth from a 3D camera:

But pretty sure there are more (and even more will soon appear). Looks like most approaches now involve 2D object recognition using Deep Learning and then add depth by locating the object centroid in a depth image. Am I right? Mesh-matching times are gone?

What I want is, as with ORK, tabletop segmentation and recognition of the objects on the table, with 3D pose, to run a demo like that on this video. Has anyone any clue about which package looks best place to become a new "de facto" standard, or at least continue with active maintaining for the mid-term?

Thanks a lot!

UPDATE I have found another similar question, though I keep mine as it's more detailed.

edit retag flag offensive close merge delete


I have the same problem, I've tried ORK with the linemod algorithm but did not get good results, the blort_ros package seems to do the thing, but is not maintained anymore, the same as tabletop_object_detector... seems like a lot of outdated pacakges for 3D object recognition...Otherwise, there is a opencv implementation of 3D surface matching which you can have a look at:

rfn123 gravatar image rfn123  ( 2019-06-20 08:09:10 -0600 )edit

Hi, I'm looking for the same. I have made the leap to Melodic and cannot find a package similar to ORK. At KINETIC at least we had this package, with its lights and its shadows. I think ROS needs a tool of this type, as well as voice recognition, to be able to consider it as an integral solution, with which to undertake projects in its entirety .

mag.rod gravatar image mag.rod  ( 2019-12-12 04:14:50 -0600 )edit

Any update on this? I am looking for the same as well.

ryanc gravatar image ryanc  ( 2020-06-15 16:59:12 -0600 )edit

1 Answer

Sort by » oldest newest most voted

answered 2021-04-18 21:27:17 -0600

jorge gravatar image

updated 2021-04-20 11:53:04 -0600

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: - -

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)

image description

And the objects in gazebo:

image description

edit flag offensive delete link more


@jorge Looks good. I'll have to take a look at this later. I have been using dodo_detector_ros, but this might be more of what I'm looking for. Thanks!

ryanc gravatar image ryanc  ( 2021-04-20 13:27:13 -0600 )edit

Question Tools



Asked: 2019-06-16 14:42:08 -0600

Seen: 850 times

Last updated: Apr 20 '21