Skip to content
This repository has been archived by the owner on Jun 3, 2024. It is now read-only.
/ flocking_network Public archive

(Superseded). An implementation of flocking for a large network of aerial vehicles.

License

Notifications You must be signed in to change notification settings

tjards/flocking_network

Repository files navigation

Flocking with Obstacle Avoidance

Note: discontinued and incorporated into larger project here: https://github.com/tjards/swarming_sim

This project implements flocking for a large network of aerial vehicles. The strategy is based on the (elegant) 3-part distributed formulation proposed in:

Reza Olfati-Saber, "Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory", IEEE Transactions on Automatic Control, Vol. 51 (3), 3 Mar 2006.

The formulation involves three distinct terms:

  1. Alpha-Alpha Interaction (alignment) - encourages the agents to align in a lattice formation. The function represents other vehicles as "alpha" agents.
  2. Alpha-Beta Interaction (obstacle avoidance) - discourages the agents from colliding with obstacles. The function represents obstacles as "beta" agents.
  3. Gamma Feedback (navigation) - encourages motion towards a static or dynamic target. The function represents the target as a "gamma" agent.

When combined together, these terms produce an emergent behaviour that is refered to as "flocking".

Results

Below are several animated plots showing the behaviour of the network. Obstacles are defined as spherical objects in space (in red) or as planes (in magenta). The vehicles are represented in blue. The target is green. We generate dashed blue lines to show when vehicles successfully form a lattice with neighbouring vehicles.

Conclusion

Robots are awesome. Robots that work together are awesomer.

About

(Superseded). An implementation of flocking for a large network of aerial vehicles.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages