Commit dd81ab35 authored by Dario Lodi Rizzini's avatar Dario Lodi Rizzini
Browse files


parent 32b57692
# falkolib
A library containing keypoint detectors for the stable detection of interest points in laser measurements and two descriptors for robust associations.
* FALKOLib - Fast Adaptive Laser Keypoint Orientation-invariant
* Copyright (C) 2016 Fabjan Kallasi and Dario Lodi Rizzini.
FALKOLib is a library that implements two keypoint detectors
and two descriptors designed for 2D LIDARs.
The two detectors are:
- FALKO (Fast Adaptive Laser Keypoint Orientation-invariant), a
general purpose keypoint detector which gives the name to
the whole library;
- OC (Orthogonal Corner), a keypoint specific for enviroments
with straight linear walls and architectural elements
arranged along orthogonal directions.
The two descriptors are:
- BSC (Binary Shape Context), a binary version of standard
shape context descriptor;
- CGH (Cumulative Gaussian Histogram), which represents the
neighborhood of a point with an histogram.
Moreover, the library provides the implementation of methods
for keypoint/feature data association.
In particular, the following methods have been implemented:
- NN (Nearest Neighbor): each keypoint/feature of one set
are associated to the nearest keypoint/features of another set;
- CCDA (Combined Constraint Data Association): features are
associated by finding the maximal sets of corresponding
feature pairs, which are compatible with constraints to
a set;
- AHT (Affine Hough Transform): the corresponding features
are found by voting the affine/rigid transformation
that overlaps them according to Hough technique.
If you use this library, please cite the following paper:
F. Kallasi, D. Lodi Rizzini, and S. Caselli.
Fast Keypoint Features from Laser Scanner for Robot Localization and Mapping.
IEEE Robotics and Automation Letters (RA-L), 1(1):176-183, jan 2016.
DOI 10.1109/LRA.2016.2517210
or the most relevant publication associated by visiting:
The software depends on the following external libraries
Boost >= 1.36 (submodule lexical_cast)
Eigen 3.0
The library also requires the third party library mcqd
developed by Janez Konc (see,
which has been included in folder EXTERNAL.
Let ${falkolib_ROOT} be the install directory of your local copy
of library falkolib.
The following standard commands are required to compile it:
cd ${falkolib_ROOT}
mkdir build
cd build
cmake ..
You can also install the library into a system directory.
To change the install directory you must set cmake environment
variable ${CMAKE_INSTALL_PREFIX} (e.g. using command "ccmake .."
before calling "cmake ..").
Its default value on UNIX-like/Linux systems is "/usr/local".
After compiling library falkolib, run the command:
sudo make install
The command "sudo" is required only if ${CMAKE_INSTALL_PREFIX}
is a system diretory managed by administrator user root.
Such command copies:
- header files of ${falkolib_ROOT}/include/falkolib to
- library files ${falkolib_ROOT}/lib/libfalkolib.a to
- cmake script ${falkolib_ROOT}/cmake_modules/falkolibConfig.cmake to
If library falkolib has been installed in system directory "/usr/local",
then it is straighforward to use it in your projects.
You needs to add the following lines to your project as in this example:
find_package(falkolib REQUIRED)
message(STATUS "falkolib_FOUND ${falkolib_FOUND}")
message(STATUS "falkolib_INCLUDE_DIRS ${falkolib_INCLUDE_DIRS}")
message(STATUS "falkolib_LIBRARY_DIRS ${falkolib_LIBRARY_DIRS}")
message(STATUS "falkolib_LIBRARIES ${falkolib_LIBRARIES}")
add_executable(foobar foobar.cpp)
target_link_libraries(foobar ${falkolib_LIBRARIES})
The above example uses the variables defined in falkolibConfig.cmake:
falkolib_FOUND - system has falkolib module
falkolib_INCLUDE_DIRS - the falkolib include directories
falkolib_LIBRARY_DIRS - the falkolib library directories
falkolib_LIBRARIES - link these to use falkolib
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment