Swarm Robotics - Swarm Robotics projects - Control of Mobile Robots



Swarm Robotics
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.


EmoticonEmoticon