Page 194 - Anatomy of a Robot
P. 194
07_200256_CH07/Bergren 4/10/03 3:30 PM Page 179
ENERGY CONTROL AND SOFTWARE 179
power. We can alter the algorithm so fewer steps are required and thus save power.
Certainly, algorithms can be structured many different ways, but to save power, keep
them short and sweet.
SCHEDULING
To coin a phrase, one should better buy the pizza instead of just eating it by the slice.
Certainly, buying the whole pizza at once will be cheaper, and the same is true in the
software domain. It becomes easy to chop a control problem into tiny pieces without
realizing it. Often, this happens during the design process as various aspects of the
power control problem are considered one at a time. Once a problem is chopped into
pieces, we wind up paying for it in lost compute time, lost energy, and lower reliability.
Problems become fragments in more than one dimension. Here are a few ways to
decrease wasted overhead in the robot:
Computer overhead A computer control program that executes intermittently
is wasteful. The robot’s computer must be awakened or used more often, and the
attendant overhead becomes excessive. If we can find a way to pull the program
back together so it can be handled in one fell swoop, we can reclaim the lost
energy and time. Consider auditing all the tasks the robot performs and identify-
ing those that are being handled in a fragmented way. Several such tasks creep
unnoticed into a design during the design phase. Rewriting those tasks will often
bring power savings and make the software more reliable.
Power overhead Most robots have dozens of tasks to perform. Some of the
energy to perform these tasks will be wasted in overhead. Consider, for the
moment, a car. Starting a car, at the very least, causes energy to be expended from
the battery. If we have two errands to run, we could group them together so we
only have to start the car once. The same grouping technique can work in energy
management in a robot. Some of the hardware circuitry will need to be charged
up to perform tasks. We can save energy by grouping tasks together in time so less
energy overhead is wasted.
Pipelining (real time) Consider modifying the robot’s control software to
pipeline tasks. To illustrate why this is useful, we need to revisit pipelining as it
applies to processors.
In processors with pipelines, instructions are not executed immediately, but they are
put into a pipeline. Pipelines can be used in different ways to control energy consump-
tion or execution speed. A trade-off takes place between speed and power since more
compute power requires more energy.