atenpas / gpd

Detect 6-DOF grasp poses in point clouds
BSD 2-Clause "Simplified" License
606 stars 233 forks source link

to build "libgpd" common for ROS and ROS2 #52

Open sharronliu opened 5 years ago

sharronliu commented 5 years ago

@atenpas, I'm doing some works to enable GPD for ROS2 which is the next generation ROS. After some investigation and prototyping, the approach I would propose is to have a common library "libgpd", plus the specific nodes for ROS and ROS2 respectively.

The changes are not big, which mainly include:

What do you think? I can deliver a patch for this.

atenpas commented 5 years ago

I'm happy if you contribute a patch. However, just to let you know, I've been working on a new (private) branch that does what you describe, updates GPD to C++14, and adds some new features. So, if you want to wait a few weeks ...

sharronliu commented 5 years ago

@atenpas , I've uploaded the patch https://github.com/atenpas/gpd/pull/58 and I verified it works with either "USE_CAFFE=ON" or "USE_OPENVINO=ON". Hopefully this also work for your jobs.

The PR contains a bit changes, though, I believe it's the way we should go. Have a c++ native library for "grasp_pose_detection" that serves as a common library for either ROS or ROS2. In this solution, the build of this library can be triggered in either of the two ways:

sharronliu commented 5 years ago

You may simply replace the flag "-std=c++11" with "c++14" to continue your work. And together with this change, you may need some adaption to those c++14 specific features.

See this flag in "src/gpd/CMakeLists.txt" and "CMakeLists.txt". Let me know if any issues.

atenpas commented 5 years ago

Sorry, it will take me some days until I can get to this.

On Thu, Nov 1, 2018 at 12:01 PM Sharron LIU notifications@github.com wrote:

@atenpas https://github.com/atenpas , I've uploaded the patch #58 https://github.com/atenpas/gpd/pull/58 and I verified it works with either "USE_CAFFE=ON" or "USE_OPENVINO=ON". Hopefully this also work for your jobs.

The PR contains a bit changes, though, I believe it's the way we should go. Have a c++ native library for "grasp_pose_detection" that serves as a common library for either ROS or ROS2. In this solution, the build of this library can be triggered in either of the two ways:

  • automatically triggered while building the "gpd" package from catkin (see the top-level "CMakeLists.txt") $ catkin_make -DCMAKE_BUILD_TYPE=Release --pkg gpd (or) $ catkin_make -DCMAKE_BUILD_TYPE=Release -DUSE_OPENVINO=ON --pkg gpd
  • manually kick off the build from "src/gpd" $ cd src/gpd $ mkdir build && cd build $ cmake -DUSE_CAFFE=ON .. (or) $ source /bin/setupvars.sh $ cmake -DUSE_OPENVINO=ON ..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/atenpas/gpd/issues/52#issuecomment-435084609, or mute the thread https://github.com/notifications/unsubscribe-auth/AFbeJuPpSjptbln3rUsui-YlTnKrlwDZks5uqxrngaJpZM4XjwQp .

sharronliu commented 5 years ago

@atenpas , available to check this patch?

atenpas commented 5 years ago

@sharronliu Will check it out within this week. Sorry about the delay!

atenpas commented 5 years ago

Sorry for the delay, but I cannot test some of this functionality immediately due to lack of a system with Caffe install. Hopefully, I'll get to this soon...