All Projects → luigifreda → 3dpatrolling

luigifreda / 3dpatrolling

Licence: GPL-3.0 License
3D Multi-Robot Patrolling with a Two-Level Coordination Strategy

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language
shell
77523 projects
EmberScript
38 projects

3dpatrolling

Authors: Luigi Freda, Mario Gianni, Fiora Pirri, Abel Gawel, Renaud Dubé, Roland Siegwart and Cesar Cadena

Maintainer: Luigi Freda

This repository provides part of the C++ implementation behind our paper titled 3D Multi-Robot Patrolling with a Two-Level Coordination Strategy. The software allows testing the proposed multi-robot strategy within a V-REP simulation environment. The multi-robot laser SLAM implementation is available here.

Related publications

Please cite this work if you make use of our system in your projects:

3D Multi-Robot Patrolling with a Two-Level Coordination Strategy
L. Freda, M. Gianni, F. Pirri, A. Gawel, R. Dubé, R. Siegwart, C. Cadena
Autonomous Robots, Springer, 2018.

Project webpage

Videos and further information can be found on the project webpage.

V-REP simulation 3dpatrolling V-REP simulation 3dpatrolling V-REP simulation 3dpatrolling


Prerequisites

3dpatrolling requires ROS. We designed and tested the framework under Ubuntu 14.04. We recently ported it on Ubuntu 16.04 and 18.04. It should be easy to compile the framework in other platforms.

NEW [September 2019]: installation successfully tested on Ubuntu 18.04.


How to install and compile 3dpatrolling

Here you can find a quick install procedure (tested under Ubuntu 16.04 and 18.04). Open a new terminal and get into the root folder of this repo. Run the following commands:

  • install V-REP, ROS dependencies and everything is required
    $ ./install.sh
  • compile the two workspaces mapping_ws and patrolling_ws
    $ ./compile-all.sh
  • source the workspaces by using
    $ source source-all.bash

Now, you're ready to test the patrolling system or the path planner (see the next sections). If something goes wrong, please, sumbit an issue.

You can find some manual installation details in the file INSTALL.md.


Overview

3dpatrolling is a stack of ROS packages organized in two main workspace folders (with suffix _ws):

  • mapping_ws : its src folder collects packages used for volumetric mapping
  • patrolling_ws: its src folder collects the following subfolders:
    • msgs (custom message descriptions)
    • multirobot (patrolling)
    • nav (path planning and navigation)
    • robot (robot description and low level processes)
    • vrep (vrep tools)

Main scripts

Open a new terminal and from the root folder of this repo you can:

  • source the workspaces by using the command
    $ source source-all.bash

  • clean the workspaces by running
    $ ./clean-all.sh

  • compile all the workspaces
    $ ./compile-all.sh

  • launch the patrolling or the path planner systems by using a PyQt GUI (python3 required, please read the documentation below before starting)
    $ ./main.py

Once you have sourced the workspaces, you're ready to test the patrolling system and the path planner (see the next sections).


Test the patrolling system

See this README.md file.

V-REP simulation 3dpatrolling V-REP simulation 3dpatrolling


Test the path planner

See this README.md file.

RVIZ and V-REP


3dpatrolling Qt GUI

You can launch the patrolling system or the path planner system by using the 3dpatrolling PyQt GUI. Open a new terminal, enter in the root folder of the repo 3dpatrolling and run:
$ ./main.py

RVIZ and V-REP

Read the patrolling README.md and the path planner README.md for further details on the available options.


License

The 3dpatrolling stack contains different ROS packages. Each package comes with its own license. Where nothing is specified, a GPLv3 license applies to the software.


Contributing to 3dpatrolling

We would be very grateful if you would contribute to the code base by reporting bugs, leaving comments and proposing new features through issues and pull requests. Please feel free to get in touch at freda(at)diag(dot)uniroma1(dot)it. Thank you!

Note: the 3dpatrolling software was extracted from the private TRADR repository. In order to prepare and open source the patrolling system (reducing dependencies and make it a self-contained framework), a substantial amount of refactoring was carried out and some functionalities were rewritten. Although great care was taken during this process, it is possible we introduced performance regressions and these have not been discovered yet.


Credits

  • Some of the packages in the folders patrolling_ws/src/robot and patrolling_ws/src/msgshave been developed by the TRADR team. Thanks to all the guys that shared with us cold tents, hot coffee and wonderful life moments during TRADR demos, integrations, exercises and reviews!

  • We implemented our patrolling agent in the ROS package patrolling3d_sim. We used the package patrolling_sim as a starting point. We would like to thank the Authors for their great work.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].