This is an implementation of the MSN Flocking Formation Control presented in the paper Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory.
$ git clone
$ cd
$ pip install
Run the python files for each of the five cases explained below.
$ python src/msn_1.py
- Number of sensor nodes: n =100.
- Space dimensions: m = 2.
- Desired distance among sensor node: d = 15.
- Scaling factor: k = 1.2 and interaction range r = k*d.
- Epsilon = 0.1 and Delta_t = 0.009 (These two parameters are optional and you can change them).
For easier understanding the variables are named similar to the equations described below.
For example, is denoted as C1_ALPHA
(all capital as it's a constant), is denoted as p_i_k
, and so on.
Filename: msn_1.py
- Randomly generates a connected network of 100 nodes in the area of 50x50.
- Plots the initial deployment of the MSN of 100 nodes.
- Links the neighboringing nodes together by a line.
- Plots the fragmentation of the nodes.
- Plots the velocity.
- Plots the connectivity.
- Plots the trajectory.
Filename: msn_2.py
- Randomly generates a connected network of 100 nodes in the area of 50x50.
- Sets up a target (gamma agent) as static point with its coordinate (x = 150, y =150).
- Implements flocking behavior of the MSN.
- Plots the flocking of the nodes.
- Plots the velocity.
- Plots the connectivity.
- Plots the trajectory.
Filename: msn_3.py
- Randomly generates a connected network of 100 nodes in the area of 150x150.
- Sets up a target (gamma agent) moving in a sine wave trajectory.
- Implements flocking behavior of the MSN.
- Plots the flocking of the nodes following the target (Sine wave trajectory).
- Plots the velocity.
- Plots the connectivity.
- Plots the trajectory.
- Plots the center of mass and target trajectory.
Filename: msn_4.py
- Randomly generates a connected network of 100 nodes in the area of 150x150. In this case you
- Sets up a target (gamma agent) moving in a circular trajectory.
- Implements flocking behavior of the MSN.
- Plots the flocking of the nodes following the target (Circular trajectory).
- Plots the velocity.
- Plots the connectivity.
- Plots the trajectory.
- Plots the center of mass and target trajectory.
Filename: msn_5.py
- Randomly generates a connected network of 100 nodes in the area of 50x50.
- Sets up a target (gamma agent) at the location of (200, 25).
- Sets up an obstacle, circular in shape with a radius of 15 and its center location at (100,25).
- Implements flocking behavior of the MSN avoiding obstacles.
- Plots the flocking of the nodes following the target, avoiding obstacles.
- Plots the velocity.
- Plots the connectivity.
- Plots the trajectory.
- Plots the center of mass and target trajectory.