0:00

The punch line with last lecture was that we can, in fact, make the unicycle model

Â or a differential drive mobile robot, act like a simple x dot equal to u.

Â What this means is that if we have some desired direction we want to go in,

Â direction and magnitude, we can come up with v's and omega's, speeds and angular

Â velocities that make the differential drive robot execute this controller.

Â And we did it in two ways. First, we saw that we can actually use

Â some kind of tracking controller to follow this.

Â But then, in last lecture, we came up with a rather clever transformation that

Â allowed us to, to actually track this u vector more or less perfectly.

Â And when I say more or less, what I mean is that we really ignored orientation.

Â So, we only cared about where the robot actually was,

Â not particularly which direction it was pointing.

Â And we couldn't track or used the original point, we had to accept this

Â small offset error. But it was rather elegant, because no

Â longer did we have to design trackers. the question one should ask then, of

Â course, is does this apply to other types of robots? Meaning, this idea of starting

Â with a unicycle and then somehow making it behave well,

Â how, how relevant is that to other kinds of robots? So, we have dealt with the

Â differential drive robots. We know that it's super important in

Â relevance to that but you know what, what if you have flying things? What if you

Â have snake bots? What if you have, this is called a snake board, what if you have

Â fixed-wing aircrafts or blimps or underwater robots? Does this even apply?

Â Well, what I want to do today is basically see

Â that it does supply but, it does supply if you squint your eyes a little bit and

Â focus on what these types of robots have in common as opposed to what they don't

Â have in common. So, what I want to do today is simply go

Â through a smorgasbord of different robot classes and see how they actually are

Â like unicycles or maybe not. We'll see.

Â Okay. Here's the unicycle,

Â right? We have, as always, position, x y, and it's pointing in some direction,

Â phi, this is the standard robot model. So, the states are position and

Â orientation. The inputs to this model, this

Â abstraction, are angular and transalational velocitiies.

Â Meaning, how quickly do you turn and how fast do you go.

Â Well, let's start expanding this model to encompass slightly more elaborate

Â systems. So, let's start with what's called a

Â car-like robot. A car-like robot is not a unicycle

Â because all of a sudden, we have more states.

Â We have our old friends which is x and y, which is the position.

Â We have phi which is the orientation, but then we also have a new angle known as

Â the steering angle. So, here is the picture we should have in

Â mind. Here's a car, here are the rear wheels.

Â Well, the front wheels are going to be turned because we're turning the steering

Â wheel. So, if I call this point here, x and y,

Â as always, then this, of course, is, as before, the heading.

Â And now, we also have this angle here, which is psi, known as the steering

Â angle, how much are we actually steering it. And

Â all I wanted to show here is that we have almost the same equation for x and y, the

Â only difference is that we are now going in this direction, which is phi plus psi.

Â and then, the orientation has its own dynamics that's a function of the

Â velocity and the steering angle. And then, what we can do is we can

Â control how quickly we're steering. So, psi dot is equal to u.

Â So, this is the next level up in complexity where we no longer have a

Â unicycle but a car-like robot, four wheels we can turn the front wheels.

Â Well we've already seen the Segway robot. So, the Segway robot is really a unicycle

Â or a differential drive robot at the base.

Â And then, you know, this, this mess here. I drew it like this because it actually

Â didn't fit in the box if I didn't make it small and sideways.

Â The point is that, we had a rather complicated equation describing the

Â pendulum part or the part that's sitting on top of the unicycle.

Â So, we had a bunch of states, position, orientation, tilt, angle, and here, we

Â actually had to deal with the tilt velocities and other kinds of velocities

Â because we actually need to get into dynamics.

Â Many accelerations of what's happening for this thing not to fall over and the

Â inputs were the wheel torques to this model.

Â The point now is that this still has a unicycle underneath and then this mass

Â sitting on top of it. So, that would, would be the Segway robot

Â that we actually already seen. Well, what about flying things? Well, a

Â standard model for a fixed-wing aircraft is ta-da, a unicycle, right? Which means,

Â it's moving. And then, it can change altitude.

Â So now, no one in their right mind would actually say that this is what a,

Â an aircraft is actually doing but from a high level obstruction point of view,

Â it's not a bad idea. An aircraft can't go sideways but it can

Â kind of move like a unicyle in, in the plane.

Â And then, you can change altitude. now, you would actually have to couple

Â this to the real dynamics of the aircraft if you wanted to do it for real.

Â the one thing to note though is that there is something slightly fishy about

Â this and that's the fact that the fixed wing aircraft cannot hover.

Â When you can't have v=0, but there's really no constraint or no way of

Â capturing this in, this model, we see later how to do it, but the point here is

Â that there are ways of thinking about flying things as unicycles plus an

Â altitude component. Now, let's look at another model.

Â This is the standard model of an underwater glider,

Â and, well, let's go back a slide. Aircraft, underwater glider, nothing

Â changed, right? So, an underwater glider, people

Â typically model as a unicycle. And then, you can go up and down.

Â So, you can go down to a lower depth or you could climb up towards the surface.

