GithubHelp home page GithubHelp logo

herolab-uga / ros-seal Goto Github PK

View Code? Open in Web Editor NEW
19.0 4.0 0.0 1.65 MB

ROS Package for Simultaneous Exploration and Localization for Multi-Robot Applications

CMake 31.31% Python 68.69%
coverage exploration localization mapping mobile-robot-navigation multi-robot-systems robot-operating-system ros seal

ros-seal's Introduction

SEAL

It is a ROS package that implements a SEAL: Simultaneous exploration and localization for multi-robot systems. It uses the Gaussian process model for environment scanning and occupancy girds as a map representation. This package has three different ROS nodes:

  • SEAL graph node.
  • SEAL Gaussian process node.
  • SEAL convex hull node.

Publication

If you use this work, please cite our paper: E. Latif and R. Parasuraman, "SEAL: Simultaneous Exploration and Localization for Multi-Robot Systems," 2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Detroit, MI, USA, 2023, pp. 5358-5365, doi: 10.1109/IROS55552.2023.10342157.

IEEE Published version: https://ieeexplore.ieee.org/document/10342157 Preprint available at https://arxiv.org/abs/2306.12623

Experiment Demonstration

Experiment Demo

Overview

By creating a map using GP, robots first perform relative position-weighted connectivity graphs using RSSI as local sensor data, expanding these graphs based on potential positions at a particular location and then further optimizing to obtain relative position estimates for all connected robots; SEAL seeks to efficiently achieve high localization accuracy. Furthermore, robots also provide fused Gaussian process maps, which are then converted into global maps. SEAL applied convex hull optimization for boundary detection and navigated robots to unexplored boundaries. An overview of the SEAL can be found in the Figure below:

Overview

Architecture

The overall functionality of SEAL with respect to single robot and information sharing can be seen in the architecture figure below:

Overview

Installation Requirements

g2o Installation

$ git clone https://github.com/uoip/g2opy.git
$ cd g2opy
$ mkdir build
$ cd build
$ cmake ..
$ make -j8
$ cd ..
$ python setup.py install
6-You should have/install the following python modules:

-OpenCV (cv2)
```sh
$ sudo apt-get install python-opencv

-Numpy

$ sudo apt-get install python-numpy

-Sklearn

$ sudo apt-get install python-scikits-learn
  • add in the amazon world map by executing the following comments:
$ cd ~/catkin_explore/src
$ git clone https://github.com/aws-robotics/aws-robomaker-small-house-world.git
$ git clone https://github.com/aws-robotics/aws-robomaker-bookstore-world.git
$ cd ~/catkin_explore/
$ catkin_make

2. Installation

Download the package and place it inside the /src folder in catkin workspace. And then compile using catkin_make.

3. Setting Up Your Robots

This package provides an exploration strategy for cooperative robot along with the multi-robot navigation stack configured move_base node.

3.1. Robots Network

For the cooperative robotic configuration, the package doesn't require special network configuration, it simply works by having a single ROS master (can be one of the robots). So on the other robots, the ROS_MASTER_URI parameter should be pointing at the master's address. For more information on setting up ROS on multiple machines, follow this link.

3.2. Robot's frame names in tf

All robot's frames should be prefixed by its name. Naming of robots starts from "/tb3_0", "/tb3_1", ... and so on.

3.3. Robot's node and topic names

All the nodes and topics running on a robot must also be prefixed by its name. For tb3_0, node names should look like: /tb3_0/gp.

And topic names should be like: /tb3_0/odom, /tb3_0/gp, /tb3_0/ch, ..etc.

3.5. A Gaussian Process node

Each robot should have a Gaussian estimation map generated from the GPMix package.

3.6. A map Generator node

For the multi-robot case, there is a node that convert all the GP maps into one occupancy map. You can use this package.

4. Launch

Run the SEAL package after installation on a robot and source bash and ~/catkin_explore/devel/setup.sh file:

$ mkdir -p catkin_explore/src
$ cd catkin_explore/src
$ git clone https://github.com/herolab-uga/ROS-SEAL.git
$ cd ~/catkin_explore/
$ catkin_make
$ roslaunch seal seal_bookstore.launch

Core contributors

  • Ehsan Latif, Ph.D. - Lab Alum

  • Dr. Ramviyas Parasuraman - Lab Director

Heterogeneous Robotics (HeRoLab)

Heterogeneous Robotics Lab (HeRoLab), School of Computing, University of Georgia.

For further information, contact Ehsan Latif [email protected] or Dr. Ramviyas Parasuraman [email protected]

https://hero.uga.edu/

ros-seal's People

Contributors

ehsanlatif avatar ramviyas avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

ros-seal's Issues

About some errors when compiling and running the SEAL algorithm!

Hello, when I was compiling the SEAL algorithm, I put the turtlebot3, turtlebot3_msgs and turtle3_simulations software packages and the ROS-SEAL software package in the src directory and ran the launch file after compilation. Then the following error occurred:
2023-10-24 18-47-36 的屏幕截图

[Err] [ REST.cc:205] Error in REST request libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'
[ WARN] [1698144499.822074024, 5.005000000]: Timed out waiting for transform from tb3_0/base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist.. canTransform returned after 0.1 timeout was 0.1.
[ WARN] [1698144499.822867029, 5.005000000]: Timed out waiting for transform from tb3_2/base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist.. canTransform returned after 0.1 timeout was 0.1.
[ WARN] [1698144499.823020787, 5.005000000]: Timed out waiting for transform from tb3_1/base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist.. canTransform returned after 0.1 timeout was 0.1.
[ WARN] [1698144504.974260776, 10.019000000]: Timed out waiting for transform from tb3_2/base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist.. canTransform returned after 0.1 timeout was 0.1.
[ WARN] [1698144504.974728892, 10.019000000]: Timed out waiting for transform from tb3_0/base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist.. canTransform returned after 0.1 timeout was 0.1.
2023-10-24 18-49-15 的屏幕截图

Is it a problem with the location where I put the turtlebot3 software package? The error indicates that the coordinate system named "map" cannot be found. How to solve these problems? Thank you for giving me some advice!

Python Nodes are the same

Hello

I would like to use this exploration algorithm for my thesis. But I got multiple errors trying to run

"""
roslaunch seal seal_bookstore.launch
"""

After looking into it, I saw that the three python nodes are exactly the same. (seal_convex_hull.py; seal_gp.py; seal_graph.py)

Would it be possible to put them online?

Thanks in advance!!!
Greetings

Module Not Found Error When Building robot_msgs.msg Package

I am encountering a "Module Not Found" error when trying to build the robot_msgs.msg package in my environment. This package is intended to handle specific robotics message types (Robot_Pos, StringList), but the build process is failing, indicating that a module is missing.

Is it a custom module ?!

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.