Let's Make Robots!

Robo-Philosophy:Is it really "obstacle avoidance?"

This is a quick and easy one. The Roomba, as cool as it is, doesn't really "avoid" obstacles as much as just not keep trying to go through them. When your only sensor on a project is an impact/contact detector, is it still obstacle avoidance? If it isn't, what would you call it? I have a few bots that work like that-it doesn't make them any less robots.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Even humans trip once in a while. Lego calls the Touch sensor corectly, using it for detecting obstacles (bumper sensor) or to detect objects to be grabbed. IR, US are simple vision sensors, a camera being a complex vision sensor. Same would be a scaning/panning distance sensor, because you can extract 3D data from using it and extrapolate the robot position relative to objects.

It doesn't matter how the robot detects an obstacle. If it can detect and avoid an obstacle, it's an obstacle avoider. 

I just clicked the post suspecting you to be the author :D

Regardless, I think it can be more a question of semantics than actually philosophy, but well you know philosoly it always has something to say :P

First off, you'd have to define the extent of "avoidance" towards "obstacles". As I see it navigation by "touch" could be considered "range zero" detection. Sure, the robot will have to physically touch objects... but after that the program should be as to avoid that "detected object" whereas using rangefinders such as IR, sonar, etc you'd just be having possibility of having "range > 0" object detection.

In the end, what defines the bot's "feature naming" is as much the sensors it carries, as it is the program it has...

...to try and illustrate all of this consider that I make a bot using _both_ touch sensors and sonar, and program it to run around randomly whilst avoiding objects... I could call it:

Robot Bearing Sonars And Touch Sensors That Roams Around Randomly While Trying To Avoid Obstacles By Taking Corrective Action Whenever An Obstacle Appears Below Respective Sensors Threshold Range or... you've guessed it... RBSATSTRARWTTAOBTCAWAOABRSTR

...as I said before, the only limitation would be that bumper sensors would only detect objects at "zero range" and you could not change that programatically. You could however change that hardware-wise... for instance have long bug-like feelers that you could almost consider not being part of the bot.

An additional point of view could be: "So, it isn't obstacle avoidance because there's a physical interaction between robot and obstacle?" in that case both sonar and IR wouldn't be because there's also physical interaction despite it not being able to be seen by the naked eye. There's all sorts of manner to be douchy if one wants to do so...

In the end all that matters little... you should only be concerned if the bot works up to specification.

Of course, if you make a bot that only puts the laundry in the washer machine and call it "Robot That Completely Takes Care of The Laundry" I might be tempted to give you an hard time about that... especially about those poor hypothetical "laundry requirements" you'd have :P 



Oh goody another philosophical question. Always nice to be able to put the text book away and say what you think.
In my beliefs I see the bump sensor as a last resort. For a first robot it is easiest to get working and empowers it with some form of navigation. So I would call it a navigation bot but definately not an obstacle avoider as if you hit an obstacle then you haven't avoided it. On the other hand unless one wants to be pedantic if somebody wants to call there bump and turn robot an obstacle avoider who am I to stand in the way?
Also it has absolutely no impact on it's status as being a robot or not a robot.

I like what David Anderson (of nBot, SR04, etc fame) called it in a video I watched recently. Feelers, bumpers, contact switches are the robot's "Feel" or "Touch" abilitities. You can be blind to vision, sonar, IR, etc and still use touch to get around an area. Sure it's not as graceful as avoiding touching something but it will works and on most more advanced bots it's the very basic subsumption sensor. "If I'm touching something then I need to move away or change direction". Just like using your hands/feet when getting around in the dark I guess. I'm sure a well written navigation app could use touch sensors to map out an area and find a clear path just as well as non-contact sensors could. You just have to bump into things a bit more to know where they are.

Even using two IR sensors on my Scuttle bot it still needs both the horizontal and verticle antenna / bump sensors to find things way more often than I would have thought.

Just my two cents... and good question/point.