Software Projects

HBST - Hamming Binary Search Tree Header-only library

Is a C++ header only library implementing a quick search algorithm to retrieve similar binary features in a pool.


Easy Depth calibration (aka Depth Calibration for Dumies) is a complete software package for calibrating any Depth sensor (in particular RGBD cameras, such as Kinext, Xtion, etc.) with a very simple and easy-to-execute procedure. Moreover, we provide a validation procedure using a mobile robot and a 2D laser scanner. This procedure is optional with respect to the calibration, but it is useful as a performance metric for assessing the quality of the calibration.

PRO-SLAM - Stereo Visual SLAM from a Programmer's perspective

PRO-SLAM is a simplified SLAM pipeline for stereo visual SLAM. Thought for supporting teaching activities, it achieves performances that compete with state of the art systems both in accuracy and in computational speed.

NICP - Normal Based ICP

Normal ICP is a novel algorithm for point cloud registration. Based on a different error function, it is more accurate and robust than other recent algorithms!

Orazio [Marrtino] - Robot Platform

Orazio is the firmware for an arduino controlled differential drive mobile robot.

G2O - General Graph Optimizer

g2o is an open-source C++ framework for optimizing graph-based nonlinear error functions. g2o has been designed to be easily extensible to a wide range of problems and a new problem typically can be specified in a few lines of code. The current implementation provides solutions to several variants of SLAM and BA.

TORO - Tree-based NetwORk Optimizer

TORO is an optimization approach for 2D and 3D constraint-networks. It provides a highly efficient, gradient descent-based error minimization procedure. In 2006, Olson et al. presented a novel approach to solve the graph-based SLAM problem by applying stochastic gradient descent to minimize the error introduced by constraints. TORO is an extension of Olson's algorithm. It applies a tree parameterization of the nodes in the graph that significantly improves the performance and enables a robot to cope with arbitrary network topologies. The latter allows us to bound the complexity of the algorithm to the size of the mapped area and not to the length of the trajectory.


GMapping is highly efficient Rao-Blackwellized particle filter for learning grid maps I developed together with Cyrill Stachniss. The ideas are

  • To draw the particles from an improved proposal, computed according to the most recent observation.
  • To resample whenever an indicator of the variance of the weights is below a given threshold.

The first allows for drawing the particles in a close position to the true posterior, while the second reduces the particle uncertainly. The sourcecode as well as several corrected and uncorrected datasets are available.

CARMEN - The Carnegie Mellon Robot Navigation Toolkit.

CARMEN is an open-source collection of software for mobile robot control. CARMEN is modular software designed to provide basic navigation primatives including: base and sensor control, logging, obstacle avoidance, localization, path planning, and mapping. - The resource for open source SLAM implementations.

The simultaneous localization and mapping (SLAM) problem has been intensively studied in the robotics community in the past. Different techniques have been proposed but only a few of them are available as implementations to the community. The goal of is to provide a platform for SLAM researchers which gives them the possibility to publish and promote their algorithms.

Funded Projects

ROVINA - Robots for Exploration, Digital Preservation and Visualization of Archeological Sites

Mapping and digitizing archeological sites is an important task to preserve cultural heritage and to make it accessible to the public. Current systems for digitizing sites typically build upon static 3D laser scanning technology that is brought into archeological sites by humans. This is acceptable in general, but prevents the digitization of sites that are inaccessible by humans. In the field of robotics, however, there has recently been a tremendous progress in the development of autonomous robots that can access hazardous areas. ROVINA aims at extending this line of research with respect to reliability, accuracy and autonomy to enable the novel application scenario of autonomously mapping of areas of high archeological value that are hardly accessible.

Within ROVINA will develop a robotic system to autonomously digitize complex environments such as the catacombs of Rome.


MuFly is an auropean projecy whose goal is to design a fully autonomous helicopter comparable in size and weight to a small bird. Withing this project I am responsible of the localization, SLAM and navigation subsystem.


This project is a cooperation between the EPLF in Lausanne and the University of Freiburg. The goal is to build an automous (Smart) car.

The RoboCare Project

I designed the navigation subsystem for the RoboCare Project, together with Andrea Censi and Gian Diego Tipaldi.

The goal of the RoboCare project is to build a multi-agent system which generates user services for human assistance. The system is to be implemented on a distributed and heterogeneous platform, consisting of a hardware and software prototype.

The use of autonomous robotics and distributed computing technologies constitutes the basis for the implementation of a user service generating system in a closed environment such as a health-care institution or a domestic environment. The fact that robotic components, intelligent systems and human beings are to act in a cooperative setting is what makes the study of such a system challenging, for research and also from the technology integration point of view.

SPQR - Rome Robot Team

S.P.Q.R. (Soccer Player Quadruped Robots, but also Senatus PopolusQue Romanus) is the group of the Faculty of Engineering at University of Rome ``La Sapienza'' in Italy, that is involved in RoboCup competitions since 1998 in different leagues (Middle-size 1998-2002, Four-legged since 2000, Real-Rescue robots since 2003).

Italian Search and Rescue Project

The objective of this project is to develop a prototype tool, based on the RoboCup-Rescue simulator, to permit monitoring and supporting decisions which are needed in a real-time rescue operation in a large scale disaster, by integrating competences and tools already available to the DGPCSA (Direzione Generale della Protezione Civile e dei Servizi Antincendi), and using as a case-study event the Marche and Umbria earthquake in Fall 1997.