Re: New web articles on robotics are now available



gwlucas@xxxxxxxxxxxxxxxxxxxxx wrote:

[snip typo]

I must confess when I read the first
article my basic reaction was "why would any beginner
do it that way?"

I thought about this question when I was writing the article and it looks like I should revisit it. In the case of the differential steering system, it might make sense to say something like "if you are interested in executing a simple point-and-shoot maneuver, the required information (and then some) is available at http://rossum.sourceforge.net/papers/DiffSteer/ "

I've read that paper as well and it is still more way more complicated than necessary. You briefly mention the easy solution:

   ... let's consider the problem of getting a robot to
   make a turn around a corner in hallway or road.  A
   simple approach is to have the robot drive to the
   intersection, stop, and piviot.  Clearly, though,
   such an approach is inefficient and a bit ungainly.
   A more elegant approach would be for a robot to
   *round the corner*, following a gradual circular arc...

and then dismiss it it as being "inefficient" (presumably
you mean energy inefficienct) and "ungainly."

Most beginners have a difficult enough time getting the
robot to go in a straight line, let alone a gentle curve.

The following critisim is meant to be constructive.
I think it is a diservice to your intended audience
to skip over the straight line and pivot solution.
It is not like it is difficult.  If you are at (x1, y1)
with a bearing of b1 (0 <= b1 <= 2pi) and want to go to
(x2, y2), you compute the new bearing as b2 = atan2(x2 - x1, y2 - y2)
and the desired distance as d = qrt((x2-x1)^2 + (y2-y1)^2).
The robot is pivoted to the new bearing b2 and the robot
is driven forward by a distance d.  Actually, the hardest
thing for most people is figuring out how to compute atan2
when your trig library does not have an atan2 function.

[ackerman steering snipped]

Finally, addressing the question of why anyone would want
to do the more sophisticated maneuvers.  Well, first off,
I strongly encourage anyone to work with the easy maneuvers
first.

I request that you actually say that in the article.

That being said, there are a number of advantages to
the more challenging maneuvers and maybe I should write more
on the topic. Do you think it would be more effective in the
Introduction section or in one of the articles?

I'm not a big fan of overloaded introductions. A small serious of articles that leads the user from simple to hard is a great service. The differential steering article mentioned above is still way too complicated given that simpler solutions exist.

The main advantage to the advanced maneuvers is that they're smooth.
If you are attempting precision dead-reckoning, the worse thing
you can do is stop. When you do, the backlash in your drive
system and encoder resolution errors contribute to loss of
navigation information.

I've never seen an authoratative source of where dead reckoning errors come from. Most discussions that I've read claim that the error comes from small errors in bearing being amplified over distances.

> Also, even small robots carry some
inertia. So starting and stopping is costly in terms of time and
energy.

Anytime you make a sharp turn you need to bring your speed down. However, I basically agree that starting and stopping do take more time. A beginner cares and more about getting the job done.

As I worked with the cubic equations (the second article), I liked them
better and better. They give a much nicer results than I'd expected
(it's the continuity and transitions in speed and acceleration that do
the trick).
Even so, it's important to keep in mind that the equations presented
are just a starting point. For example, they assume perfect knowledge
of the robot's environment.  When does a robot really know the range
and
bearing to a target with any kind of accuracy?  When does it
actually know where it is or its true rate of acceleration?  Thick
books
have been written on the problem. My little articles don't
pretend to be anything but a first step toward a real solution.
Really ambitious roboticists might want to look at
"Introduction to Autonomous Mobile Robots" by Siegwart and Nourbakhsh,
or "Computational Principles of Mobile Robotics" by Dudek and Jenkin.

So, any suggestions out there as to what I should write about
next?

If your focus is for beginners, I think a good discucssion on rotational sensors would be interesting. There are now a bunch of articles on PID, but most of them just assume that you know how to get useful information from a quadrature encoder. Anyhow it is a suggestion.

Again, let me repeat, all criticism is meant to be constructive.

-Wayne
.



Relevant Pages

  • Re: New web articles on robotics are now available
    ... > "Calculations Useful for Robotics" on ... > The Rossum Project web site. ... > The articles discuss two elementary approaches ... > robot. ...
    (comp.robotics.misc)
  • Do you think MLVDS got some future?
    ... a robot and after a while I found MLVDS. ... I have found 2 articles of ... Does anyone have any experience with MLVDS? ... Any suggestion on ICs ...
    (comp.arch.embedded)
  • New web articles on robotics are now available
    ... "Calculations Useful for Robotics" on ... The Rossum Project web site. ... The articles discuss two elementary approaches ... robot. ...
    (comp.robotics.misc)
  • Re: New web articles on robotics are now available
    ... Great articles - if you have a degree in engineering or mathematics. ... just looks like an elitist academic treatise... ... > "Calculations Useful for Robotics" on ... > robot. ...
    (comp.robotics.misc)
  • Perl beginner seeks help
    ... learner of Perl. ... I guess you could call me a beginner. ... I am making a talking robot like ...
    (perl.beginners)