So, in the previous lecture, we saw that eigenvalues play a fundamentally important role when you want to understand stability properties of linear systems. We saw that if all eigenvalues have strictly negative real part, the systems are asymptotically stable. If one eigenvalue is positive, then we have positive real part. Then, we're screwed and the system blows up. Now, today, I'm going to use some of these ideas to solve a fundamental problem in swarm robotics. And this is known as the Rendezvous Problem. And, in fact, what it is, is you have a collection of mobile robots that can only measure the relative displacements of their neighbors. Meaning, they don't know where they are, but they know where they are relative to the neighbors. So here, here we have agent i, and it can measure xi minus xj, which is actually this vector. So, it knows where agent j is relative to it. And this is typically what you get when you have an censor skirt, right? Because, you can see agents that are within a certain distance od you. And, as we saw, you know, where they are relative to you. If you don't have global positioning information, you don't know where you are so there's no way you're going to know, globally, where this thing is, but you know where your neighbors are locally. And the Rendezvous Problem is the problem where having all the agents meet at the same position. You don't want to specify in advance where they going to meet because since they don't know where they are, they don't know where they going to meet. They can say, oh, we're going to meet in, at the origin. But I don't know where the origin is. Is it in, in Atlanta, Georgia? Or is it in Belgium, or is it India? What do I know, right? So, the point is, we're going to meet somewhere, but we don't know where. Okay. So, we have actually solved this problem before. We sold it for the 2 robot case, where we had 2 robots. and we could control the velocities right away. What we did is we simply had the agents aim towards each other. So, u1 was x2 minus x1. And u2 was x1 minus x2. This simply means that they're aiming towards each other. Well, if we do that, we can actually write down the following the following system. This is the closed loop system now, where we have picked that controller. So, x dot is this matrix times x. Okay, let's see if this works now. Well, how do we do that? Well, we check the eigenvalues of the A matrix to see what's going on. Alright. Here is my A matrix, type eig in MATLAB or whatever software you're using, and you get that lambda 1 is 0, lambda 2 is negative 2. Okay, this is a little annoying, right? Because we said asymptotic stability means that both eigenvalues need negative real part, this doesn't have that. But asymptotically stable, so asymptotic stability also means that the state goes to the origin and, like we said, we don't know where the origin is, so why should we expect that? We should not expect it. We also know that one positive eigenvalue or eigenvalue with positive real part makes a system go unstable. We don't have that either. In fact, what we have is this in-between case that we called critical stability. We have one 0 eigenvalue and the remaining eigenvalues have negative real part. So, this is critically stable. And, in fact, here is a fact that I'm not going to show but this is a very useful fact. So, that if you have one eigenvalue be zero and all the others have negative real part, then in, in a certain sense, you're acting like asymptotic stability. Meaning, you go, in this case, not to zero but you go into a special space called the null space of A. And the null space of A is given by the set of all x, so such that when you multiply A by x, you get zero out. That's where your going to end up. So, your going to end up inside this thing called the null space of A, in this case, because you have one 0 eigenvalue and all others having strictly negative real part. And if you type null(A) in MATLAB, you find that the null space for this particular A is given by x is equal to alpha, alpha where alpha is any real number and why is that? Well, if I take negative 1, 1, 1, negative 1, this is my A matrix, and I multiply this by alpha, alpha, what do I get? Well, ll' get minus alpha plus alpha here, and then I get plus alpha minus alpha there, which is clearly equal to 0. So, this is the null space. Okay, what does this mean for me? Well, it means that x is, x1 is going to go to alpha and x2 is going to go to alpha. x1 goes to alpha, x2 goes to alpha, which means that x1 minus x2 goes to 0 because they go to the same thing. Which means, that we have, ta-da, achieved rendevous. They end up on top of each other. In fact, they end, end up at alpha. We don't know what alpha is but We know that they end up there. Okay. Now, if you have more than two agents, we simply do the same thing. In this case, we aim towards what's called the centroid of the neighbors. And, in fact, if we write this down, we write down the same thing for more than one agent, we get that x dot i, before it was just xj minus xi, there were 2 agents. Now, I'm summing over all of agents i's neighbors. That is doing the same thing if you have more than one agent. And, in fact, if you do that and you stack all the x's together then you can write this as x. is negative lx. And this is just some bookkeeping. And the interesting thing here, here is that l it, it's known as the Laplacian of the underlying graph. Meaning, who can talk to whom. that's not so important. The important thing though is that we know a lot about this matrix L and, again, and it's called the graph Laplacian. And the fact is that if the undergrinding, underlying graph is connected, then L has one 0 eigenvalue, and the rest of the eigenvalues are positive. But look here, we have negative L here, which means that negative L is one 0 eigenvalue and the rest of the eigenvalues are negative. That means that this system here, the general multiagent system here is actually critically stable. And we know that it goes int o the null space of L. And it turns out, and this is a fact from something called algebraic graph theory. We don't need to worry too much about it. We just know that clever graph theoreticians have figured out that the null space to L, if the graph is connected which means that there is some path with, through this network between any two agents is given by not alpha, alpha but alpha, alpha, alpha, alpha, alpha, a bunch of alphas. So, just like before, if I have this thing and, in fact, it doesn't have to be scalar agents, what I do have is that all the agents go to the same alpha or in other words, the difference between the agents will actually disappear. And when we did this, we design a controller. We actually designed this thing here. And this thing is so useful that it actually has its own name. It's known as the consensus equation because it makes agents agree. In this case, they were agreeing on position. But this equation actually will solve the rendezvous problem because of the fact that the corresponding system matrix you get is negative L at the right eigenvalues which means that the system is critically stable so we can solve rendezvous in the multirobot case. And again, you've seen this video. Now, you know what it was I was running to generate this video. In fact, you can go beyond rendezvous So, here is actually a course that I'm teaching at Georgia Tech, where you want to do a bunch of different things. And again, all I'm doing is really the rendezvous equation with a bunch of weights on top of it. And we're going to learn how to do this. I just want to show you this video, because I think it's quite spectacular. You have robots that have to navigate an environment. They're running these, basically the conses equation and they have to avoid slamming into obstacles, so I should point out that this was the final project, project in this course, it's called network control systems. And I just wanted to show you that you can take this very simple algorithm that we just dev eloped, make some minor tweaks to it, which we're going to learn how to do, to solve rather complicated, multiagent robotics problems. So here, the robots have to split into different subgroups and avoid things, they have to get information, they have to discover missing agents and so forth. And we will learn how to do all of that in this course. Now, having said that, talk is cheap, right? And simulation is maybe not cheap, but let's do it for real. In this case, we're going to have two Khepera mobile robots, and what we're going to do is we're going to use the same PID go-to-go controllers and we're going to let the consensus equation flop down intermediary goal points. And what we're going to do is we're going to keep track of our position using odometry, meaning our, our real encoders. And what the robots are going to do, is they're actually going to tell each other where they are rather than sense where they are because we haven't talked yet about how the design sensing links. So, what we're doing is we're faking the sensing and telling, they're telling each other where they are. And they're using a PID regulator to go in the direction that the consensus equation is telling them to go in. And now, let's switch to the actual robots running and solving the rendezvous problem. So, now that we have designed a closed looped controller for achieving rendezvous we're going to deploy it on our old friends, to Khepera mobile robots. so, what we will see now are these two robots actually executing this algorithm. and we will be using the same go to goal controller as we designed earlier to achieve this. And, as always, I have J P.. De la Croix here to conduct the affairs and practically, we're going to see two robots crashing into each other which is exciting in its own right. But intellectually, what we're going to see, is the state of the system asymptotically driving into the null space of our new A matrix. And the reason for that is, as we've seen this matrix has 0, 0 eigenvalue, which means that the system is critically stable and the states approach the null space. So, J.P., without further ado, let's see a robotic crash. So, we see they're immediately turning towards each other and . Pretty exciting stuff, if I may say so myself.