multi-agent_sim
multi-agent_sim copied to clipboard
This project implements various multi-agent coordination techniques.
Multiagent Coordination Simulator
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
Methodology
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.
Demonstrations
More rigorous formulations in development...
Pinning Control (Both directed and undirected graphs)
Flocking, Shepherding, and Encirclement
Lemniscate Trajectories
Dealing with Malicious Agents
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.
References
- 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)
Citing
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.