Theory of Operation
Altaira is a straightforward rule-based language implementing a simple
reactive
control strategy. On each execution cycle, four inputs are used to select
a rule to be fired:
- Sensor Inputs
- The five analog sensors on the Zambonibug are each read, and classified
as light, dark or as 'don't care'. Two other touch sensors are included
on either side of the analog sensors.
The values are combined into a seven-bit number.
- Current Direction
- Tiles may be entered or exited along any of four possible directions.
A dead-reckoning navigator keeps track of the robot's current direction, which
is then categorized into one of these four directions.
- Tile State
- Altaira's knowledge of the contents of a road tile is encoded in a
tile state in a map. New tile states can be created by the user at run-time.
- Robot State
- Subgoals required for the solution of a problem are maintained in
a robot state.
On each execution cycle, the tuple defined by (sensors, direction,
tile state, robot state)
selects a single rule for firing (the rule
space is actually a four dimensional array, and each of the inputs is an
index). The rule contains:
- Motor commands
- Each motor can be set to run either forward or reverse, or can be halted.
- Navigation command
- A command is sent to the dead-reckoning navigator, adjusting or correcting
its concept of the robot's current direction and tile.
- New tile state
- If this rule enables Altaira to obtain more information regarding the
tile than was present before, the tile state can be changed.
- New robot state
- If a subgoal is accomplished by the execution of the rule, a new robot
state may be set.
web page last updated on March 9, 1998