/icg_ros

A ROS wrapper for Iterative Corresponding Geometry (ICG)

Primary LanguageC++MIT LicenseMIT

ICG ROS Wrapper

This is a ROS wrapper of the implementation of a pose tracking library ICG developed by DLR. The original repo can be found here.

If you are interested in this work and want to use it in your project, please cite it with

@InProceedings{Stoiber_2022_CVPR,
    author    = {Stoiber, Manuel and Sundermeyer, Martin and Triebel, Rudolph},
    title     = {Iterative Corresponding Geometry: Fusing Region and Depth for Highly Efficient 3D Tracking of Textureless Objects},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2022},
    pages     = {6855-6865}
}

Environment Settings

This wrapper is tested on a computer with

  • ROS noetic
  • Ubuntu 20.04

The wrapper is compiled in C++ 17.

Installation

Before proceeding with this wrapper, please check the README file of the ICG repo to install dependencies link.

This wrapper uses an additional package gflags for parsing the command-line arguments. You can install it using

sudo apt-get install libgflags-dev

After installing all the dependencies, you should compile this package as a normal ROS package using catkin_make.

A sample node icg_test_node is provided. To run this node, you need to first launch a camera node and make sure there are valid color and depth images. In this node, the topics of the realsense camera are used. You should also feed it with the corresponding configuration directory in the command-line arguments. For example, if you have already launched the camera node

cd <your-ros-workspace>
source devel/setup.bash
rosrun icg_ros icg_test_node -config_dir=src/icg_ros/config

The configuration directory in this example contains a triangle 3D model, a yaml description of this model, and a description of the detector.

For more information on these configuration files, please refer to the original repo.