Odometry - irobot odometry - Control of Mobile Robots



So now that we have a model, we need some
way of knowing where the robot is because
the state of the robot is xy and fine,
meaning the position xy and it's heading,
fine. Odometry is the means by which we
can obtain this pose information and the
question is, how do we actually get the
state or the pose of the robot? Well,
there are a number of different ways of
doing it, but at the end of the day, we
absolutely need sensors . Well, there are
two possibilities here. One is we can use
some kind of external sensors. So, an
external sensor would be a sensor that's
measuring something in the environment.
So, for instance, you pretend that you can
see a, A landmark.
Let's say I can see the Eiffel Tower. And
now I start moving around, if I keep track
of the Eiffel Tower I should be able to at
least know where I am relative to the
Eiffel Tower. Right.
That seem to make some sense. So the
external sensors. Ultrasound, infrared,
cameras, laser scanners, these are sensors
that tell us something externally about
where we are. There is another type of
external sensor that one can use, of
course, which would be GPS and it's
external because we're not measuring it
internally, we're getting information from
Outside, and the GPS immediately would
give us things like position and so forth.
However, when you're running robots
indoors, you certainly don't have GPS
signals, And a lot of times GPS alone is
not enough to know x, y, and phi to any
high level of, of fidelity. So what you do
is you typically couple the external
sensors with internal. Sensors.
So the internal sensors are sensors that
are sitting in the robot. And they are
helping you know where you are. So, for
instance, you could use a compass to,
figure out which way the, the robot is
heading. So this would be orientation. Of
course, in every self respecting robot,
there are accelerometers, and gyroscopes
for finding out. And how far you've
traveled and so forth. So position and
orientation can both be derived from
accelerometers and gyroscopes to certain
degree. another useful way is Wheel
encoders. So typically you have tick
counts, you can tick and count how many.
Basically, how many revolutions the wheels
are doing in a certain amount of time, and
from that you can actually figure out
things about where the robot is. And, I
would like to discuss a little bit with
you about Wheel Encoders. And the reason
for that is, that if we are indeed now
working with the referential drive robots
for awhile, lets see, if we can find out a
little bit of how we can get position
information. And more importantly, how
much can, Can be trusted. So, a wheel
encoder gives the distance moved by each
wheel. So, we have left and right wheels
here. And here's the following assumption
we're going to make. We're going to assume
that each wheel is following an arc, which
means that it's turning at a constant rate
and driving at a constant velocity,
basically. So, v and Ohm r are constant.
What this means is, on short time scales
that's, That's correct.
And if we do that, well, let's say that D
is the distance the left wheel has turned,
and D[UNKNOWN] is the , distance the right
wheel has turned. So in this case, the
right wheel is turning quicker than the
left wheel because it's turned, turned
more. Well, I'm interested in x, y, and
phi. Which is not where the wheels are,
but where the center of the robot is. This
is where I'm interested in. So DC is the
distance the center has turned and that's
the thing that I'm interested in. Now
luckily, the center is simply DL + DR / 2.
I am not going to be particularly Picky in
showing where the geometry of this comes
from. Instead, these are things that are
readily available if you want to look up
things, like how wheel encoders work. But
I want to connect a little bit with the
mobile robot model to the wheel encoders,
just to see how we reason about things,
and in fact, if we are measuring how far.
The road the wheels have moved over a time
interval. So let's say that we start at x
and after the time interval , well we know
Dc because Dc is this thing then we can
actually compute the new x primes, the new
x position of the robot. We can similarly
compute the new y position of the robot.
Which is the same as the x update, but has
sine instead of a cosine term. And, we can
even compute, the, the new orientation. So
this is a way of knowing how to go from,
how far the wheels have turned. Into what
are the new positions of the robot. And,
in fact, we're going to be running quite a
few experiments, where the only
information the robot has. Is where it is,
based on the wheel encoders. So but how do
we know Dr and Dl, thought? This is what
we need to know in order to find out where
the robot is. Well, assume that each wheel
has N ticks per revolution. So 2 pi
degrees is N ticks. So most wheel encoders
actually give the total tick counts as to.
The beginning, so what you measure is how
many ticks since, since you start the
system up. So, the updates I am writing
here for both wheels. This is for the left
wheel and the right wheel, so you could
write the you know.
Delta tick r or r or but for both of these
wheels you take the old total tick count.
And subtract it away from the new total
trick, tick count. So this tells me,
what's the tick count during the time
interval you just looked at. And then
based on that, you can very easily compute
what the distance that wheel has, turned.
So this d here, this d could either be d's
of l or d's of r, so it's simply 2 pi r
delta tick over n. So this actually gives
as a way of mapping ticks on to distances
traveled, and as we saw in the previous,
previous slide distance traveled we can
then map into new position and orientation
of the , Fair enough.
There is one major disclaimer I must make,
though. And that is, ta-daa, drift. A
system like this, drift. It's very
imprecise. And, if your using only real
encoders as your source of odometry, your
probably going to run into a little bit of
trouble. So, here, I want to show a video.
This was from one of the. Cou rses I
taught recently where you have now two
robots competing against each other. It
looks like they're following lines but all
they're doing is following wave points
that laid down, and they're using a PDA
regulator to get through wave points. And
what you can see is that they're getting a
little but out of whack, and the
interesting thing here is one robot gets
up on top of the other robot and as a
consequence the wheel is spinning without
it's actually touching the ground. and as
you can see The robot then has a
completely confused idea of where it is in
the world. So this would be an example of
were drifts its rather severe the robot is
going in way wrong direction because of
the fact that the real encoders no longer
correspond to what's happening on the
ground. So we're going to use real
encoders a lot. They're used a lot in
robotics, but we always need to be aware
of the fact that themselves, by
themselves, wheel encoders do not tell the
full story or a particularly robust


EmoticonEmoticon