MCAPS: Multi-Cue Agricultural Positioning System

This repository contains MCAPS, an open, research-oriented multi-cue positioning system for farming robots Flourish Sapienza Datasets Website.


Paper Describing the Approach:

Marco Imperoli, Ciro Potena, Daniele Nardi, Giorgio Grisetti, Alberto Pretto: An Effective Multi-Cue Positioning System for Agricultural Robotics, In arXiv preprint arXiv:1803.00954 (PDF)

    title={An Effective Multi-Cue Positioning System for Agricultural Robotics},
    author={Imperoli, Marco and Potena, Ciro and Nardi, Daniele and Grisetti, Giorgio and Pretto, Alberto},
    journal={IEEE Robotics and Automation Letters},
    volume = {3},
    number = {4},   
    year = {October 2018},
    pages = {3685--3692},

Please also check out our video:

Youtube Video link


The code is tested on Ubuntu 16.04. MCAPS requires different tools and libraries. To install them on Ubuntu, use the terminal command:

  • Install ROS Kinetic by following this guide;
  • Install g2o by downloading this repo and following the guide.
sudo apt-get install ros-kinetic-qt-build ros-kinetic-gps-common ros-kinetic-velodyne libyaml-cpp-dev libpcap0.8-dev qtdeclarative5-dev python-catkin-tools


To build MCAPS on Ubuntu, type in a terminal the following command sequence.

## Creating the workspace 
mkdir -p ~/mcaps_ws/src
cd ~/mcaps_ws/
catkin init && catkin build

## Cloning and compiling the required ROS packages
cd src
git clone
git clone
git clone
git clone
cd .. && catkin build


In this brief tutorial, we show how to use the MCAPS toolbox to retrieve the global pose of a ground robot within an agricultural field, while building a map of the environment: The files you need to download are:

The "DatasetA Calib" is a reduced and calibrated version of DatasetA, freely available on Sapienza Mapping Datasets. The Config files econde all parameters and paths requried to run toolbox. Now, change the absolute paths in all the *.yaml files, and then call:

rosrun flourish_mapping flourish_mapping data/gui_params.yaml data/opt_params.yaml