The 65th Installment
Robots Won't Run Straight
by Ryuichi Ueda,
Assistant Professor, Master Program of Information Systems Architecture
Research using robots has become somewhat popular in recent years even in circles outside of robot engineering. Robots are now a subject talked about at get-togethers of information system engineers. I write about robots, and although there was a five-year gap in my robot research, I always tell people to ask me anything about them when I go to these get-togethers. Unfortunately, since no one’s heard of me, nobody ever asks me anything. In any event, here's the kind of ungenerous question I always ask at these gatherings:
"Robots will never run straight, will they?"
To which almost everyone says, "No! No they won't!" Yet a lot of people are spending time on and losing sleep over how to make them run straight.
This is no good. That competent researchers are spending time on things like that is a detriment to the nation. As such, I'm going to use this column as a soap box to explain why robots will never run straight. I think it will be a good example of how academics—even those who don't deal with robots—can cut down on wasteful endeavors.
■ Why robots won't run straight (arithmetic reason)
First I will use arithmetic to explain why robots won't run straight. To begin with, robots bodies are not completely symmetrical—and neither are humans', for that matter. Our center of gravity is not in the center. The chiropractor I go to says that many people have one leg that is longer than the other.
That's why, if you draw a straight line on the ground and have people try to walk along it blindfolded, they will always veer off to the left or right. This is the same as a robot not equipped with any sensors. With me so far?
Next, and this is something that not many people notice, people not only veer one direction, their "body orientation" also changes. This is shown as an illustration in Fig. 1.
When blindfolded, people don't realize when their body orientation changes. This makes it so that people can't help but think that their body is facing straight, even though it isn't anymore.
Consequently, they walk further and further away from that straight line on the ground. The more their body orientation changes, the more rapidly they go off course.
Let's look at an example. What happens if a person's orientation shifts 1° with each meter they walk?
-Walking 90m puts them 90° off course
-Walking 360m puts them 360° off course
Let's take a look using the one-liner on the shell. (If you're saying to yourself "What is he talking about?" or "why a one-liner?", then skim through this part or look me up on the Web). We can solve for (x, y, θ) from step 0 through step 361. We plot the coordinates on a plane, with the initial position at (0, 0, 0).
uedambp:~ ueda$ yes |
awk 'BEGIN{x=0;y=0;t=0}{print int(x),int(y),int(t);
x += cos(t*3.141592/180);
y += sin(t*3.141592/180);t++;if(t==360){t=0}}' |
head -n 361
0 0 0
1 0 1
1 0 2
2 0 3
(Partially omitted)
-5 0 354
-4 0 355
-3 0 356
-2 0 357
-1 0 358
0 0 359
0 0 0
This is how a person would return to their original position and orientation on the 360th step.
This all leads to the conclusion that a blindfolded person will think they are walking in a straight line but are actually gradually shifting their body orientation in the same direction, causing them to make a circle and end up back where they started.
I am sure many of you have heard of people trying to get out of the desert but ending up back where they started. Physically, this is actually an extremely natural phenomenon.
■ Why robots won't run straight (philosophical reason)
What does "straight" even mean as we use the term? We use phrases like "go straight down the road" and "walk straight to where the flag is (at a golf course or something)," and that usage is correct in our everyday context. But we say the former even though the road may have a curve, and the latter works because we can see the destination. But the road might not be completely level in either case.
When programming a robot to move, this kind of human "logic" has no relevancy. If a robot can detect landmarks using camera images or lasers, those things can be used to guide it somewhere. Since there is no "straight" when it comes to robots moving, some mechanism always has to recalibrate the robot's orientation based on sensor data. When programming a robot, we find that what we take for granted does not always apply. It often makes us think about the human brain and our conventional wisdom, actually.
As an aside, I wanted to stay on the "straight and narrow" when I was younger. Now I know, however, that "straight" never existed. At the least, I would like to avoid going in circles and ending up back where I started. But as the word "samsara" implies, maybe being unable to run away from things is the lot we've been given.