Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Automation of a decentralized swarm of autonomous mobile robots to perform various tasks through swarm-intelligence algorithms.

rmvanarse/swarmbots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swarmbots

The project aims to automate a decentralized swarm of autonomous mobile robots to carry out different tasks.

The system is completelly decentralized. Each robot only knows its position and the position of the robots within a speciific neighbourhood radius. The bots do not communicate with each other, and perform tasks through 'collective decision making' algorithms.

Various swarm tasks are divided into the following basic tasks:

  • Aggregation/ Clustering
  • Area Coverage
  • Line Formation
  • Shape Formation
  • Forraging
  • Flocking
  • Collective decision making

Complex tasks can be performed through combinations of the above tasks. The project contains implementations of algorithms for simulating these tasks and ROS-packages for implementing them on a physical swarm

Getting Started

Create a local copy of the repository by running the following command:

git clone https://github.com/rmvanarse/swarmbots

Prerequisites

Python libraries required for algorithm simulations - numpy, matplotlib, math, cv2

Running the Tests

The simulate_pyplot.py file can be used to test a graphical simulation of N bots for a particular task.

python3 algorithm_simulation/simulate_pyplot.py

The number of bots can be varied by varying the parameter in initialize_swarm() function. The initialization function can be replaced by any other initialization function from initialize_swarm.py (imported).

The size of the arena can be varied by changing the values of the corresponding global parameters in swarm_lib.py (imported).

The value of task_func in generate_points() decides the task to be carried out. The value could be the name of any of the ask functions from the imported files: aggregation.py, area_coverage.py, formations.py.

2-state decision making is simulated using the simulate_state.py file on terminal (not pyplot) in a similar way.

Description of the Stack

File Structure:

algorithm_simulation - Contains a files for simulating basic algorithms on pyplot. The user can choose the initial configuration, number of bots, arena size, etc. Each basic task has a python file containing different implementations of the task. A library ( swarm_lib.py ) includes all general functions required for simulating the swarm.

The following tasks have been implemented crrently: Aggregation, Area COverage, Circle formation, Line Formation and 2-state decision making

stdr-codes - Contains files for simulating individual bots on ROS. Each bot has its own namespace. The algorithms will publish velocity commands on cmd_vel for each robot. The folder also contains resources (Maps, yaml files) and their corresponding launch files.

apriltag_detection - Attempt to carry out localization using April Tags and OpenCV-2.0 ( in progress ) bash - Bash files for directly running the required rosmasters ( in progress )

Current Stage of Development

The algorithm simulation files are stable and ready to use. Implementations for Aggregation (2 implemntations), Area Coverage, Line Formation, Circle formation and 2-state decision making are complete. The ROS packages are in progress and are not ready to use directly. Simultaneously, more algorithms are being added to algorithm_simulations and simulation results are being studied

Authors:

Rishikesh Vanarse ( rmvanarse ) - Sub-Coordinator, Electronics & Robotics Club, BITS Goa ( ERC-BPGC )

About

Automation of a decentralized swarm of autonomous mobile robots to perform various tasks through swarm-intelligence algorithms.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published