Driving Robots Around - telepresence robot rental



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.


EmoticonEmoticon