Control of Mobile Robots is a course that focuses on the application of modern control theory to the problem of making robots move around in safe and effective ways. The structure of this class is somewhat unusual since it involves many moving parts - to do robotics right, one has to go from basic theory all the way to an actual robot moving around in the real world, which is the challenge we have set out to address through the different pieces in the course.

Ministrado por

Dr. Magnus Egerstedt

Transcrição

So, welcome to Module 2 of the course, Control of Mobile Robots. In Module 1, we introduced control theory as a way of dealing with the systems in general. And in this module, we're going to introduce mobile robots as the key target application of the course. And what we're going to do is start with a very simple question. How do I drive a robot from point A to point B, or in this case from a blue ball to a yellow sun? And the first question we need to understand before we can even answer how to drive it is what do we need? Well obviously, we need to measure where the sun is or the goal point is, and somehow turn this into the control actions. So, we've taken the information from the sun and we're feeding it into the controller. So, one of the things we need is to design the controller which we kind of know a little bit about already. We also need to understand what information the robot actually has. So, we're going to have to discuss a little bit about how do robots actually gain information about the world. And, of course, for that, we need sensors. So, we need to discuss sensor models at the sufficient level of abstraction so that we can reason about them, but they need to be rich enough so that we can trust that the information that our controller is based on, is actually something that the robot has. And then finally, in order for the controllers to be useful, we need to be able to basically predict how they're going to influence the robot. So, we're going to need models. So, what I'm going to do in this module is to discuss robot models and, in particular, we're going to look at differential drive robot mobile robots and we're going to discuss sensors. And we're going to look at sensors that allow us to gain information about the world around us and sensors that allow us to know something about our internal state. For instance, where is the robot? what we will not do is any advanced perception. We're just going to look at the abstracted sensor models that give us the type of, of infor mation that we want. But before we even do that, whenever you try to design controllers for robots that drive around in the world, there are two facts that you really have to embrace. And the first is that the world is fundamentally unknown. You're not going to know where every chair in the building is. You're not going to know where every tree in the forest is when you're out driving in the forest. So, there's no way you can plan in advance exactly what the robot should be doing. The second is, people move chairs. People move around. The wind makes trees blow , or sway. So, the world is actually changing and dynamic. And for that reason, it's also a bad idea to try to produce, in advance, a very complicated monolithic controller for doing everything. So instead, what we do in robotics, a lot of times, is we divide the control task into chunks and then we'll design controllers for those individual chunks. So, for instance, if I'm a robot trying to get to a goal, I may have some kind of controller that's taking me to the goal and then when something shows up in the environment, I switch to another controller that allows me to avoid that thing in the environment. And, in fact these primitive building blocks that from our point of view are different controllers, in robotics, they're called behaviors. So, behaviors are going to be key concepts in this course and we're going to design quite a few of them. And I just want to mention a handful of very standard behaviors that we will indeed see. Go-to-goal is the most basic one, which means drive to a, a waypoint or target location. Avoid-obstacles is absolutely crucial meaning, don't slam into things on the way over there. Then if you're in, you know, an office environment, you know that the world is typically straight lines, walls, so follow-wall is not a bad type of behavior to have. If the goal is moving, you may want to track it instead of going to just static goal, and so forth, and so forth. We'll see quite a few of these different beha viors. And I would like to start with a video here of a robot that I was developing or working on, that used camera information to build up a map of what the world looked like and here is what the robot is doing when it's based on a planner. Here's, it's seeing something and it's kind of putting it in the map and then it's thinking up a new long plan to, for the robot to take. So basically, you saw the robot spending a, a large amount of time dealing with new information because it had to re-plan. So now, we're running to exact same thing with behaviors. So, we're following a plan or just, in fact, follow plan behavior and then when something pops up, we're switching to an avoid-obstacle behavior. So now, the same things which is up in the, or shows up to the robot. Instead of the robot sitting around thinking for a long time, it just avoids it. And once it's clear, it goes back to following the, the, the plan. So, this would be an example of why behaviors are really useful. Here is another example. This is actually a segway robot, so the dynamics is very complicated. And never mind the, the moving graphs in the lower, lower part of the picture. What I want you to see is that this robot is actually, in this case, switching between different arc behaviors. So, there are different arcs that the robot can take and the behaviors, in this case, are follow various arcs. So now, you can put behaviors that are not as simple as just go-to-goal and instead, the behaviors would be arcs of various sizes and shapes. And we will become quite good at understanding how to design these individual behaviors, and as well, how to combine them.