Skip to content

The repository serves to investigate and find a way to group control of robots with minimal involvement of centralised control

Notifications You must be signed in to change notification settings

RestlessEngineer/group-behavior

Repository files navigation

GroupBehavior

The main goal of this project is to explore a new method of managing a group of robots.

Intuition

The goal is to avoid overloading the centralized control system and let the robots decide how to drive on their own based on the information they have. It is assumed that robots can have an idea of where their nearest neighbors are looking and what their status is (pass or fail). The idea behind the algorithm is to create a kind of game for each robot. The solution of the route optimization problem in such a game is reduced to obtaining the maximum gain at a given step. Thus, instead of searching for an optimal algorithm of robots' behavior at each step, it is enough to find such a game, which will be the most optimal.

Current state

Right now, a very simple game strategy is suggested. It is assumed that the most favorable direction for the next step will give 2 points. The direction that is opposite to it will give 0. The others will give 1. How it all works can be seen in examples/simple_field. If you run the example you might get:
simple strategy

In the gif above, the circles represent the targets the robots need to reach. The arrow on the robot shows the best direction for the robot. If the robot has reached the goal or has no way to leave, this is indicated by a circle.

Acknowledgements

Many thanks to the site https://www.redblobgames.com/pathfinding/a-star/ and Red Blob Games redblobgames@gmail.com for their work. My main data structures are based on their code

About

The repository serves to investigate and find a way to group control of robots with minimal involvement of centralised control

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages