Project Description: AEROSP 740 course by Dr. Dimitra Panagou, Winter 2020, University of Michigan.
The first project I had to understand various graph networks (through which single agents can recieve signals or send signals or do both) and implement them on agents to see how they behave and form formations. By using graph theory we treat multi-agents as vertices of a graph and the signals between them as the edges.
The different types of graphs I tested and developed controllers for are shown below in the videos (developed using MATLAB).
The first three videos are multi-agent systems attaining a formation in which they are 100 m apart from each other horizontally and vertically. The last three videos are on multi-agent circular formation.
Directed-path network is shown below in which, each agent is connected with two adjacent agents in the network and the signal between two agents is in one direction. More on directed-paths can be found here.
Undirected Complete Graph is shown below, where each agent is connected with every other agent and can send and receive signals. More on undirected graphs can be found here.
Undirected Path Graph is shown below, which is similar to directed path graph above, with the only difference that between two connected agents the signal can travel both directions.
The video below is multi-agent circular formation using directed path graph.
This video is on multi-agent circular formation using undirected complete graph.
Lastly, video below is on multi-agent circular formation using undirected path graph.
The second project emphasized the use of control lyapunov functions and control barrier functions to build multi-agent controllers that are safe for operation. We can optimize for safe path planning formation, by implementing a Quadratic Program with the aforementioned control functions as constraints.
Below we can see an example of multi-agent system that starts from given position and is moving towards its destination without colliding with other agents in the process.
Another important control problem is that of resolving deadlocks, which happen when agents are moving towards each other on a straight line. An example is given below.
There are ways to implement a controller to avoid such deadlocks by using perturbations. The video below shows that in action.
In the last project we learn to handle multiple agents in a real environment with obstacles. The aim was to create control lyapunov functions and control barrier functions which will lead to successful operation of the agents in the problem statement.
The first video is about how to control agents to form a formation when their origniating position is random in an obstacle environment.
The second aspect of the project was to move to this formation through the obstacle course to their new position. To implement this task, I created a leader-follower path network graph, which controls the agents to travel safely through the obstacles to their destinations.
Multi-Agent networks are susceptible to attacks from hostile agents and thus cyber-resiliency of such systems is of utmost importance. One way to achieve resiliency is by using filters like the Sliding Window Mean-Subsequence-Reduced. Below are examples of SW-MSR in use when we have more than one malicious agents in the multi-agent network. You can learn more about k-circulant graphs here.
For the final project, I went back to one of the first literature on formation flying by C. Reynolds. He developed what he called ‘boids’ or agents which can be controlled to move in formations like birds or fishes. The intent was to recreate real life-like movement of graphics in computer. However, the literature became widely popular in the multi-agent community.
I personally like this Youtube Video on boids below:
I implemented my own version of it as shown below in a short video, capturing the major elements as described by C. Reynolds as ‘separation’ (or collision avoidance), ‘alignment’ (leader-follower) and ‘cohesion’ (formation control).