Clone wiki

heuros2 / Home

About Heuros

Heuros is a natual-inspired system of 3D visual object recognition and scene understanding. The project's primary aim is to achieve high as possible recognition quality, but it is also intended to be time-efficient. For this reason, most of the demanding processing is done on GPU using CUDA technology.

The infrastructure of Heuros is based on ROS packages and communication methods.


Set up [Ubuntu14.04]

  1. Download Heuros:

    $ git clone
  2. Patch PCL: copy the heuros/pcl_patches/fpfh.patch file into your PCL source directory and apply:

    $ patch -p1 < fpfh.patch
  3. Install ROS, CUDA (>=6.0) and PCL (preferably trunk) with GPU and QT suport. This has been tested with VTK 5.10 (installed with QT) and QT4. You might run into PCL compiling issues. Try turning off the option: WITH_ENSENSO (for libNxLib64 issues) in ccmake. Also, for compute_52 - related issues remove the compute capability 5.2 in ccmake.

  4. If you use ROS Indigo, in your .bashrc file add:

    $ export HEUROS_INDIGO_ADD_cMAKE_MODULES="find_package(cmake_modules REQUIRED)"
  5. Compile Heuros a ROS package using catkin_make. If you are using PCL in version 1.7.1 there could be compiling issues with "isFinite" methods in file pcl_include_directory/common/point_tests.h. Fix it replacing the return statement with "return true":

    $   template <typename PointT> inline bool
    $   isFinite (const PointT &pt)
    $   {
    $     //return (pcl_isfinite (pt.x) && pcl_isfinite (pt.y) && pcl_isfinite (pt.z));
    $     return true;
    $   }

Set up [Ubuntu16.04]

  1. Install OpenCV (preferably 3.2), CUDA (preferably 8.0) and ROS (preferably kinetic).

  2. Compile PCL library from source with C++11 support: just in the top-level CMakeLists.txt add the following line:

    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  3. Download Heuros:

    $ git clone



To use Heuros currently you need to have the kinect2_bridge package running on ROS. Heuros is launched using rosrun as a ROS package:

    $ rosrun heuros heuros

Visualization hotkeys

Even though this functionality is included in the GUI, heuros_visualization provides the following hotkeys:

arrows - move through visualization windows (view ports).

[ ] - increase/decrease the number of view ports (1, 2 or 4 available).

+ - - increase/decrease point size in all view ports.

a - show/hide axes in all view ports.

c - display colors on the selected view port.

n - show/hide normals on the selected view port.

` - change feature representation on the selected view port.

Display features on the selected view port:

0 - no feature.

1 - convexity.

2 - anisotropy of convexity.

3 - surface inclination angle (theta).

4 - color hue.

5 - color saturation.

6 - flat segmentation.

7 - non-flat segmentation.


Create labeled clusters: Clusters are created by shift + left click on the selected objects or points. Several cluster formation modes are available in the GUI but most are not active yet.