Â So, again, unicycle plus an altitude or a vertical component that describes how

Â high up or high down the, the robot actually is.

Â Well, all of these robots have some notion of

Â where it is at least in the plane and where it's pointing.

Â And if I call position plus heading for POSE, the punchline, at least based on

Â the models I showed you, cars, segways, flying things, things on the water, and

Â as we know, differential drive robots, they have this key thing to it known as

Â POSE. And POSE is x, y, and phi.

Â You know, that's just, that's just what's going on, where is it and which way is it

Â pointing. It's pointing in the phi direction

Â instead of the x and y. Well, you know what, if you ignore the

Â dynamics, the actual dynamics and say at the certain high level abstraction, we

Â already know how we should think about this,

Â the unicycle. So, almost everything involves a POSE.

Â And almost everything with POSE is almost a unicycle and I will make this more

Â precise. But the point here is that whenever you

Â start dealing with postion and heading, the unicycle model is applicable, maybe

Â not perfectly, but fairly well. So, this model is still very, very rich.

Â So, the punchline then becomes that we can almost use everything that we've

Â already done and then possibly add another layer to to what's going on.

Â So, what you have, is you have, let's say, your, your u plan, right, that comes

Â into your unit cycle, and out of that comes our old friends, v and omega, and

Â then, whatever actual robot you have is going to move like this.

Â [SOUND] And the point is that, in here, we may be forced to somehow make the

Â actual robot look like a unicycle a little bit.

Â But it's just another layer to our already elegant and well-layered

Â architecture that we've discussed. And, in fact, next time, what I want to

Â do is exactly this for the car robot, to see how do you make a car act like a

Â unicycle and this is something I had to do when I was dealing with the autonomous

Â self-driving cars. We were reasoning about them at the level

Â of position and orientation and speeds and angular velocities but then we have

Â to map it back onto the, onto the, the car robot.

Â Before we do that though, I need to talk a little bit about constraints.

Â What I mean, mean by that is if you're flying, for instance,

Â you can't hover. You're going to have a certain minimum

Â velocity or a lot of times, it's convenient to assume a fixed velocity and

Â then you can turn. But here's an aircraft.

Â It can't immediately or very quickly just spin either.

Â So, there are caps on how quickly you can actually turn.

Â Well, the most famous of all constrained unicycle type models is known as Dubins

Â vehicle. And all it is is a unicycle with the added caveat that we can only fly

Â with v=1 or drive with v=1, meaning we're going to go with a constant velocity and

Â we have a max and a minimum angular velocity.

Â If you want, you can say, you know, v0 there and omega v max or omega max plus

Â omega max instead of -1 and 1, but the point is that we're constraining the

Â velocities. This means, that Dubins vehicle can

Â basically execute straight lines, it can go along paths like this so, so it can go

Â along angles, I mean, along circular arcs.

Â Or it can go anything in between, right? But basically, you have, you

Â cannot go arbitrarily tight with a Dubins vehicle.

Â So, this is one way in which people incorporate constraints.

Â And this makes the planning part significantly harder.

Â We're not going to cover it, but I encourage you to look up Dubins vehicles,

Â for instance, to see how people think about curvature constrained versions of

Â unicycles, for instance. Well, another version or another standard

Â constraint that people deal with is what's known as the Reeds-Shepp model,

Â where omega again, is between -1 and 1, or negative omega max and omega max, and

Â v can now be, well, the absolute value of v is 1, which means that v is either +1

Â or -1, meaning it's a Dubins vehicle that can also go backwards.

Â That's all that this means. You can go forward along these arcs or

Â you can actually pull back in in reverse. And Reeds-Shepp is also a standard type

Â of model that people like to deal with when they're dealing with mobile robots.

Â Now, aircrafts typically can't back so it's not a par, all that relevant of a

Â model for fixed wind aircraft, for instance.

Â But there are, for instance, robots, at the end of the day, we have a top

Â speed, for instance, so we can't go faster than v=vmax, so,

Â but we can indeed go backwards. So, the Reeds-Shepp model would not be a

Â bad model if you actually want to take max velocities into account.

Â So, remember that this may or may not come into play.

Â The last thing I want to say though is that there are, of course, robots where

Â POSE is not a reasonable way of describing them.

Â You know, you have a humanoid, well, people will have maybe a position and

Â orientation but there is so much more going on in a humanoid.

Â A snake, you know, which way is the snake pointing, well, you know, if the snake

Â looks like this, what's, what's the orientation of the snake? It's very

Â unclear. What's the position of the snake? Who

Â knows? It's not clear what we mean by that.

Â same thing, we would like mobile manipulators like this robots that we

Â have here at Georgia Tech, where, well, the base is a unicycle.

Â So, if you only care about the base, fine.

Â But if you want to do more things like carry things around or opening doors and

Â so forth, we have to care about more than the just the POSE,

Â more than just position and orientation. So, there are situations where we have to

Â worry about more things, but in a surprising amount of situations, POSE is

Â indeed the way to go. And like I said, the next lecture will be

Â about cars and how to actually make a car behave like a unicycle.

Â