This project implements various multiagent coordination techniques, including:
- Flocking
- Dynamic Encirclement
- Heterogeneous Pinning Control with Reinforcement Learning
- Arbitrary Closed Curves
- Shepherding
- Counter-malicious agent control
All agents make individual decisions based on local information only. There is no global plan. Some other features:
- Interconnectedness is represented as a Graph
- Supports asymetric lattice sizes
- Supports reinforcement learning to adjust flocking scale
- Lemniscates are formed as twisted circles
- The swarm is able to deal with malicious agents
- Supports 2D and 3D
- Supports various potential functions : Lennard-Jones Potential, Morse Potential, Smooth pairwise potential with a finite cut-off, and GROMACS soft-core potential
The swarming techniques above are all implemented as high-level trajectory planners, assuming underlying double integrator dynamics. When quadcopter dynamics are applicable, these command signals - which take the form of accelerations in Cartesian space - are then converted into velocity setpoints. The quadcopters make use of 3 nested control loops (translational velocity, angular position, and angular velocity) to track the desired trajectory.
More rigorous formulations in development...
Below is an example of a traditional swarm not able to compensate for a malicious agent (in red) attempting to collide with its neighbours:
Below is an example of the proposed technique effectively containing the malicious agent. Note small flucuations while the agents learn the malicious agent's control parameters.
- Craig Reynolds, "Flocks, Herds, and Schools:A Distributed Behavioral Model", Computer Graphics, 21(4) (SIGGRAPH '87 Conference Proceedings), pages 25-34, 1987.
- Reza Olfati-Saber, "Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory", IEEE Transactions on Automatic Control, Vol. 51 (3), 2006.
- H. Hildenbrandt, C. Carere, and C.K. Hemelrijk,"Self-organized aerial displays of thousands of starlings: a model", Behavioral Ecology, Volume 21, Issue 6, pages 1349–1359, 2010.
- P. T. Jardine and S. N. Givigi, "Bimodal Dynamic Swarms", IEEE Access, vol. 10, pp. 94487-94495, 2022.
- P. T. Jardine and S. N. Givigi, "Flocks, Mobs, and Figure Eights: Swarming as a Lemniscatic Arch", IEEE Transactions on Network Science and Engineering, 2022.
- Kléber M. Cabral, Sidney N. Givigi, and Peter T. Jardine, Autonomous assembly of structures using pinning control and formation algorithms in 2020 IEEE International Systems Conference (SysCon), 07 Dec 2020
- S. Van Havermaet et al. "Steering herds away from dangers in dynamic environments" in Royal Society Open Science, 2023
- C. Zhang, H. Yang, B. Jiang and M. Cao, "Flocking Control Against Malicious Agent" in IEEE Transactions on Automatic Control, vol. 69, no. 5, pp. 3278-3285, May 2024
- Credit goes to bobzwik for providing the majority of the Quadcopter dynamics module code under MIT licence, which I modified to suit this application (portions of the code are annotated appropriately)
The code is opensource but, if you reference this work in your own reserach, please cite me. I have provided an example bibtex citation below:
@techreport{Jardine-2024, title={Multiagent Coordination Simulator}, author={Jardine, P.T.}, year={2024}, institution={Queen's University, Kingston, Ontario}, type={GitHub Repository}, }
Alternatively, you can cite any of my related papers, which are listed in Google Scholar.