So the outcome of the last handful of lectures, was that we needed something
more rich to solve complex navigation problems, and that something was wall
following. In fact was saw that we really had 2
barriers, wall following clockwise and wall following counter clockwise.
And, the way we could encode that was to take our avoid obstacle behavior and
simply flip, Either flip it -pi/2 for a clockwise negotiation of the obstacle or
+pi/2 for a counterclockwise negotiation of the obstacle.
What I want to do today is relate this wall-following behavior to the induced
mode when we looked at type 1 zeno in hybrid systems.
And the point with this is really for us to first of all, trust that this is the
right thing to do. Trust that we understand alpha.
And trust that we understand plus or minus there.
We use some kind of inner product rule to determine whether or not we should go
plus and minus. Now we're going to see that that's,
indeed. the correct rule from a sliding mode
vantage point. However we're going to do little bit of
maths today and at the end of it we're just going to return back to this and
say, this is how, still how we going to implement it because it is much simpler
but we need in the math to get there and trust a that's correct.
So here's the general set, set up. As before we have an obstacle x sub o.
We have a goal, X of G, and we have X, which is the position of the robot.
We also have a distance from the obstacle, when we're going to switch to
avoid obstacle as opposed to go to goal, and even though I'm doing everything with
points now This works for non-convex obstacles, for pretty much anything.
We can write that down at least in this way.
And the distance then being constant, let's say it's delta from the obstacle,
when I can simply say that that means that the distance between the X and XO is
equal to Now, what do I have? I have 2 different behaviors.
I have one behavior that wants to take me towards the goal and I have another
behavior that wants to push me away from the obstacle.
And now I also have a switching surface and I'm going to write this as the
distance between X and the obstacle minus delta, should be equal to 0.
But, I'm going to put squares in there because I'm going to start taking
derivative and taking the derivative of the square of a norm is easy taking the
derivative of a norm is not so easy, and then I'm going to put the half here just
for the reason of getting rid of some Coefficient but this half doesn't change
anything. So now what do I have? I have g.
On one side I have g positive, which means that you're further away from the
obstacle than delta, which means you're out here where you're going to use this
behavior. So we have f1 coming in here, so this is
going to be my f1. And then I have g negative on this other
side, which is inside here, where I'm going to use this behavior.
So that's going to be equal to f2. So I have everything I need to be able to
unleash our induced mode piece of mathematics.
So, f1 is goal to goal. f2 is avoid obstacle.
Now, we need to connect these somehow with the induced mode.
Well, here is the connection. We actually computed the induced mode.
It was this convex combination of the two modes, or the two behaviors.
And this convex combination was given by this, mouthful of Of an expression.
But let's actually try to compute this, in this case, to see what, what the
induced mode should be. Well, first of all, we need the Lee
derivatives. So, lf2g, if you remember.
That was dg, dx*f2. We need the same thing for f1 and then
this lead derivative show, show up repeatedly.
Well, first of all the derivative of g with respect to x is simply x-x obstacle
transpose and this is the reason why I put squares here because that made
everything easy and I put the half there because that hills an extra 2 that would
show up. This really doesn't but it just makes the
math a little bit easier. This is again one of these things that I
encourage you to try to compute yourselves, just to make sure that you
actually trust that this is indeed the correct answer.
Well, now I can compute the [UNKNOWN] derivatives, right? I have LF2G, well
it's DG/DX times F2 Well the GDX which is computed it was that.
F2 is C avoid obstacle, X-Xo. In previous lecture, I used K, with the
prime index [INAUDIBLE] was C here. Well, this is X-Xo transposed times X-X0.
But that's just X-X0 squared, the norm squared.
So this lead derivative has a rather simple expression.
Similarly, I can compute the other lead derivative.
And its' c, goal to goal times this thing, that we now know is an inner
product of x-x obstacle, transposed times x goal minus x.
So I have the 2 lead derivatives that I actually need.
So, with that, I could go ahead and compute the induced mode.
For instance. You know, this little thing here.
What is that? It is let's see, it's (x-xo) transpose times (CAO*(x-xo)),
that's the first term, minus C goal to goal times (xg-x).
So, that's that term. We have an explicit expression for it.
We can also go ahead, and compute this, right, for instance.
It's CAO, x-x0 transposed times f1. Which is, what was f1 again? It was goal
to goal times xg - x..
So I can compute this. Similarly, I can compute that.
The point is first of all that everything is entirely computable here.
The other point is, you know what, this is a little bit of a mess.
It's a mess to write it down, but what we've actually done is [SOUND] We have
recovered the same controller because what we're doing is again we're sliding.
The only difference is if you write it in this form, you automatically get alpha to
pop out because you get the certain scaling, and you get plus or.
Minus flip. So you actually get the flip for free,
your told which direction to go and which alpha to go in and the nice thing is that
the flip direction you get from computing the induced mode is actually the same as
taking the inner products with U follow ball counter-clockwise with U avoid
obstacle, if this inner. U avoid obstacle.
If this inner product is positive, we go, counter clockwise, and otherwise we go
clockwise. So,
the nice thing is, we have actually ,in a mathematically rather involved way arrive
at same expression. And with the difference being that we can
have the plus or the minus automatically determined for us, and these scaling
factors automatically determined for us. In practice though, we're not going to do
this, because this is too messy. Instead, we're just going to pick some
alpha that we feel good about. I always pick alpha=1 because I'm lazy
and then use the inner product tasks to figure out whether we should go clockwise
or counter-clockwise. So, that's practically what we're going
to do. Now, that's not enough, so let's say that
I"m going towards the goal here. Here I want to go in this direction, and
avoid obstacle once to take me there, so sliding is immediately going to tell me
that I'm going to start moving up like this.
Well you know what? This was all good and Dandy, but if I'm simply looking at the
sliding rule. Then here, all of a sudden I'm pointing
in both direction, and sliding is going to tell me to stop, So what I need to do
is to just keep following the ball, verify then I'm going to follow the ball
for a long time way and way and way, around and around and around and may be
here the right time to stop following the ball.
The question that really need to answer now.
When we know that follow wall is the right thing to do, we know which
direction to go in, and we know, really how to scale it even though we're just
going to scale it by one because it really doesn't matter is when do we
actually stop this sliding or follow wall.
Well, that turns out not to be so easy and in fact there are multiple ways of
Answering that and this is precisely the topic of the next lecture.