Git Product home page Git Product logo

3dpatrolling's Introduction

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.

NEW: Check out our new paper and the related project 3DMR: 3D Multi-Robot Exploration, Patrolling, and Navigation. 3DMR extends and improves 3dpatrolling. Here, you can find a list of new features we added.

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: check out our new project 3DMR for Ubuntu 20.04 support.


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.

3dpatrolling's People

Contributors

luigifreda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.