Read the paper "Traversability Index: A New Concept for Planetary Rovers" by Homayoun Seraji (IEEE International Conference on Robotics and Automation, Detroit Michigan, May 1999, pages 2006-2013), available on the web through the OU library. (Start at <http://www-lib.ou.edu/>, choose "LORA," and under the databases, choose "IEEE Electronic Library (IEL).")
Answer the following question:
Is the approach described in this paper an example of the functional modules approach, the behavior-based approach, both, or neither?
You could give any of these answers, as long as you defend it well by doing a good job with the remainder of this assignment. I think the easiest to defend is that Seraji's approach is a behavior-based approach rather than a functional modules approach. However, it fits both partially and neither completely, so you could get full credit for any of these answers. This solution has been completed with the behavior-based approach.
Show how to implement the approach given in this paper using either the subsumption architecture of Brooks or the schema theory of Arkin. If you choose to use the subsumption architecture, you will need to show the levels, the units within each level, and the inhibition and suppression links between levels. If you choose to use schema theory, you will need to describe both the perceptual and the motor schema for each behavior and the method for behavior fusion of the various motor schema.
I'll choose to illustrate this answer using schema theory, since I think that fits best with the method proposed by Seraji. However, you could also use subsumption without penalty, as long as you did a good job of showing the levels, units, and links necessary to make this work.
There are two basic behaviors in the paper:
traverse-terrain
, which attempts to move the rover
through the "safest and most traversable terrain" (page 2006) andseek-goal
, which attempts "to drive the rover from its
initial position to a user-specified goal position" (page 2006).
1. traverse-terrain
The perceptual schema for traverse-terrain
takes camera
input and gives as output five values which are the traversability values
of regions, relative to the rover, in each of the following five
directions: left, front-left, front, front-right, and right.
The motor schema takes the five traversability values from the
traverse-terrain
perceptual schema and generates motor output
commands consisting of two parts: (1) direction and (2) speed. Direction
is determined using the five traversability values provided by the
perceptual schema along with knowledge about the direction to which each
value corresponds. Speed is determined independently of direction, by
looking at the highest (safest) traversability value provided by the
perceptual schema. Note that both the direction and speed commands are
fuzzy sets, not single values. For direction, the set members indicate the
degree to which the direction specified falls into the categories
HARD-LEFT, LEFT, ON-COURSE, RIGHT, and HARD-RIGHT. For speed, the set
members indicate the degree to which the speed specified falls into the
categories STOP, SLOW, MODERATE, and FAST.
Along with each motor command, a weighting value is provided by the motor schema, for use in behavior fusion (see below). This value is based on the highest (safest) traversability value provided by the perceptual schema.
2. seek-goal
The perceptual schema for seek-goal
takes unspecified input
and produces, as output, two values: (1) heading error and (2) position
error.
The motor schema takes the heading and position error values from the
seek-goal
perceptual schema and, like the motor schema for
traverse-terrain
, generates motor output commands consisting
of two parts: (1) direction and (2) speed. Again, these are not single
values but fuzzy sets with the same member types as above. In the
seek-goal
motor schema, however, direction is a function
solely of the heading error and speed is solely based on position
error.
As with the motor schema for traverse-terrain
, the motor
schema for seek-goal
also produces, along with each motor
command, a weighting value for use in behavior fusion (see below). For the
seek-goal
motor schema, this value is based on the distance to
the goal.
Note that there are no real releasers with these behaviors - they are always active.
The fusion of the traverse-terrain
and
seek-goal
behaviors results in the final command sent to the
motors. This command, like those of the individual behaviors has two
components: (1) direction and (2) speed. These two components are fused
individually. That is, the final direction command is determined
independently from the final speed command. Note that these are not fuzzy
sets after fusion but two individual values. The fusion is basically an
averaging operation, adding up the members of each set individually to come
up with a single recommendation from each behavior, then adding up the
values from the two behaviors and dividing by two. The exception comes in
when the weighting values from the two behaviors are not equal. This can
happen when the highest traversability value is somewhere in the LOW range
or below (in which case the traverse-terrain
recommendation is
given increased weight) or when the distance is quite small (in which case
the seek-goal
recommendation is given increased
weight).
Behavior-Based Question:
Why does the approach described in this paper not qualify as a functional modules approach?
This paper does not fit well into the functional modules approach because, while it does sensing (taking in the camera data) and perception (extracting values such as slope and rock concentration), and certainly must produce motor commands for the robot to move, some of the intermediate steps are harder to fit into this framework.
After perception, the next functional module we discussed was world modeling. You could try to argue that world modeling does go on in this system. For example, you could argue that the world model used simply has only six items in it at any one time: the five regions that the robot senses at the present plus the goal. The first five of these are all of type terrain, with some particular values for each one to tell just how traversable it is.
A problem with this argument is that world models are generally not thought of as so completely transitory. That is, while there is no requirement that information placed into a world model may never be removed at a later time, one of reasons that people such as Brooks complained about models and claimed that the world is its own best model, is because world models could be out of date, while sensor information is current. So, the accepted idea is that world models hold information for some time, whereas in the paper, no values are retained that don't relate to the latest sensor information.
After world modeling, the next functional module is planning. You would be hard pressed to argue that there is any planning going on in this system. Yes, the system figures out what its next move should be. However, plans are generally thought of as being more than one move long. As Brooks puts it in the title of one of his papers assigned for this class, "planning is just a way of avoiding figuring out what to do next." But figuring out what to do next - figuring out what its next move is and no more - is exactly what this system does. This is, in this view, the antithesis of planning.
Based on the lack of fit between Seraji's system and these two functional modules, I think we can rule it out as being a system of this type.
(The remaining module, task execution comes after planning. In this module we take each step of the plan and turn it into small, executable "tasks." This is not really discussed in the paper. However, it is likely that a real robot implementing this system could perform this function. To move quickly to the left, for instance, it might quickly turn left first, then move quickly forward. So there is nothing to rule out the system described in this paper as embodying the functional modules approach based on this module.)
Carry out the following exercise:
Find a weakness in the approach described by the paper for integrating the outputs from the various sub-systems into the final decisions for direction and velocity. Describe a situation in which this approach would cause sub-optimal results. Propose an improvement to how this system does this integration.
While there are certainly weaknesses in the described approach within sub-systems (e.g., for traverse-terrain there is no indication as to which region should be selected if two have the same traversability value and both are equally far from straight), this question asked specifically about the integration approach, so your answer must find a weakness there for you to get full credit.
Take the following illustrative example. The rover is facing north. The rover is a long distance from the goal and the goal is far off to the east. The terrain to the west is highly traversable, but the remaining terrain that the rover can sense has low traversability.
What would you do?
You might head off quickly to the west, where the terrain is good. True, it is away from the goal but you might find that, as you move, good terrain comes into view to either the north or south, and you can turn that direction and eventually circle around back to the goal, skirting the bad terrain. While this might work, this is a risky strategy for a purely reactive system because it could be very difficult to tell if you have circled all the way around the goal without finding a clear path in to it.
Alternately, you might decide to bite the bullet (so to speak) and turn towards the goal and move slowly towards it. This allows you to make progress and the slow speed will keep you relatively safe.
What will the system described in this paper do?
According to the traverse-terrain
behavior, the thing to do
is to head quickly west, to where the good terrain is found, just as we
discussed first.
According to the seek-goal
behavior, the thing to do is to
head towards the goal, as we discussed second, but at a high speed because
the goal is very far away.
When we merge these behaviors, we merge the recommendation to turn hard to the right with the recommendation to turn hard to the left and (because we are not in a situation that gives different weights to the different recommendations), we decide to go straight ahead. Hmmn. Not a great idea, if you ask me. We are not making progress towards the goal (in fact, if we keep going straight we will get farther from it) yet we are encountering terrain just as bad as if we had turned towards the goal and were headed straight at it.
Of course, we also need to decide on a speed. We merge two fast speed recommendations and conclude that we should move fast. Yikes! We are headed into low traversability terrain - that is, terrain for which the proper thing to do is move slowly - yet we are heading into it at top speed! And for what? We're not even making progress towards the goal. Bad idea.
(Of course, it isn't as bad as if the terrain in all directions except west had poor traversability, rather than just low traversability. In this case the individual and fused decisions would have been the same but now we would be heading at top speed into terrain for which the proper thing to do, based on terrain, is stop!)
This is a classic case of poor behavior fusion. We have two behaviors, each recommending actions that seem reasonable, given what each knows, but the fused action is poor.
Because one of our problems seems to be that we are trying to do two related things independently and in parallel, the obvious approach to improving the behavior fusion of this system is to look for a way to do these things sequentially with the results of one influencing the results of the other.
We could, for example, decide on direction first, then on speed. That
way, the speed chosen is influenced by the terrain type we are actually
heading for, not the best terrain type seen. To decide on the direction we
could use the method presented in the paper. Then, for speed, we could use
the speed appropriate for the traversability value of the region chosen to
move into (which would require the traverse-terrain
behavior
to produce multiple motor commands) along with the speed appropriate for
the distance.
In the illustrative example, above, the results of this improved method would be to head north at moderate speed. (Or in the parenthetical version head north at somewhere between slow and moderate speed.) This isn't a great solution, of course, but it is an improvement, which is what the assignment called for, and it leaves you plenty of room to come up with better solutions yet, if you are ever called upon to do so.